diff --git a/osal/efr32_wisun/osal_efr32_wisun.c b/osal/efr32_wisun/osal_efr32_wisun.c index 6e90340..89ceb8b 100644 --- a/osal/efr32_wisun/osal_efr32_wisun.c +++ b/osal/efr32_wisun/osal_efr32_wisun.c @@ -188,6 +188,11 @@ osal_socket_handle_t osal_socket(osal_basetype_t domain, return socket(domain, type, protocol); } +osal_basetype_t osal_socket_close(osal_socket_handle_t sockd) +{ + return close(sockd); +} + osal_ssize_t osal_recvfrom(osal_socket_handle_t sockd, void *buf, size_t len, osal_basetype_t flags, osal_sockaddr_t *src_addr, osal_socklen_t *addrlen) { diff --git a/osal/freertos/osal_freertos.c b/osal/freertos/osal_freertos.c index 42aa369..78bbc9c 100644 --- a/osal/freertos/osal_freertos.c +++ b/osal/freertos/osal_freertos.c @@ -151,6 +151,11 @@ osal_socket_handle_t osal_socket(osal_basetype_t domain, osal_basetype_t type, o return socket(domain, type, protocol); } +osal_basetype_t osal_socket_close(osal_socket_handle_t sockd) +{ + return close(sockd); +} + osal_ssize_t osal_recvfrom(osal_socket_handle_t sockd, void *buf, size_t len, osal_basetype_t flags, osal_sockaddr_t *src_addr, osal_socklen_t *addrlen) { diff --git a/osal/linux/osal_linux.c b/osal/linux/osal_linux.c index 4d3f3f5..80d61f6 100644 --- a/osal/linux/osal_linux.c +++ b/osal/linux/osal_linux.c @@ -118,6 +118,11 @@ osal_socket_handle_t osal_socket(osal_basetype_t domain, osal_basetype_t type, o return(socket(domain, type, protocol)); } +osal_basetype_t osal_socket_close(osal_socket_handle_t sockd) +{ + return close(sockd); +} + osal_basetype_t osal_bind(osal_socket_handle_t sockd, osal_sockaddr_t *addr, osal_socklen_t addrlen) { return (bind(sockd, (const struct sockaddr *)(addr), addrlen)); diff --git a/osal/osal.h b/osal/osal.h index 15f35cc..a2e8be9 100644 --- a/osal/osal.h +++ b/osal/osal.h @@ -247,10 +247,23 @@ osal_basetype_t osal_sem_destroy(osal_sem_t *sem); * @param[in] protocol specifies a particular protocol to be used with the socket * * output parameters - * @return 0 on success; on error, -1 is returned + * @return socket descriptor on success; on error, -1 is returned *****************************************************************************/ osal_socket_handle_t osal_socket(osal_basetype_t domain, osal_basetype_t type, osal_basetype_t protocol); +/**************************************************************************** + * @fn osal_socket_close + * + * @brief close a communication endpoint. + * + * input parameters + * @param[in] sockd socket descriptor + * + * output parameters + * @return 0 on success; on error, -1 is returned + *****************************************************************************/ +osal_basetype_t osal_socket_close(osal_socket_handle_t sockd); + /**************************************************************************** * @fn osal_recvfrom * diff --git a/src/coap/coapclient.c b/src/coap/coapclient.c index a4c8238..ce08dc4 100755 --- a/src/coap/coapclient.c +++ b/src/coap/coapclient.c @@ -46,7 +46,7 @@ int coapclient_stop() { m_client_opened = false; osal_task_cancel(recvt_id_task); - return close(m_sock); + return osal_socket_close(m_sock); } int coapclient_open(response_handler_t response_handler) diff --git a/src/coap/coapserver.c b/src/coap/coapserver.c index 7ee6a1e..23f4b3d 100755 --- a/src/coap/coapserver.c +++ b/src/coap/coapserver.c @@ -46,7 +46,7 @@ int coapserver_stop() { m_server_opened = false; osal_task_cancel(recvt_id_task); - return close(m_sockfd); + return osal_socket_close(m_sockfd); } int coapserver_listen(uint16_t sport, recv_handler_t recv_handler) @@ -77,7 +77,7 @@ int coapserver_listen(uint16_t sport, recv_handler_t recv_handler) osal_update_sockaddr(&listen_addr, sport); if (osal_bind(sockfd, &listen_addr, sizeof(listen_addr)) < 0) { DPRINTF("coapserver_listen bind error!\n"); - close(sockfd); + osal_socket_close(sockfd); return -1; }