@cryptotaxi247 / netdata-1 / commits / fb5286cf3

use real-time clock for http response headers (#15421)

Costa Tsaousis committed Jul 17, 2023 at 11:35 UTC fb5286cf3053cf5b61644d27fd282a603a8cb7f4
3 files changed +7 -8
aclk/aclk_query.c
-1
@@ -197,7 +197,6 @@ static int http_api_v2(struct aclk_query_thread *query_thr, aclk_query_t query)
197 z_buffer = NULL;
198 }
199
200 - w->response.data->date = w->timings.tv_ready.tv_sec;
200 web_client_build_http_header(w);
201 local_buffer = buffer_create(NETDATA_WEB_RESPONSE_INITIAL_SIZE, &netdata_buffers_statistics.buffers_aclk);
202 local_buffer->content_type = CT_APPLICATION_JSON;
web/api/badges/web_buffer_svg.c
+2 -1
@@ -1055,7 +1055,8 @@ int web_client_api_request_v1_badge(RRDHOST *host, struct web_client *w, char *u
1055 if(rc) {
1056 if (refresh > 0) {
1057 buffer_sprintf(w->response.header, "Refresh: %d\r\n", refresh);
1058 - w->response.data->expires = now_realtime_sec() + refresh;
1058 + w->response.data->date = now_realtime_sec();
1059 + w->response.data->expires = w->response.data->date + refresh;
1060 }
1061 else buffer_no_cacheable(w->response.data);
1062
web/server/web_client.c
+5 -6
@@ -1276,12 +1276,15 @@ void web_client_build_http_header(struct web_client *w) {
1276 if(unlikely(w->response.code != HTTP_RESP_OK))
1277 buffer_no_cacheable(w->response.data);
1278
1279 + if(unlikely(!w->response.data->date))
1280 + w->response.data->date = now_realtime_sec();
1281 +
1282 // set a proper expiration date, if not already set
1283 if(unlikely(!w->response.data->expires)) {
1284 if(w->response.data->options & WB_CONTENT_NO_CACHEABLE)
1282 - w->response.data->expires = w->timings.tv_ready.tv_sec + localhost->rrd_update_every;
1285 + w->response.data->expires = w->response.data->date + localhost->rrd_update_every;
1286 else
1284 - w->response.data->expires = w->timings.tv_ready.tv_sec + 86400;
1287 + w->response.data->expires = w->response.data->date + 86400;
1288 }
1289
1290 // prepare the HTTP response header
@@ -1868,10 +1871,6 @@ void web_client_process_request(struct web_client *w) {
1871
1872 w->response.sent = 0;
1873
1871 - // set a proper last modified date
1872 - if(unlikely(!w->response.data->date))
1873 - w->response.data->date = w->timings.tv_ready.tv_sec;
1874 -
1874 web_client_send_http_header(w);
1875
1876 // enable sending immediately if we have data