Code review changes

This commit is contained in:
Juliusz Sosinowicz
2021-08-10 12:40:04 +02:00
parent fab227411f
commit dd4adacee8
4 changed files with 31 additions and 37 deletions

View File

@ -54967,8 +54967,8 @@ int wolfSSL_CONF_cmd(WOLFSSL_CONF_CTX* cctx, const char* cmd, const char* value)
else else
port = str + XSTRLEN(str); /* point to null terminator */ port = str + XSTRLEN(str); /* point to null terminator */
bio->ip = (char*)XMALLOC(1 + port - str, bio->heap, bio->ip = (char*)XMALLOC((port - str) + 1, /* +1 for null char */
DYNAMIC_TYPE_OPENSSL); bio->heap, DYNAMIC_TYPE_OPENSSL);
XMEMCPY(bio->ip, str, port - str); XMEMCPY(bio->ip, str, port - str);
bio->ip[port - str] = '\0'; bio->ip[port - str] = '\0';
bio->type = WOLFSSL_BIO_SOCKET; bio->type = WOLFSSL_BIO_SOCKET;
@ -55055,13 +55055,14 @@ int wolfSSL_CONF_cmd(WOLFSSL_CONF_CTX* cctx, const char* cmd, const char* value)
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#ifdef HAVE_SOCKADDR
int wolfSSL_BIO_do_accept(WOLFSSL_BIO *b) int wolfSSL_BIO_do_accept(WOLFSSL_BIO *b)
{ {
SOCKET_T sfd = SOCKET_INVALID; SOCKET_T sfd = SOCKET_INVALID;
WOLFSSL_ENTER("wolfSSL_BIO_do_accept"); WOLFSSL_ENTER("wolfSSL_BIO_do_accept");
if (!b) { if (!b) {
WOLFSSL_ENTER("Bad parameter"); WOLFSSL_MSG("Bad parameter");
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
@ -55102,13 +55103,15 @@ int wolfSSL_CONF_cmd(WOLFSSL_CONF_CTX* cctx, const char* cmd, const char* value)
/* Push onto bio chain for user retrieval */ /* Push onto bio chain for user retrieval */
if (wolfSSL_BIO_push(b, new_bio) == NULL) { if (wolfSSL_BIO_push(b, new_bio) == NULL) {
WOLFSSL_ENTER("wolfSSL_BIO_push error"); WOLFSSL_ENTER("wolfSSL_BIO_push error");
CloseSocket(newfd); /* newfd is closed when bio is free'd */
wolfSSL_BIO_free(new_bio);
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
} }
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* HAVE_SOCKADDR */
#endif /* HAVE_HTTP_CLIENT */ #endif /* HAVE_HTTP_CLIENT */
int wolfSSL_BIO_eof(WOLFSSL_BIO* b) int wolfSSL_BIO_eof(WOLFSSL_BIO* b)
@ -55312,7 +55315,7 @@ int wolfSSL_CONF_cmd(WOLFSSL_CONF_CTX* cctx, const char* cmd, const char* value)
#ifdef CloseSocket #ifdef CloseSocket
if (bio->type == WOLFSSL_BIO_SOCKET && bio->num) if (bio->type == WOLFSSL_BIO_SOCKET && bio->num)
CloseSocket(bio->num); CloseSocket(bio->num);
#endif #endif
} }
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM

View File

@ -865,6 +865,7 @@ int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip, word16 port, int to_sec)
int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port) int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port)
{ {
#ifdef HAVE_SOCKADDR #ifdef HAVE_SOCKADDR
int ret = 0;
SOCKADDR_S addr; SOCKADDR_S addr;
int sockaddr_len = sizeof(SOCKADDR_IN); int sockaddr_len = sizeof(SOCKADDR_IN);
SOCKADDR_IN *sin = (SOCKADDR_IN *)&addr; SOCKADDR_IN *sin = (SOCKADDR_IN *)&addr;
@ -880,39 +881,34 @@ int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port)
sin->sin_port = XHTONS(port); sin->sin_port = XHTONS(port);
*sockfd = (SOCKET_T)socket(AF_INET, SOCK_STREAM, 0); *sockfd = (SOCKET_T)socket(AF_INET, SOCK_STREAM, 0);
if (*sockfd < 0) {
WOLFSSL_MSG("socket failed");
*sockfd = SOCKET_INVALID;
return -1;
}
#if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_MDK_ARM)\ #if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_MDK_ARM)\
&& !defined(WOLFSSL_KEIL_TCP_NET) && !defined(WOLFSSL_ZEPHYR) && !defined(WOLFSSL_KEIL_TCP_NET) && !defined(WOLFSSL_ZEPHYR)
{ {
int optval = 1; int optval = 1;
#ifndef USE_WINDOWS_API XSOCKLENT optlen = sizeof(optval);
socklen_t optlen = sizeof(optval); ret = setsockopt(*sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, optlen);
#else
int optlen = sizeof(optval);
#endif
if (setsockopt(*sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, optlen) < 0) {
WOLFSSL_MSG("setsockopt SO_REUSEADDR failed");
CloseSocket(*sockfd);
*sockfd = SOCKET_INVALID;
return -1;
}
} }
#endif #endif
if (bind(*sockfd, (SOCKADDR *)sin, sockaddr_len) != 0) { if (ret == 0)
WOLFSSL_MSG("tcp bind failed"); ret = bind(*sockfd, (SOCKADDR *)sin, sockaddr_len);
if (ret == 0)
ret = listen(*sockfd, SOMAXCONN);
if (ret != 0) {
WOLFSSL_MSG("wolfIO_TcpBind failed");
CloseSocket(*sockfd); CloseSocket(*sockfd);
*sockfd = SOCKET_INVALID; *sockfd = SOCKET_INVALID;
return -1; ret = -1;
} }
if (listen(*sockfd, SOMAXCONN) != 0) { return ret;
WOLFSSL_MSG("tcp listen failed");
CloseSocket(*sockfd);
*sockfd = SOCKET_INVALID;
return -1;
}
return 0;
#else #else
(void)sockfd; (void)sockfd;
(void)port; (void)port;
@ -921,11 +917,7 @@ int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port)
} }
#ifdef HAVE_SOCKADDR #ifdef HAVE_SOCKADDR
#ifndef USE_WINDOWS_API int wolfIO_TcpAccept(SOCKET_T sockfd, SOCKADDR* peer_addr, XSOCKLENT* peer_len)
int wolfIO_TcpAccept(SOCKET_T sockfd, SOCKADDR* peer_addr, socklen_t* peer_len)
#else
int wolfIO_TcpAccept(SOCKET_T sockfd, SOCKADDR* peer_addr, int* peer_len)
#endif
{ {
return accept(sockfd, peer_addr, peer_len); return accept(sockfd, peer_addr, peer_len);
} }

View File

@ -26,8 +26,9 @@
#ifndef WOLFSSL_OPENSSL_COMPAT_TYPES_H_ #ifndef WOLFSSL_OPENSSL_COMPAT_TYPES_H_
#define WOLFSSL_OPENSSL_COMPAT_TYPES_H_ #define WOLFSSL_OPENSSL_COMPAT_TYPES_H_
#include <wolfssl/wolfcrypt/hmac.h> #include <wolfssl/wolfcrypt/settings.h>
#include <wolfssl/wolfcrypt/types.h> #include <wolfssl/wolfcrypt/types.h>
#include <wolfssl/wolfcrypt/hmac.h>
typedef struct WOLFSSL_HMAC_CTX { typedef struct WOLFSSL_HMAC_CTX {
Hmac hmac; Hmac hmac;

View File

@ -373,10 +373,8 @@
#endif #endif
WOLFSSL_API int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip, WOLFSSL_API int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip,
unsigned short port, int to_sec); unsigned short port, int to_sec);
#ifndef USE_WINDOWS_API #ifdef HAVE_SOCKADDR
WOLFSSL_API int wolfIO_TcpAccept(SOCKET_T sockfd, SOCKADDR* peer_addr, socklen_t* peer_len); WOLFSSL_API int wolfIO_TcpAccept(SOCKET_T sockfd, SOCKADDR* peer_addr, XSOCKLENT* peer_len);
#else
WOLFSSL_API int wolfIO_TcpAccept(SOCKET_T sockfd, SOCKADDR* peer_addr, int* peer_len);
#endif #endif
WOLFSSL_API int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port); WOLFSSL_API int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port);
WOLFSSL_API int wolfIO_Send(SOCKET_T sd, char *buf, int sz, int wrFlags); WOLFSSL_API int wolfIO_Send(SOCKET_T sd, char *buf, int sz, int wrFlags);