]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
encode packet before debugging it
authorAlan T. DeKok <aland@freeradius.org>
Thu, 23 Sep 2021 12:37:25 +0000 (08:37 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 23 Sep 2021 12:37:25 +0000 (08:37 -0400)
so that the debug message contains the correct length

src/main/listen.c
src/main/process.c

index 7ee4339c6e3fac3fc524eec5c5fee6ab2b2c5729..968c8563ed52829e2e01404d6af344f291e6621b 100644 (file)
@@ -2357,6 +2357,8 @@ static int client_socket_encode(UNUSED rad_listen_t *listener, REQUEST *request)
 
        if (!request->reply->code) return 0;
 
+       if (request->reply->data) return 0; /* already encoded */
+
        if (rad_encode(request->reply, request->packet, request->client->secret) < 0) {
                RERROR("Failed encoding packet: %s", fr_strerror());
 
index 55f5592dd0cef0571e02c8acebacebb78e32df22..bf806d80745340f09a46c4c015cdb8863021f3af 100644 (file)
@@ -1287,6 +1287,7 @@ static void request_response_delay(REQUEST *request, int action)
                } /* else it's time to send the reject */
 
                RDEBUG2("Sending delayed response");
+               request->listener->encode(request->listener, request);
                debug_packet(request, request->reply, false);
                request->listener->send(request->listener, request);
 
@@ -1566,6 +1567,7 @@ static void request_finish(REQUEST *request, int action)
                                }
                        }
 
+                       request->listener->encode(request->listener, request);
                        debug_packet(request, request->reply, false);
                        request->listener->send(request->listener, request);
                }
@@ -3940,6 +3942,7 @@ static void ping_home_server(void *ctx)
        home->num_sent_pings++;
 
        rad_assert(request->proxy_listener != NULL);
+       request->proxy_listener->encode(request->proxy_listener, request);
        debug_packet(request, request->proxy, false);
        request->proxy_listener->send(request->proxy_listener,
                                      request);