Hi Doug, i tried to apply this to rlm_perl (on freeradius 2.1.8) but then rlm_perl.c does not compile. Can you provide me an example how to integrate this? Or - where is my fault? ### @@ -587,6 +587,10 @@ char *val; VALUE_PAIR *vpp; + /* tiri */ + int rdebug; + rdebug = !stat("/var/log/freeradius/rlm_perl.log", &sb); + if (SvOK(sv)) { val = SvPV_nolen(sv); vpp = pairmake(key, val, operator); @@ -594,11 +598,13 @@ pairadd(vp, vpp); radlog(L_DBG, "rlm_perl: Added pair %s = %s", key, val); + if (rdebug) radlog (L_AUTH, "Added pair %s = %s", key, val); return 1; } else { radlog(L_DBG, "rlm_perl: ERROR: Failed to create pair %s = %s", key, val); + if (rdebug) radlog (L_AUTH, "Added pair %s = %s", key, val); } } return 0; ### In file included from rlm_perl.c:39: /usr/lib/perl/5.10/CORE/perl.h:1318: warning: redundant redeclaration of 'strerror' /usr/include/string.h:256: warning: previous declaration of 'strerror' was here In file included from rlm_perl.c:39: /usr/lib/perl/5.10/CORE/perl.h:3499: warning: redundant redeclaration of 'getuid' /usr/include/unistd.h:642: warning: previous declaration of 'getuid' was here /usr/lib/perl/5.10/CORE/perl.h:3500: warning: redundant redeclaration of 'geteuid' /usr/include/unistd.h:645: warning: previous declaration of 'geteuid' was here /usr/lib/perl/5.10/CORE/perl.h:3501: warning: redundant redeclaration of 'getgid' /usr/include/unistd.h:648: warning: previous declaration of 'getgid' was here /usr/lib/perl/5.10/CORE/perl.h:3502: warning: redundant redeclaration of 'getegid' /usr/include/unistd.h:651: warning: previous declaration of 'getegid' was here /usr/lib/perl/5.10/CORE/perl.h:3811: warning: redundant redeclaration of 'mktemp' /usr/include/stdlib.h:583: warning: previous declaration of 'mktemp' was here /usr/lib/perl/5.10/CORE/perl.h:3813: warning: redundant redeclaration of 'atof' /usr/include/stdlib.h:280: warning: previous definition of 'atof' was here In file included from rlm_perl.c:39: /usr/lib/perl/5.10/CORE/perl.h:3904: warning: redundant redeclaration of 'crypt' /usr/include/crypt.h:33: warning: previous declaration of 'crypt' was here /usr/lib/perl/5.10/CORE/perl.h:3910: warning: redundant redeclaration of 'getenv' /usr/include/stdlib.h:545: warning: previous declaration of 'getenv' was here /usr/lib/perl/5.10/CORE/perl.h:3921: warning: redundant redeclaration of 'getlogin' /usr/include/unistd.h:815: warning: previous declaration of 'getlogin' was here /usr/lib/perl/5.10/CORE/perl.h:4075: warning: redundant redeclaration of 'environ' /usr/include/unistd.h:498: warning: previous declaration of 'environ' was here In file included from /usr/lib/perl/5.10/CORE/perl.h:4701, from rlm_perl.c:39: /usr/lib/perl/5.10/CORE/proto.h:1842: warning: redundant redeclaration of 'Perl_regdump' /usr/lib/perl/5.10/CORE/proto.h:1839: warning: previous declaration of 'Perl_regdump' was here rlm_perl.c: In function 'rlm_perl_destruct': rlm_perl.c:217: warning: declaration of 'my_perl' shadows a previous local rlm_perl.c:208: warning: shadowed declaration is here rlm_perl.c: In function 'rlm_perl_make_key': rlm_perl.c:246: warning: passing argument 2 of 'pthread_key_create' from incompatible pointer type rlm_perl.c: In function 'rlm_perl_clone': rlm_perl.c:274: warning: format '%d' expects type 'int', but argument 3 has type 'pthread_t' rlm_perl.c: In function 'xs_init': rlm_perl.c:282: warning: initialization discards qualifiers from pointer target type rlm_perl.c: In function 'perl_xlat': rlm_perl.c:368: warning: value computed is not used rlm_perl.c:375: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' rlm_perl.c:375: warning: format '%d' expects type 'int', but argument 5 has type 'size_t' rlm_perl.c: In function 'perl_instantiate': rlm_perl.c:447: warning: assignment discards qualifiers from pointer target type rlm_perl.c:451: warning: assignment discards qualifiers from pointer target type rlm_perl.c: In function 'perl_store_vps': rlm_perl.c:543: warning: assignment discards qualifiers from pointer target type rlm_perl.c:556: warning: value computed is not used rlm_perl.c:568: warning: value computed is not used rlm_perl.c: In function 'pairadd_sv': rlm_perl.c:592: error: 'sb' undeclared (first use in this function) rlm_perl.c:592: error: (Each undeclared identifier is reported only once rlm_perl.c:592: error: for each function it appears in.) rlm_perl.c: In function 'rlmperl_call': rlm_perl.c:729: warning: value computed is not used On Thu, 11 Mar 2010 11:35:24 -0800, Doug Hardie <bc979@lafn.org> wrote:
On 11 March 2010, at 03:43, <bitte@antworte.me> <bitte@antworte.me> wrote:
Hello list,
is there an option in radiusd.conf how to enable debug logging only for several rlm_modules, e.g. I have rlm_perl and I only want debug messages for this.
Thanks for your reply in advance.
It can be done via some modifications to the module source. Here is the approach I use in my modules:
At the top of each function:
int rdebug;
rdebug = !stat("/var/log/radacct/radius_debug", &sb);
Then after each DEBUG entry add:
if (rdebug) radlog (L_AUTH, "%s", auth_msg);
Note the L_AUTH is the level, the auth_msg is the message in the DEBUG statement. You can also add our own debugging that way that goes beyond that provided in the original module.
To turn on this debugging just touch the filename listed in the stat command above. Debugging for that module will start. Disable it by deleting that file. You can change the file name to anything convenient for you. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html