if (!ws)
return;
- VINE_LOGD("ws[%s] is destroyed.", ws);
+ VINE_LOGD("ws[%p] is destroyed.", ws);
ws->wsi = NULL;
ws->vh = NULL;
lws_get_protocol(wsi)); // host private data.
int n = 0;
+ if (ws && ws->close_requested
+ && reason != LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS) {
+ VINE_LOGD("ws[%p](user: %p) will be closed. Do nothing for it.", ws, ws->user);
+ return -1;
+ }
+
switch (reason) {
- case LWS_CALLBACK_FILTER_NETWORK_CONNECTION :
+ case LWS_CALLBACK_WSI_DESTROY:
+ VINE_LOGI("wsi[%p](ws: %p) is destroyed.", wsi, ws);
+ break;
+
+ case LWS_CALLBACK_FILTER_NETWORK_CONNECTION:
if (vhd && vhd->max_conn > 0 && vhd->max_conn <= vhd->curr_conn) {
VINE_LOGI("The max connection limit[%d] is reached. Reject the request.",
vhd->max_conn);