From: Alan T. DeKok Date: Wed, 24 Feb 2016 16:50:38 +0000 (-0500) Subject: remove unnecessary request->proxy_timestamp X-Git-Tag: release_3_0_12~209 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d09bb1661db9166312fd84705d49f2e43df7064a;p=thirdparty%2Ffreeradius-server.git remove unnecessary request->proxy_timestamp it's just request->proxy->timestamp --- diff --git a/src/include/radiusd.h b/src/include/radiusd.h index 47edc17e8bf..df9dbc0a3b5 100644 --- a/src/include/radiusd.h +++ b/src/include/radiusd.h @@ -274,8 +274,6 @@ struct rad_request { #ifdef WITH_PROXY bool in_proxy_hash; - struct timeval proxy_retransmit; - uint32_t num_proxied_requests; //!< How many times this request was proxied. //!< Retransmissions are driven by requests from the NAS. uint32_t num_proxied_responses; diff --git a/src/main/process.c b/src/main/process.c index 6bb6f966159..cbbfafa8ef3 100644 --- a/src/main/process.c +++ b/src/main/process.c @@ -350,7 +350,7 @@ void radius_update_listener(rad_listen_t *this) static int request_num_counter = 1; #ifdef WITH_PROXY static int request_will_proxy(REQUEST *request) CC_HINT(nonnull); -static int request_proxy(REQUEST *request, int retransmit) CC_HINT(nonnull); +static int request_proxy(REQUEST *request) CC_HINT(nonnull); STATE_MACHINE_DECL(request_ping) CC_HINT(nonnull); STATE_MACHINE_DECL(request_response_delay) CC_HINT(nonnull); @@ -1541,7 +1541,7 @@ static void request_running(REQUEST *request, int action) * up the post proxy fail * handler. */ - if (request_proxy(request, 0) < 0) goto req_finished; + if (request_proxy(request) < 0) goto req_finished; } else #endif { @@ -3161,7 +3161,7 @@ static int proxy_to_virtual_server(REQUEST *request) } -static int request_proxy(REQUEST *request, int retransmit) +static int request_proxy(REQUEST *request) { char buffer[128]; @@ -3227,11 +3227,8 @@ static int request_proxy(REQUEST *request, int retransmit) } - gettimeofday(&request->proxy_retransmit, NULL); - if (!retransmit) { - request->proxy->timestamp = request->proxy_retransmit; - } - request->home_server->last_packet_sent = request->proxy_retransmit.tv_sec; + gettimeofday(&request->proxy->timestamp, NULL); + request->home_server->last_packet_sent = request->proxy->timestamp.tv_sec; /* * Encode the packet before we do anything else. @@ -3298,7 +3295,8 @@ static int request_proxy_anew(REQUEST *request) #ifdef WITH_ACCOUNTING /* - * Update the Acct-Delay-Time attribute. + * Update the Acct-Delay-Time attribute, since the LAST + * time we tried to retransmit this packet. */ if (request->packet->code == PW_CODE_ACCOUNTING_REQUEST) { VALUE_PAIR *vp; @@ -3311,7 +3309,7 @@ static int request_proxy_anew(REQUEST *request) struct timeval now; gettimeofday(&now, NULL); - vp->vp_integer += now.tv_sec - request->proxy_retransmit.tv_sec; + vp->vp_integer += now.tv_sec - request->proxy->timestamp.tv_sec; } } #endif @@ -3343,7 +3341,7 @@ static int request_proxy_anew(REQUEST *request) request->proxy->data = NULL; request->proxy->data_len = 0; - if (request_proxy(request, 1) != 1) goto post_proxy_fail; + if (request_proxy(request) != 1) goto post_proxy_fail; return 1; } @@ -3805,7 +3803,7 @@ static void proxy_wait_for_reply(REQUEST *request, int action) * More than one retransmit a second is stupid, * and should be suppressed by the proxy. */ - when = request->proxy_retransmit; + when = request->proxy->timestamp; when.tv_sec++; if (timercmp(&now, &when, <)) { @@ -3841,7 +3839,7 @@ static void proxy_wait_for_reply(REQUEST *request, int action) rad_assert(request->proxy_listener != NULL); FR_STATS_TYPE_INC(home->stats.total_requests); home->last_packet_sent = now.tv_sec; - request->proxy_retransmit = now; + request->proxy->timestamp = now; debug_packet(request, request->proxy, false); request->proxy_listener->send(request->proxy_listener, request); break;