From: Alan T. DeKok Date: Tue, 12 Sep 2017 11:57:46 +0000 (-0400) Subject: add request->name as name of the request X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a322a5729aeab8323cb97208fca8b3a1820daab8;p=thirdparty%2Ffreeradius-server.git add request->name as name of the request for most requests, it's "%d". For child requests it's "parent.child" for sequence, it's "%d,parent" That's awkward, but the simplest for now --- diff --git a/src/include/radiusd.h b/src/include/radiusd.h index c2b0ccbbb9d..5dc8e4bc861 100644 --- a/src/include/radiusd.h +++ b/src/include/radiusd.h @@ -234,6 +234,8 @@ struct rad_request { //!< or request structs that have not been properly initialised. #endif uint64_t number; //!< Monotonically increasing request number. Reset on server restart. + uint64_t child_number; //!< Monotonically increasing number for children of this request + char const *name; //!< for debug printing, as (%d) is no longer sufficient fr_event_list_t *el; //!< thread-specific event list. fr_heap_t *backlog; //!< thread-specific backlog diff --git a/src/lib/io/worker.c b/src/lib/io/worker.c index bfe29680173..9b562266ca8 100644 --- a/src/lib/io/worker.c +++ b/src/lib/io/worker.c @@ -96,7 +96,7 @@ static void fr_worker_verify(fr_worker_t *worker); #define DEBUG2(fmt, ...) if (worker->lvl >= L_DBG_LVL_2) fr_log(worker->log, L_DBG, fmt, ## __VA_ARGS__) #define DEBUG3(fmt, ...) if (worker->lvl >= L_DBG_LVL_3) fr_log(worker->log, L_DBG, fmt, ## __VA_ARGS__) #define ERROR(fmt, ...) fr_log(worker->log, L_ERR, fmt, ## __VA_ARGS__) -#define RDEBUG(fmt, ...) if (worker->lvl) fr_log(worker->log, L_DBG, "(%" PRIu64 ") " fmt, request->number, ## __VA_ARGS__) +#define RDEBUG(fmt, ...) if (worker->lvl) fr_log(worker->log, L_DBG, "(%s) " fmt, request->name, ## __VA_ARGS__) /** * A worker which takes packets from a master, and processes them. @@ -804,6 +804,7 @@ static REQUEST *fr_worker_get_request(fr_worker_t *worker, fr_time_t now) request->async->recv_time = *request->async->original_recv_time; request->async->el = worker->el; request->number = worker->number++; + request->name = talloc_asprintf(request, "%" PRIu64 , request->number); request->async->listen = cd->listen; request->async->packet_ctx = cd->packet_ctx; diff --git a/src/main/log.c b/src/main/log.c index f92de8013d3..e875f648378 100644 --- a/src/main/log.c +++ b/src/main/log.c @@ -345,10 +345,10 @@ print_msg: * (0) */ if ((request->seq_start == 0) || (request->number == request->seq_start)) { - msg_prefix = talloc_asprintf(request, "(%" PRIu64 ") ", request->number); + msg_prefix = talloc_asprintf(request, "(%s) ", request->name); } else { - msg_prefix = talloc_asprintf(request, "(%" PRIu64 ",%" PRIu64 ") ", - request->number, request->seq_start); + msg_prefix = talloc_asprintf(request, "(%s,%" PRIu64 ") ", + request->name, request->seq_start); } /* diff --git a/src/main/request.c b/src/main/request.c index d1093a69fd6..dc1c0e53d9d 100644 --- a/src/main/request.c +++ b/src/main/request.c @@ -132,8 +132,10 @@ REQUEST *request_alloc(TALLOC_CTX *ctx) static REQUEST *request_init_fake(REQUEST *request, REQUEST *fake) { - fake->number = request->number; - fake->seq_start = request->seq_start; + fake->number = request->child_number++; + fake->name = talloc_asprintf(fake, "%s.%" PRIu64 , request->name, fake->number); + + fake->seq_start = 0; /* children always start with their own sequence */ fake->parent = request; fake->root = request->root;