From: Arran Cudbard-Bell Date: Sat, 9 Mar 2013 22:14:53 +0000 (-0500) Subject: Add module prefix to module, and make RDEBUGE set module failure message by default X-Git-Tag: release_3_0_0_beta1~776 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a101b8d15a6cebb42a81003d868297e98de585e4;p=thirdparty%2Ffreeradius-server.git Add module prefix to module, and make RDEBUGE set module failure message by default --- diff --git a/src/include/radiusd.h b/src/include/radiusd.h index c730522b690..430e33b5931 100644 --- a/src/include/radiusd.h +++ b/src/include/radiusd.h @@ -484,13 +484,21 @@ typedef struct main_config_t { #define DEBUG4 if (debug_flag > 3) log_debug #if __GNUC__ >= 3 -#define RDEBUG(fmt, ...) if(request && request->radlog) request->radlog(L_DBG, 1, request, fmt, ## __VA_ARGS__) +#define RDEBUG(fmt, ...) if(request && request->radlog) request->radlog(L_DBG, 1, request, fmt, ## __VA_ARGS__) #define RDEBUGW(fmt, ...) if(request && request->radlog) request->radlog(L_DBG_WARN, 1, request, fmt, ## __VA_ARGS__) -#define RDEBUGE(fmt, ...) if(request && request->radlog) request->radlog(L_DBG_ERR, 1, request, fmt, ## __VA_ARGS__) - -#define RDEBUG2(fmt, ...) if(request && request->radlog) request->radlog(L_DBG, 2, request, fmt, ## __VA_ARGS__) -#define RDEBUG2W(fmt, ...) if(request && request->radlog) request->radlog(L_DBG_WARN, 2, request, fmt, ## __VA_ARGS__) -#define RDEBUG2E(fmt, ...) if(request && request->radlog) request->radlog(L_DBG_ERR, 2, request, fmt, ## __VA_ARGS__) +#define RDEBUGE(fmt, ...) do { if(request) { \ + module_failure_msg(request, fmt, ## __VA_ARGS__); \ + if (request->radlog) request->radlog(L_DBG_ERR, 1, request, fmt, ## __VA_ARGS__); \ + } \ + } while(0) + +#define RDEBUG2(fmt, ...) if(request && request->radlog) request->radlog(L_DBG, 2, request, fmt, ## __VA_ARGS__) +#define RDEBUG2W(fmt, ...) if(request && request->radlog) request->radlog(L_DBG_WARN, 2, request, fmt, ## __VA_ARGS__) +#define RDEBUG2E(fmt, ...) do { if(request) { \ + module_failure_msg(request, fmt, ## __VA_ARGS__); \ + if (request->radlog) request->radlog(L_DBG_ERR, 2, request, fmt, ## __VA_ARGS__); \ + } \ + } while(0) #define RDEBUG3(fmt, ...) if(request && request->radlog) request->radlog(L_DBG, 3, request, fmt, ## __VA_ARGS__) #define RDEBUG4(fmt, ...) if(request && request->radlog) request->radlog(L_DBG, 4, request, fmt, ## __VA_ARGS__) diff --git a/src/main/modules.c b/src/main/modules.c index e94381abd50..2df360d6ab0 100644 --- a/src/main/modules.c +++ b/src/main/modules.c @@ -1755,8 +1755,11 @@ rlm_rcode_t module_send_coa(int send_coa_type, REQUEST *request) } #endif +/** Add a module failure message VALUE_PAIR to the request + */ char *module_failure_msg(REQUEST *request, const char *fmt, ...) { + size_t len; va_list ap; VALUE_PAIR *vp; @@ -1764,12 +1767,16 @@ char *module_failure_msg(REQUEST *request, const char *fmt, ...) vp = paircreate(request->packet, PW_MODULE_FAILURE_MESSAGE, 0); if (!vp) { va_end(ap); + return NULL; } - vsnprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), fmt, ap); + len = snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s: ", + request->module); + vsnprintf(vp->vp_strvalue + len, sizeof(vp->vp_strvalue) - len, fmt, + ap); pairadd(&request->packet->vps, vp); - return vp->vp_strvalue; + return vp->vp_strvalue + len; } diff --git a/src/modules/rlm_exec/rlm_exec.c b/src/modules/rlm_exec/rlm_exec.c index f2bebb84786..4c2f52ef644 100644 --- a/src/modules/rlm_exec/rlm_exec.c +++ b/src/modules/rlm_exec/rlm_exec.c @@ -362,8 +362,7 @@ static rlm_rcode_t exec_dispatch(void *instance, REQUEST *request) msg[len - 1] = '\0'; } - module_failure_msg(request, "rlm_exec (%s): %s", - inst->xlat_name, msg); + RDEBUGE("%s", msg); } return result-1; @@ -407,10 +406,7 @@ static rlm_rcode_t exec_postauth(void *instance, REQUEST *request) pairfree(&tmp); if (result < 0) { - RDEBUG2("%s", module_failure_msg(request, "rlm_exec (%s): " - "Login incorrect (external " - "check failed)", - inst->xlat_name)); + RDEBUGE("Login incorrect (external check failed)"); request->reply->code = PW_AUTHENTICATION_REJECT; return RLM_MODULE_REJECT; @@ -423,10 +419,7 @@ static rlm_rcode_t exec_postauth(void *instance, REQUEST *request) */ request->reply->code = PW_AUTHENTICATION_REJECT; - RDEBUG2("%s", module_failure_msg(request, "rlm_exec (%s): " - "Login incorrect (external " - "check said so)", - inst->xlat_name)); + RDEBUGE("Login incorrect (external check said so)"); return RLM_MODULE_REJECT; }