]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add request->name as name of the request
authorAlan T. DeKok <aland@freeradius.org>
Tue, 12 Sep 2017 11:57:46 +0000 (07:57 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 12 Sep 2017 11:58:55 +0000 (07:58 -0400)
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

src/include/radiusd.h
src/lib/io/worker.c
src/main/log.c
src/main/request.c

index c2b0ccbbb9df1d5e9c467be0ca6b0f22afafbcfe..5dc8e4bc861551512c2a2d276ee6880b01e454e6 100644 (file)
@@ -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
index bfe296801730e01afaf5b71f47234a801b6d181d..9b562266ca806a2a783d1bac713ff5d409b29525 100644 (file)
@@ -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;
index f92de8013d3d55b92b2503ae8f2dbfa83a49f7db..e875f648378bade97a8ffd97ff913669a174f34b 100644 (file)
@@ -345,10 +345,10 @@ print_msg:
         *      (0) <msg>
         */
        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);
        }
 
        /*
index d1093a69fd6ef234b7b4db5ed3e326e31c0f71c8..dc1c0e53d9db4802cd14a93cd2bb54ddb204960a 100644 (file)
@@ -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;