fix calculation of 'Expires:' header, also handle HTTP HEAD requests
This commit is contained in:
parent
a8de810bf7
commit
472853442f
@ -320,6 +320,9 @@ handle_mhd_request (void *cls,
|
||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||
"Handling request for URL '%s'\n",
|
||||
url);
|
||||
if (0 == strcasecmp (method,
|
||||
MHD_HTTP_METHOD_HEAD))
|
||||
method = MHD_HTTP_METHOD_GET; /* treat HEAD as GET here, MHD will do the rest */
|
||||
for (unsigned int i=0;NULL != handlers[i].url;i++)
|
||||
{
|
||||
rh = &handlers[i];
|
||||
|
@ -1047,12 +1047,15 @@ setup_general_response_headers (const struct TEH_KS_StateHandle *key_state,
|
||||
MHD_add_response_header (response,
|
||||
MHD_HTTP_HEADER_LAST_MODIFIED,
|
||||
dat));
|
||||
get_date_string (key_state->next_reload,
|
||||
dat);
|
||||
GNUNET_break (MHD_YES ==
|
||||
MHD_add_response_header (response,
|
||||
MHD_HTTP_HEADER_EXPIRES,
|
||||
dat));
|
||||
if (0 != key_state->next_reload.abs_value_us)
|
||||
{
|
||||
get_date_string (key_state->next_reload,
|
||||
dat);
|
||||
GNUNET_break (MHD_YES ==
|
||||
MHD_add_response_header (response,
|
||||
MHD_HTTP_HEADER_EXPIRES,
|
||||
dat));
|
||||
}
|
||||
return GNUNET_OK;
|
||||
}
|
||||
|
||||
@ -1458,6 +1461,13 @@ make_fresh_key_state ()
|
||||
off++;
|
||||
}
|
||||
|
||||
/* Compute next automatic reload time */
|
||||
key_state->next_reload =
|
||||
GNUNET_TIME_absolute_min (GNUNET_TIME_absolute_ntoh (key_state->current_sign_key_issue.issue.expire),
|
||||
key_state->min_dk_expire);
|
||||
GNUNET_assert (0 != key_state->next_reload.abs_value_us);
|
||||
|
||||
|
||||
/* Initialize `krd_array` */
|
||||
key_state->krd_array_length = off;
|
||||
key_state->krd_array
|
||||
@ -1487,6 +1497,7 @@ make_fresh_key_state ()
|
||||
}
|
||||
last = d;
|
||||
}
|
||||
|
||||
/* Finally, build an `empty` response without denomination keys
|
||||
for requests past the last known denomination key start date */
|
||||
if ( (off + 1 < key_state->krd_array_length) ||
|
||||
@ -1503,12 +1514,6 @@ make_fresh_key_state ()
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Compute next automatic reload time */
|
||||
key_state->next_reload =
|
||||
GNUNET_TIME_absolute_min (GNUNET_TIME_absolute_ntoh (key_state->current_sign_key_issue.issue.expire),
|
||||
key_state->min_dk_expire);
|
||||
GNUNET_assert (0 != key_state->next_reload.abs_value_us);
|
||||
|
||||
/* Clean up intermediary state we don't need anymore and return
|
||||
new key_state! */
|
||||
destroy_response_factory (&rfc);
|
||||
|
@ -89,10 +89,10 @@ TEH_MHD_handler_static_response (struct TEH_RequestHandler *rh,
|
||||
*/
|
||||
int
|
||||
TEH_MHD_handler_agpl_redirect (struct TEH_RequestHandler *rh,
|
||||
struct MHD_Connection *connection,
|
||||
void **connection_cls,
|
||||
const char *upload_data,
|
||||
size_t *upload_data_size)
|
||||
struct MHD_Connection *connection,
|
||||
void **connection_cls,
|
||||
const char *upload_data,
|
||||
size_t *upload_data_size)
|
||||
{
|
||||
const char *agpl =
|
||||
"This server is licensed under the Affero GPL. You will now be redirected to the source code.";
|
||||
|
Loading…
Reference in New Issue
Block a user