From 8d4c673d02624b5da82cea29b6370c0b6e23d444 Mon Sep 17 00:00:00 2001 From: Gadkari Mugdha Date: Mon, 13 Jun 2016 08:43:03 +0200 Subject: [PATCH] fix for https connection code --- lib/client.c | 4 +--- lib/libwebsockets.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) mode change 100644 => 100755 lib/client.c mode change 100644 => 100755 lib/libwebsockets.c diff --git a/lib/client.c b/lib/client.c old mode 100644 new mode 100755 index fd7bb18..35fe8a1 --- a/lib/client.c +++ b/lib/client.c @@ -868,9 +868,7 @@ bail3: close_reason = LWS_CLOSE_STATUS_NOSTATUS; bail2: - if (wsi->protocol && - (wsi->state == LWSS_ESTABLISHED || - wsi->state == LWSS_CLIENT_UNCONNECTED)) { + if (wsi->protocol && wsi->state == LWSS_ESTABLISHED) { if (isErrorCodeReceived && p) { wsi->protocol->callback(wsi, LWS_CALLBACK_CLIENT_CONNECTION_ERROR, diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c old mode 100644 new mode 100755 index 3f5760b..99f8ec1 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -405,10 +405,20 @@ just_kill_connection: wsi->user_space, NULL, 0 ); } else if (wsi->mode == LWSCM_WSCL_WAITING_SERVER_REPLY || wsi->mode == LWSCM_WSCL_WAITING_CONNECT) { + char* errorString; + lwsl_debug("Connection closed before server reply\n"); - context->protocols[0].callback(wsi, + errorString = lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP); + if (errorString) { + context->protocols[0].callback(wsi, + LWS_CALLBACK_CLIENT_CONNECTION_ERROR, + wsi->user_space, errorString, + (unsigned int)strlen(errorString)); + } else { + context->protocols[0].callback(wsi, LWS_CALLBACK_CLIENT_CONNECTION_ERROR, wsi->user_space, NULL, 0); + } } else lwsl_debug("not calling back closed mode=%d state=%d\n", wsi->mode, wsi->state_pre_close); -- 2.7.4