Fix for stray brace in wolfIO_TcpConnect. Fix to typedef sockaddr_in6 only when TEST_IPV6 is defined. Moved XSOCKLENT into io.h. Added useful WOLFSSL_NO_SOCK, which can be used with WOLFSSL_USER_IO.

This commit is contained in:
David Garske
2017-03-10 10:21:22 -08:00
parent d3a07858c0
commit cf73a2244f
2 changed files with 51 additions and 43 deletions

View File

@@ -219,12 +219,6 @@ int EmbedSend(WOLFSSL* ssl, char *buf, int sz, void *ctx)
#include <wolfssl/wolfcrypt/sha.h> #include <wolfssl/wolfcrypt/sha.h>
#ifdef USE_WINDOWS_API
#define XSOCKLENT int
#else
#define XSOCKLENT socklen_t
#endif
#define SENDTO_FUNCTION sendto #define SENDTO_FUNCTION sendto
#define RECVFROM_FUNCTION recvfrom #define RECVFROM_FUNCTION recvfrom
@@ -608,7 +602,7 @@ static int wolfIO_Word16ToString(char* d, word16 number)
int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip, word16 port, int to_sec) int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip, word16 port, int to_sec)
{ {
#if defined(HAVE_GETADDRINFO) || defined(HAVE_SOCKADDR) #ifdef HAVE_SOCKADDR
int ret = 0; int ret = 0;
SOCKADDR_S addr; SOCKADDR_S addr;
int sockaddr_len = sizeof(SOCKADDR_IN); int sockaddr_len = sizeof(SOCKADDR_IN);
@@ -653,14 +647,12 @@ int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip, word16 port, int to_sec)
if (entry) { if (entry) {
sin->sin_family = AF_INET; sin->sin_family = AF_INET;
sin->sin_port = XHTONS(port); sin->sin_port = XHTONS(port);
XMEMCPY(&sin->sin_addr.s_addr, entry->h_addr_list[0], XMEMCPY(&sin->sin_addr.s_addr, entry->h_addr_list[0], entry->h_length);
entry->h_length);
} }
else { else {
WOLFSSL_MSG("no addr info for responder"); WOLFSSL_MSG("no addr info for responder");
return -1; return -1;
} }
}
#endif #endif
*sockfd = (SOCKET_T)socket(addr.ss_family, SOCK_STREAM, 0); *sockfd = (SOCKET_T)socket(addr.ss_family, SOCK_STREAM, 0);
@@ -709,7 +701,7 @@ int wolfIO_TcpConnect(SOCKET_T* sockfd, const char* ip, word16 port, int to_sec)
(void)port; (void)port;
(void)to_sec; (void)to_sec;
return -1; return -1;
#endif /* HAVE_GETADDRINFO || HAVE_SOCKADDR */ #endif /* HAVE_SOCKADDR */
} }
int wolfIO_Recv(SOCKET_T sd, char *buf, int sz, int rdFlags) int wolfIO_Recv(SOCKET_T sd, char *buf, int sz, int rdFlags)

View File

@@ -90,7 +90,7 @@
#include <netdb.h> #include <netdb.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <io.h> #include <io.h>
#else #elif !defined(WOLFSSL_NO_SOCK)
#include <sys/types.h> #include <sys/types.h>
#include <errno.h> #include <errno.h>
#ifndef EBSNET #ifndef EBSNET
@@ -224,8 +224,10 @@
#else #else
#define SEND_FUNCTION send #define SEND_FUNCTION send
#define RECV_FUNCTION recv #define RECV_FUNCTION recv
#if !defined(HAVE_SOCKADDR) && !defined(WOLFSSL_NO_SOCK)
#define HAVE_SOCKADDR #define HAVE_SOCKADDR
#endif #endif
#endif
#ifdef USE_WINDOWS_API #ifdef USE_WINDOWS_API
typedef unsigned int SOCKET_T; typedef unsigned int SOCKET_T;
@@ -233,38 +235,30 @@
typedef int SOCKET_T; typedef int SOCKET_T;
#endif #endif
#ifndef WOLFSSL_NO_SOCK
#ifndef XSOCKLENT
#ifdef USE_WINDOWS_API
#define XSOCKLENT int
#else
#define XSOCKLENT socklen_t
#endif
#endif
/* Socket Addr Support */ /* Socket Addr Support */
#ifdef HAVE_SOCKADDR #ifdef HAVE_SOCKADDR
typedef struct sockaddr SOCKADDR; typedef struct sockaddr SOCKADDR;
typedef struct sockaddr_storage SOCKADDR_S; typedef struct sockaddr_storage SOCKADDR_S;
typedef struct sockaddr_in SOCKADDR_IN; typedef struct sockaddr_in SOCKADDR_IN;
#ifdef TEST_IPV6
typedef struct sockaddr_in6 SOCKADDR_IN6; typedef struct sockaddr_in6 SOCKADDR_IN6;
#endif
typedef struct hostent HOSTENT; typedef struct hostent HOSTENT;
#endif /* HAVE_SOCKADDR */ #endif /* HAVE_SOCKADDR */
#ifdef HAVE_GETADDRINFO #ifdef HAVE_GETADDRINFO
typedef struct addrinfo ADDRINFO; typedef struct addrinfo ADDRINFO;
#endif #endif
#endif /* WOLFSSL_NO_SOCK */
#ifndef XINET_NTOP
#define XINET_NTOP(a,b,c,d) inet_ntop((a),(b),(c),(d))
#endif
#ifndef XINET_PTON
#define XINET_PTON(a,b,c) inet_pton((a),(b),(c))
#endif
#ifndef XHTONS
#define XHTONS(a) htons((a))
#endif
#ifndef XNTOHS
#define XNTOHS(a) ntohs((a))
#endif
#ifndef WOLFSSL_IP4
#define WOLFSSL_IP4 AF_INET
#endif
#ifndef WOLFSSL_IP6
#define WOLFSSL_IP6 AF_INET6
#endif
/* IO API's */ /* IO API's */
@@ -379,6 +373,28 @@ WOLFSSL_API void wolfSSL_SetIOWriteFlags(WOLFSSL* ssl, int flags);
#endif #endif
#ifndef XINET_NTOP
#define XINET_NTOP(a,b,c,d) inet_ntop((a),(b),(c),(d))
#endif
#ifndef XINET_PTON
#define XINET_PTON(a,b,c) inet_pton((a),(b),(c))
#endif
#ifndef XHTONS
#define XHTONS(a) htons((a))
#endif
#ifndef XNTOHS
#define XNTOHS(a) ntohs((a))
#endif
#ifndef WOLFSSL_IP4
#define WOLFSSL_IP4 AF_INET
#endif
#ifndef WOLFSSL_IP6
#define WOLFSSL_IP6 AF_INET6
#endif
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif