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
* 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 */
};
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 ---^ ******/
};
/* 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.
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;