Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
eduroam
radsecproxy
Commits
ab7c8e7c
Commit
ab7c8e7c
authored
Dec 12, 2011
by
Linus Nordberg
Browse files
Merge branch 'fticks_syslog2'
parents
3493d1fc
0693da04
Changes
7
Hide whitespace changes
Inline
Side-by-side
debug.c
View file @
ab7c8e7c
...
...
@@ -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,40 +67,60 @@ uint8_t debug_get_level() {
return
debug_level
;
}
int
debug_set_destination
(
char
*
dest
)
{
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
};
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
};
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
};
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
};
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
!=
LOG_TYPE_FTICKS
)
{
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
==
LOG_TYPE_FTICKS
)
{
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
;
if
(
log_type
!=
LOG_TYPE_FTICKS
)
debug_syslogfacility
=
facvals
[
i
];
#if defined(WANT_FTICKS)
else
if
(
log_type
==
LOG_TYPE_FTICKS
)
fticks_syslogfacility
=
facvals
[
i
];
#endif
}
else
{
if
(
log_type
!=
LOG_TYPE_FTICKS
)
debug_syslogfacility
=
LOG_DAEMON
;
#if defined(WANT_FTICKS)
else
if
(
log_type
==
LOG_TYPE_FTICKS
)
fticks_syslogfacility
=
0
;
#endif
}
openlog
(
debug_ident
,
LOG_PID
,
debug_syslogfacility
);
return
1
;
}
...
...
@@ -213,6 +236,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 @
ab7c8e7c
...
...
@@ -17,6 +17,9 @@
#define DBG_WARN 64
#define DBG_ERR 128
#define LOG_TYPE_DEBUG 0
#define LOG_TYPE_FTICKS 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
log_type
);
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 @
ab7c8e7c
...
...
@@ -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 @
ab7c8e7c
...
...
@@ -3093,6 +3093,7 @@ void getmainconfig(const char *configfile) {
"FTicksReporting"
,
CONF_STR
,
&
fticks_reporting_str
,
"FTicksMAC"
,
CONF_STR
,
&
fticks_mac_str
,
"FTicksKey"
,
CONF_STR
,
&
fticks_key_str
,
"FTicksSyslogFacility"
,
CONF_STR
,
&
options
.
ftickssyslogfacility
,
#endif
NULL
))
...
...
@@ -3247,8 +3248,18 @@ 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:///"
,
LOG_TYPE_DEBUG
);
#if defined(WANT_FTICKS)
if
(
options
.
ftickssyslogfacility
)
{
debug_set_destination
(
options
.
ftickssyslogfacility
,
LOG_TYPE_FTICKS
);
free
(
options
.
ftickssyslogfacility
);
}
#endif
}
free
(
options
.
logdestination
);
if
(
!
list_first
(
clconfs
))
...
...
radsecproxy.conf-example
View file @
ab7c8e7c
...
...
@@ -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 @
ab7c8e7c
...
...
@@ -242,6 +242,25 @@ 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 for easier filtering of F-Ticks messages. If no
FTicksSyslogFacility option is given, F-Ticks messages are
written to what the LogDestination option specifies.
</para>
<para>
F-Ticks messages are always logged using the log level
LOG_DEBUG. Note that specifying a file in
FTicksSyslogFacility (using the file:/// prefix) is
not supported.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>
ListenUDP
</literal></term>
<listitem>
...
...
radsecproxy.h
View file @
ab7c8e7c
...
...
@@ -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
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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