Merge pull request #292 from kojo1/mqx

minor fix for MQX
pull/296/head
John Safranek 2020-10-13 13:42:31 -07:00 committed by GitHub
commit 6849e6bd09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 27 deletions

View File

@ -21,7 +21,6 @@
#define WOLFSSH_TEST_SERVER
#define WOLFSSH_TEST_ECHOSERVER
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@ -40,6 +39,7 @@
#include <wolfssh/agent.h>
#include <wolfssh/test.h>
#include <wolfssl/wolfcrypt/ecc.h>
#include "examples/echoserver/echoserver.h"
#if defined(WOLFSSL_PTHREADS) && defined(WOLFSSL_TEST_GLOBAL_REQ)
@ -108,7 +108,7 @@ typedef struct WS_AgentCbActionCtx {
typedef struct {
WOLFSSH* ssh;
SOCKET_T fd;
WS_SOCKET_T fd;
word32 id;
int echo;
char nonBlock;
@ -264,10 +264,10 @@ static int ssh_worker(thread_ctx_t* threadCtx) {
if (!stop) {
if (threadCtx->nonBlock) {
SOCKET_T sockfd;
WS_SOCKET_T sockfd;
int select_ret = 0;
sockfd = (SOCKET_T)wolfSSH_get_fd(threadCtx->ssh);
sockfd = (WS_SOCKET_T)wolfSSH_get_fd(threadCtx->ssh);
select_ret = tcp_select(sockfd, 1);
if (select_ret != WS_SELECT_RECV_READY &&
@ -899,10 +899,10 @@ static int sftp_worker(thread_ctx_t* threadCtx) {
byte tmp[1];
int ret = WS_SUCCESS;
int error = WS_SUCCESS;
SOCKET_T sockfd;
WS_SOCKET_T sockfd;
int select_ret = 0;
sockfd = (SOCKET_T)wolfSSH_get_fd(threadCtx->ssh);
sockfd = (WS_SOCKET_T)wolfSSH_get_fd(threadCtx->ssh);
do {
if (threadCtx->nonBlock) {
if (error == WS_WANT_READ)
@ -952,12 +952,12 @@ static int NonBlockSSH_accept(WOLFSSH* ssh)
{
int ret;
int error;
SOCKET_T sockfd;
WS_SOCKET_T sockfd;
int select_ret = 0;
ret = wolfSSH_accept(ssh);
error = wolfSSH_get_error(ssh);
sockfd = (SOCKET_T)wolfSSH_get_fd(ssh);
sockfd = (WS_SOCKET_T)wolfSSH_get_fd(ssh);
while ((ret != WS_SUCCESS
&& ret != WS_SCP_COMPLETE && ret != WS_SFTP_COMPLETE)
@ -1084,7 +1084,7 @@ static int load_file(const char* fileName, byte* buf, word32 bufSz)
if (WFOPEN(&file, fileName, "rb") != 0)
return 0;
fseek(file, 0, SEEK_END);
fseek(file, 0, XSEEK_END);
fileSz = (word32)ftell(file);
rewind(file);
@ -1532,7 +1532,7 @@ THREAD_RETURN WOLFSSH_THREAD echoserver_test(void* args)
func_args* serverArgs = (func_args*)args;
WOLFSSH_CTX* ctx = NULL;
PwMapList pwMapList;
SOCKET_T listenFd = 0;
WS_SOCKET_T listenFd = 0;
word32 defaultHighwater = EXAMPLE_HIGHWATER_MARK;
word32 threadCount = 0;
int multipleConnections = 1;
@ -1717,7 +1717,7 @@ THREAD_RETURN WOLFSSH_THREAD echoserver_test(void* args)
}
do {
SOCKET_T clientFd = 0;
WS_SOCKET_T clientFd = 0;
#ifdef WOLFSSL_NUCLEUS
struct addr_struct clientAddr;
#else

View File

@ -164,6 +164,7 @@ extern "C" {
#define WFTELL(s) ftell((s))
#define WREWIND(s) fseek((s), 0, IO_SEEK_SET)
#define WSEEK_END IO_SEEK_END
#define WBADFILE NULL
static inline int wChmod(void* fs, const char* f, int mode)
{

View File

@ -22,11 +22,12 @@
#ifndef _WOLFSSH_TEST_H_
#define _WOLFSSH_TEST_H_
#ifndef NO_STDIO_FILESYSTEM
#include <stdio.h>
/*#include <stdlib.h>*/
#include <ctype.h>
/*#include <wolfssh/error.h>*/
#endif
#ifdef USE_WINDOWS_API
#ifndef _WIN32_WCE
@ -95,7 +96,12 @@
#define sin_family family
#define sin_port port
#elif defined(FREESCALE_MQX)
#ifndef SO_NOSIGPIPE
#include <signal.h> /* ignore SIGPIPE */
#endif
#define NUM_SOCKETS 5
#else /* USE_WINDOWS_API */
#include <unistd.h>
#include <netdb.h>
@ -134,7 +140,7 @@
#endif /* WOLFSSL_SOCKET_IS_INVALID */
#if defined(__MACH__) || defined(USE_WINDOWS_API)
#if defined(__MACH__) || defined(USE_WINDOWS_API) || defined(FREESCALE_MQX)
#ifndef _SOCKLEN_T
typedef int socklen_t;
#endif
@ -171,7 +177,7 @@
#define WOLFSSH_THREAD
#define INFINITE -1
#define WAIT_OBJECT_0 0L
#elif defined(WOLFSSL_NUCLEUS)
#elif defined(WOLFSSL_NUCLEUS) || defined(FREESCALE_MQX)
typedef unsigned int THREAD_RETURN;
typedef intptr_t THREAD_TYPE;
#define WOLFSSH_THREAD
@ -317,7 +323,7 @@ static INLINE int mygetopt(int argc, char** argv, const char* optstring)
* - 4996: deprecated function */
#endif
#if defined(WOLFSSH_TEST_CLIENT) || defined(WOLFSSH_TEST_SERVER)
#if (defined(WOLFSSH_TEST_CLIENT) || defined(WOLFSSH_TEST_SERVER)) && !defined(FREESCALE_MQX)
#ifdef WOLFSSL_NUCLEUS
static INLINE void build_addr(struct addr_struct* addr, const char* peer,
@ -461,7 +467,7 @@ static INLINE void build_addr(SOCKADDR_IN_T* addr, const char* peer,
#endif
static INLINE void tcp_socket(SOCKET_T* sockFd)
static INLINE void tcp_socket(WS_SOCKET_T* sockFd)
{
#ifdef MICROCHIP_MPLAB_HARMONY
/* creates socket in listen or connect */
@ -528,9 +534,9 @@ static INLINE void tcp_socket(SOCKET_T* sockFd)
#endif
#ifdef WOLFSSH_TEST_SERVER
#if defined(WOLFSSH_TEST_SERVER) && !defined(FREESCALE_MQX)
static INLINE void tcp_listen(SOCKET_T* sockfd, word16* port, int useAnyAddr)
static INLINE void tcp_listen(WS_SOCKET_T* sockfd, word16* port, int useAnyAddr)
{
#ifdef MICROCHIP_MPLAB_HARMONY
/* does bind and listen and returns the socket */
@ -594,10 +600,16 @@ static INLINE void tcp_listen(SOCKET_T* sockfd, word16* port, int useAnyAddr)
#endif /* WOLFSSH_TEST_SERVER */
enum {
WS_SELECT_FAIL,
WS_SELECT_TIMEOUT,
WS_SELECT_RECV_READY,
WS_SELECT_ERROR_READY
};
#if (defined(WOLFSSH_TEST_SERVER) || defined(WOLFSSH_TEST_CLIENT))
#if (defined(WOLFSSH_TEST_SERVER) || defined(WOLFSSH_TEST_CLIENT)) && !defined(FREESCALE_MQX)
static INLINE void tcp_set_nonblocking(SOCKET_T* sockfd)
static INLINE void tcp_set_nonblocking(WS_SOCKET_T* sockfd)
{
#ifdef USE_WINDOWS_API
unsigned long blocking = 1;
@ -619,13 +631,6 @@ static INLINE void tcp_set_nonblocking(SOCKET_T* sockfd)
}
enum {
WS_SELECT_FAIL,
WS_SELECT_TIMEOUT,
WS_SELECT_RECV_READY,
WS_SELECT_ERROR_READY
};
#ifdef WOLFSSL_NUCLEUS
#define WFD_SET_TYPE FD_SET
#define WFD_SET NU_FD_Set