Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
eduroam
radsecproxy
Commits
e581fc5e
Commit
e581fc5e
authored
Nov 22, 2011
by
Maja Gorecka-Wolniewicz
Committed by
Linus Nordberg
Dec 12, 2011
Browse files
F-Ticks logging changes
parent
c17e44da
Changes
7
Hide whitespace changes
Inline
Side-by-side
debug.c
View file @
e581fc5e
...
...
@@ -28,6 +28,9 @@ static uint8_t debug_level = DBG_INFO;
static
char
*
debug_filepath
=
NULL
;
static
FILE
*
debug_file
=
NULL
;
static
int
debug_syslogfacility
=
0
;
#if defined(WANT_FTICKS)
static
int
fticks_syslogfacility
=
0
;
#endif
static
uint8_t
debug_timestamp
=
0
;
void
debug_init
(
char
*
ident
)
{
...
...
@@ -64,41 +67,59 @@ uint8_t debug_get_level() {
return
debug_level
;
}
int
debug_set_destination
(
char
*
dest
)
{
int
debug_set_destination
(
char
*
dest
,
int
log_type
)
{
static
const
char
*
facstrings
[]
=
{
"LOG_DAEMON"
,
"LOG_MAIL"
,
"LOG_USER"
,
"LOG_LOCAL0"
,
"LOG_LOCAL1"
,
"LOG_LOCAL2"
,
"LOG_LOCAL3"
,
"LOG_LOCAL4"
,
"LOG_LOCAL5"
,
"LOG_LOCAL6"
,
"LOG_LOCAL7"
,
NULL
};
"LOG_LOCAL1"
,
"LOG_LOCAL2"
,
"LOG_LOCAL3"
,
"LOG_LOCAL4"
,
"LOG_LOCAL5"
,
"LOG_LOCAL6"
,
"LOG_LOCAL7"
,
NULL
};
static
const
int
facvals
[]
=
{
LOG_DAEMON
,
LOG_MAIL
,
LOG_USER
,
LOG_LOCAL0
,
LOG_LOCAL1
,
LOG_LOCAL2
,
LOG_LOCAL3
,
LOG_LOCAL4
,
LOG_LOCAL5
,
LOG_LOCAL6
,
LOG_LOCAL7
};
LOG_LOCAL1
,
LOG_LOCAL2
,
LOG_LOCAL3
,
LOG_LOCAL4
,
LOG_LOCAL5
,
LOG_LOCAL6
,
LOG_LOCAL7
};
extern
int
errno
;
int
i
;
if
(
!
strncasecmp
(
dest
,
"file:///"
,
8
))
{
debug_filepath
=
stringcopy
(
dest
+
7
,
0
);
debug_file
=
fopen
(
debug_filepath
,
"a"
);
if
(
!
debug_file
)
{
debug_file
=
stderr
;
debugx
(
1
,
DBG_ERR
,
"Failed to open logfile %s
\n
%s"
,
debug_filepath
,
strerror
(
errno
));
if
(
log_type
!=
FTICKS_LOG
)
{
debug_filepath
=
stringcopy
(
dest
+
7
,
0
);
debug_file
=
fopen
(
debug_filepath
,
"a"
);
if
(
!
debug_file
)
{
debug_file
=
stderr
;
debugx
(
1
,
DBG_ERR
,
"Failed to open logfile %s
\n
%s"
,
debug_filepath
,
strerror
(
errno
));
}
setvbuf
(
debug_file
,
NULL
,
_IONBF
,
0
);
}
else
{
debug
(
DBG_WARN
,
"FTicksSyslogFacility starting with file:/// not permitted, assuming default F-Ticks destination"
);
}
setvbuf
(
debug_file
,
NULL
,
_IONBF
,
0
);
return
1
;
}
if
(
!
strncasecmp
(
dest
,
"x-syslog://"
,
11
))
{
dest
+=
11
;
if
(
*
dest
==
'/'
)
dest
++
;
if
(
!
strncasecmp
(
dest
,
"x-syslog://"
,
11
)
||
(
log_type
==
FTICKS_LOG
))
{
if
(
!
strncasecmp
(
dest
,
"x-syslog://"
,
11
))
{
dest
+=
11
;
if
(
*
dest
==
'/'
)
dest
++
;
}
if
(
*
dest
)
{
for
(
i
=
0
;
facstrings
[
i
];
i
++
)
if
(
!
strcasecmp
(
dest
,
facstrings
[
i
]))
break
;
if
(
!
facstrings
[
i
])
debugx
(
1
,
DBG_ERR
,
"Unknown syslog facility %s"
,
dest
);
debug_syslogfacility
=
facvals
[
i
];
}
else
debug_syslogfacility
=
LOG_DAEMON
;
openlog
(
debug_ident
,
LOG_PID
,
debug_syslogfacility
);
if
(
log_type
==
FTICKS_LOG
)
fticks_syslogfacility
=
facvals
[
i
];
else
debug_syslogfacility
=
facvals
[
i
];
}
else
{
if
(
log_type
==
FTICKS_LOG
)
fticks_syslogfacility
=
0
;
else
debug_syslogfacility
=
LOG_DAEMON
;
}
if
(
log_type
==
FTICKS_LOG
)
{
if
(
fticks_syslogfacility
&&
!
debug_syslogfacility
)
{
openlog
(
debug_ident
,
LOG_PID
,
fticks_syslogfacility
);
}
}
else
openlog
(
debug_ident
,
LOG_PID
,
debug_syslogfacility
);
return
1
;
}
debug
(
DBG_ERR
,
"Unknown log destination, exiting %s"
,
dest
);
...
...
@@ -213,6 +234,20 @@ void debugerrnox(int err, uint8_t level, char *format, ...) {
exit
(
err
);
}
#if defined(WANT_FTICKS)
void
fticks_debug
(
const
char
*
format
,
...)
{
int
priority
;
va_list
ap
;
va_start
(
ap
,
format
);
if
(
!
debug_syslogfacility
&&
!
fticks_syslogfacility
)
debug_logit
(
0xff
,
format
,
ap
);
else
{
priority
=
LOG_DEBUG
|
fticks_syslogfacility
;
vsyslog
(
priority
,
format
,
ap
);
va_end
(
ap
);
}
}
#endif
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */
debug.h
View file @
e581fc5e
...
...
@@ -17,6 +17,9 @@
#define DBG_WARN 64
#define DBG_ERR 128
#define DEBUG_LOG 0
#define FTICKS_LOG 1
void
debug_init
(
char
*
ident
);
void
debug_set_level
(
uint8_t
level
);
void
debug_timestamp_on
();
...
...
@@ -25,8 +28,11 @@ void debug(uint8_t level, char *format, ...);
void
debugx
(
int
status
,
uint8_t
level
,
char
*
format
,
...);
void
debugerrno
(
int
err
,
uint8_t
level
,
char
*
format
,
...);
void
debugerrnox
(
int
err
,
uint8_t
level
,
char
*
format
,
...);
int
debug_set_destination
(
char
*
dest
);
int
debug_set_destination
(
char
*
dest
,
int
l
);
void
debug_reopen_log
();
#if defined(WANT_FTICKS)
void
fticks_debug
(
const
char
*
format
,
...);
#endif
/* Local Variables: */
/* c-file-style: "stroustrup" */
...
...
fticks.c
View file @
e581fc5e
...
...
@@ -152,7 +152,7 @@ fticks_log(const struct options *options,
}
}
}
debug
(
0xff
,
fticks_
debug
(
"F-TICKS/eduroam/1.0#REALM=%s#VISCOUNTRY=%s#%sCSI=%s#RESULT=%s#"
,
realm
,
client
->
conf
->
fticks_viscountry
,
...
...
radsecproxy.c
View file @
e581fc5e
...
...
@@ -1668,7 +1668,7 @@ void replyh(struct server *server, unsigned char *buf) {
}
#if defined(WANT_FTICKS)
if
(
msg
->
code
==
RAD_Access_Accept
||
msg
->
code
==
RAD_Access_Reject
)
if
(
msg
->
code
==
RAD_Access_Accept
||
msg
->
code
==
RAD_Access_Reject
)
if
(
options
.
fticks_reporting
&&
from
->
conf
->
fticks_viscountry
!=
NULL
)
fticks_log
(
&
options
,
from
,
msg
,
rqout
);
#endif
...
...
@@ -3082,6 +3082,7 @@ void getmainconfig(const char *configfile) {
#endif
"Rewrite"
,
CONF_CBK
,
confrewrite_cb
,
NULL
,
#if defined(WANT_FTICKS)
"FTicksSyslogFacility"
,
CONF_STR
,
&
options
.
ftickssyslogfacility
,
"FTicksReporting"
,
CONF_STR
,
&
fticks_reporting_str
,
"FTicksMAC"
,
CONF_STR
,
&
fticks_mac_str
,
"FTicksKey"
,
CONF_STR
,
&
fticks_key_str
,
...
...
@@ -3239,8 +3240,15 @@ int radsecproxy_main(int argc, char **argv) {
options
.
loglevel
=
loglevel
;
else
if
(
options
.
loglevel
)
debug_set_level
(
options
.
loglevel
);
if
(
!
foreground
)
debug_set_destination
(
options
.
logdestination
?
options
.
logdestination
:
"x-syslog:///"
);
if
(
!
foreground
)
{
debug_set_destination
(
options
.
logdestination
?
options
.
logdestination
:
"x-syslog:///"
,
DEBUG_LOG
);
#if defined(WANT_FTICKS)
if
(
options
.
ftickssyslogfacility
)
{
debug_set_destination
(
options
.
ftickssyslogfacility
,
FTICKS_LOG
);
free
(
options
.
ftickssyslogfacility
);
}
#endif
}
free
(
options
.
logdestination
);
if
(
!
list_first
(
clconfs
))
...
...
radsecproxy.conf-example
View file @
e581fc5e
...
...
@@ -57,6 +57,14 @@
#FTicksReporting None
#FTicksMAC Static
# You can optionally specify FTicksSyslogFacility to use a dedicated
# syslog facility for F-Ticks messages. This allows easy filtering
# of F-Ticks messages.
# For F-Ticks messages always LOG_DEBUG level is used.
# Please note that FTicksSyslogFacility cannot specify a file (file:///...)
#FTicksSyslogFacility log_local1
#FTicksSyslogFacility x-syslog:///log_local1
# There is an option for doing some simple loop prevention. Note that
# the LoopPrevention directive can be used in server blocks too,
# overriding what's set here in the basic settings.
...
...
radsecproxy.conf.5.xml
View file @
e581fc5e
...
...
@@ -242,6 +242,24 @@ blocktype name {
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
FTicksSyslogFacility
</literal></term>
<listitem>
<para>
The FTicksSyslogFacility option is used to specify
a dedicated syslog facility for F-Ticks messages.
This allows easy filtering of F-Ticks messages.
By default, if FTicksSyslogFacility is not given,
F-Ticks messages are written to the LogDestination.
</para>
<para>
For F-Ticks messages always LOG_DEBUG level is used.
Note that FTicksSyslogFacility value specifying a file
(via file:/// prefix) is ignored.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
ListenUDP
</literal></term>
<listitem>
...
...
radsecproxy.h
View file @
e581fc5e
...
...
@@ -55,6 +55,7 @@ enum rsp_fticks_mac_type {
struct
options
{
char
*
logdestination
;
char
*
ftickssyslogfacility
;
char
*
ttlattr
;
uint32_t
ttlattrtype
[
2
];
uint8_t
addttl
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment