From: Alan T. DeKok Date: Thu, 22 Nov 2012 14:20:20 +0000 (-0500) Subject: Be more forgiving about loaded modules X-Git-Tag: release_2_2_1~213 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfaf23b7d930364d680e76c14c1abedb2a1fb421;p=thirdparty%2Ffreeradius-server.git Be more forgiving about loaded modules If they don't exist, don't complain --- diff --git a/src/modules/rlm_perl/rlm_perl.c b/src/modules/rlm_perl/rlm_perl.c index 122d52db12d..d05f3cede31 100644 --- a/src/modules/rlm_perl/rlm_perl.c +++ b/src/modules/rlm_perl/rlm_perl.c @@ -151,12 +151,7 @@ static void **rlm_perl_get_handles(pTHX) AV *modules = get_av(dl_modules, FALSE); void **handles; - if (!librefs) { - radlog(L_ERR, - "Could not get @%s for unloading.\n", - dl_librefs); - return NULL; - } + if (!librefs) return NULL; if (!(AvFILL(librefs) >= 0)) { return NULL; @@ -238,8 +233,8 @@ static void rlm_destroy_perl(PerlInterpreter *perl) PERL_SET_CONTEXT(perl); handles = rlm_perl_get_handles(aTHX); + if (handles) rlm_perl_close_handles(handles); rlm_perl_destruct(perl); - rlm_perl_close_handles(handles); } /* Create Key */ @@ -486,6 +481,8 @@ static int perl_instantiate(CONF_SECTION *conf, void **instance) PL_exit_flags |= PERL_EXIT_DESTRUCT_END; #endif + newXS("radiusd::radlog",XS_radiusd_radlog, "rlm_perl"); + exitstatus = perl_parse(inst->perl, xs_init, argc, embed, NULL); end_AV = PL_endav; @@ -502,8 +499,6 @@ static int perl_instantiate(CONF_SECTION *conf, void **instance) PL_endav = end_AV; - newXS("radiusd::radlog",XS_radiusd_radlog, "rlm_perl.c"); - rad_reply_hv = newHV(); rad_check_hv = newHV(); rad_config_hv = newHV();