diff --git a/CMakeLists.txt b/CMakeLists.txt index 90f2399e050bfc77f1309dddcecb9cb9e8de8110..34e7bc2b4892129250ef523b0c8d3ce22fda690d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.6-38") +set(CELLFRAME_SDK_NATIVE_VERSION "2.6-39") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") diff --git a/dap-sdk/net/client/dap_client_http.c b/dap-sdk/net/client/dap_client_http.c index c8f5acb313204ae7fccf9f4c714a20a98acbadea..de59bca0c43c521033681acfcb10e86c572dac36 100644 --- a/dap-sdk/net/client/dap_client_http.c +++ b/dap-sdk/net/client/dap_client_http.c @@ -181,13 +181,22 @@ static void s_http_error(dap_events_socket_t * a_es, int a_errno) l_errbuf[0] = '\0'; if (a_errno == ETIMEDOUT){ strncpy(l_errbuf,"Connection timeout", sizeof (l_errbuf)-1); + }else if (a_errno == ECONNREFUSED){ + strncpy(l_errbuf,"Connection refused", sizeof (l_errbuf)-1); + }else if (a_errno == EHOSTDOWN){ + strncpy(l_errbuf,"Host is down", sizeof (l_errbuf)-1); + }else if (a_errno == EHOSTUNREACH){ + strncpy(l_errbuf,"No route to host", sizeof (l_errbuf)-1); + }else if (a_errno == EREMOTEIO){ + strncpy(l_errbuf,"Remote I/O error", sizeof (l_errbuf)-1); }else if(a_errno) strerror_r(a_errno, l_errbuf, sizeof (l_errbuf)); else strncpy(l_errbuf,"Unknown Error", sizeof (l_errbuf)-1); - if (a_es->flags & DAP_SOCK_CONNECTING) + + if (a_es->flags & DAP_SOCK_CONNECTING){ log_it(L_WARNING, "Socket connecting error: %s (code %d)" , l_errbuf, a_errno); - else + }else log_it(L_WARNING, "Socket error: %s (code %d)" , l_errbuf, a_errno); dap_client_http_pvt_t * l_client_http_internal = PVT(a_es); @@ -226,6 +235,7 @@ static void s_client_http_delete(dap_client_http_pvt_t * a_http_pvt) for( size_t i = 0; i < a_http_pvt->request_custom_headers_count; i++) { DAP_DELETE( a_http_pvt->request_custom_headers[i]); } + a_http_pvt->request_custom_headers = NULL; //DAP_DELETE( l_client_http_pvt->request_custom_headers); } diff --git a/dap-sdk/net/client/dap_client_pvt.c b/dap-sdk/net/client/dap_client_pvt.c index b423cc66a0394cc1de75b6ff2232563ec338b120..8cad69894eaa7bc5dc850187cbca3ed7025c86f3 100644 --- a/dap-sdk/net/client/dap_client_pvt.c +++ b/dap-sdk/net/client/dap_client_pvt.c @@ -704,12 +704,13 @@ static void s_request_error(int a_err_code, void * a_obj) dap_client_pvt_hh_unlock(); return; } + dap_client_pvt_hh_unlock(); + if(a_client_internal && a_client_internal->request_error_callback && a_client_internal->client) { if(a_client_internal && a_client_internal->request_error_callback && a_client_internal->client && a_client_internal->client->_internal) a_client_internal->request_error_callback(a_client_internal->client, a_err_code); } - dap_client_pvt_hh_unlock(); } /** @@ -884,10 +885,6 @@ static void s_enc_init_response(dap_client_t * a_client, void * a_response, size static void s_enc_init_error(dap_client_t * a_client, int a_err_code) { dap_client_pvt_t * l_client_pvt = DAP_CLIENT_PVT(a_client); - if (!dap_client_pvt_check(l_client_pvt) ){ - // Response received after client_pvt was deleted - return; - } //dap_client_internal_t * l_client_internal = dap_CLIENT_INTERNAL(a_client); log_it(L_ERROR, "ENC: Can't init ecnryption session, err code %d", a_err_code); @@ -999,10 +996,6 @@ static void s_stream_ctl_error(dap_client_t * a_client, int a_error) log_it(L_WARNING, "STREAM_CTL error %d", a_error); dap_client_pvt_t * l_client_pvt = DAP_CLIENT_PVT(a_client); - if (!dap_client_pvt_check(l_client_pvt) ){ - // Response received after client_pvt was deleted - return; - } if (a_error == ETIMEDOUT) { l_client_pvt->last_error = ERROR_NETWORK_CONNECTION_TIMEOUT;