ah: allow configurable ah hold timeout
This commit is contained in:
parent
19a320a578
commit
ba45f7cf9f
4 changed files with 14 additions and 0 deletions
|
@ -470,6 +470,11 @@ lws_create_vhost(struct lws_context *context,
|
|||
else
|
||||
vh->keepalive_timeout = 5;
|
||||
|
||||
if (info->timeout_secs_ah_idle)
|
||||
vh->timeout_secs_ah_idle = info->timeout_secs_ah_idle;
|
||||
else
|
||||
vh->timeout_secs_ah_idle = 10;
|
||||
|
||||
/*
|
||||
* give the vhost a unified list of protocols including the
|
||||
* ones that came from plugins
|
||||
|
|
|
@ -2115,6 +2115,9 @@ struct lws_context_creation_info {
|
|||
* the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of
|
||||
* 0 means no info events will be reported.
|
||||
*/
|
||||
unsigned int timeout_secs_ah_idle;
|
||||
/**< VHOST: seconds to allow a client to hold an ah without using it.
|
||||
* 0 defaults to 10s. */
|
||||
|
||||
void *_unused[8]; /**< dummy */
|
||||
};
|
||||
|
@ -3670,6 +3673,7 @@ enum pending_timeout {
|
|||
PENDING_TIMEOUT_KILLED_BY_SSL_INFO = 22,
|
||||
PENDING_TIMEOUT_KILLED_BY_PARENT = 23,
|
||||
PENDING_TIMEOUT_CLOSE_SEND = 24,
|
||||
PENDING_TIMEOUT_HOLDING_AH = 25,
|
||||
|
||||
/****** add new things just above ---^ ******/
|
||||
};
|
||||
|
|
|
@ -92,6 +92,10 @@ lws_header_table_reset(struct lws *wsi, int autoservice)
|
|||
/* since we will restart the ah, our new headers are not completed */
|
||||
wsi->hdr_parsing_completed = 0;
|
||||
|
||||
/* while we hold the ah, keep a timeout on the wsi */
|
||||
lws_set_timeout(wsi, PENDING_TIMEOUT_HOLDING_AH,
|
||||
wsi->vhost->timeout_secs_ah_idle);
|
||||
|
||||
/*
|
||||
* if we inherited pending rx (from socket adoption deferred
|
||||
* processing), apply and free it.
|
||||
|
|
|
@ -891,6 +891,7 @@ struct lws_vhost {
|
|||
int ka_probes;
|
||||
int ka_interval;
|
||||
int keepalive_timeout;
|
||||
int timeout_secs_ah_idle;
|
||||
int ssl_info_event_mask;
|
||||
#ifdef LWS_WITH_ACCESS_LOG
|
||||
int log_fd;
|
||||
|
|
Loading…
Add table
Reference in a new issue