mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 12:14:38 +02:00
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:
14
src/io.c
14
src/io.c
@@ -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)
|
||||||
|
68
wolfssl/io.h
68
wolfssl/io.h
@@ -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,7 +224,9 @@
|
|||||||
#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
|
||||||
@@ -233,38 +235,30 @@
|
|||||||
typedef int SOCKET_T;
|
typedef int SOCKET_T;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Socket Addr Support */
|
#ifndef WOLFSSL_NO_SOCK
|
||||||
#ifdef HAVE_SOCKADDR
|
#ifndef XSOCKLENT
|
||||||
|
#ifdef USE_WINDOWS_API
|
||||||
|
#define XSOCKLENT int
|
||||||
|
#else
|
||||||
|
#define XSOCKLENT socklen_t
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Socket Addr Support */
|
||||||
|
#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
|
||||||
|
Reference in New Issue
Block a user