mirror of https://github.com/wolfSSL/wolfssh.git
fix for MQX
parent
b2d2edc6d9
commit
28b8e745b1
|
@ -18,9 +18,10 @@
|
|||
* along with wolfSSH. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef FREESCALE_MQX
|
||||
#define WOLFSSH_TEST_SERVER
|
||||
#define WOLFSSH_TEST_ECHOSERVER
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
|
@ -40,6 +41,12 @@
|
|||
#include <wolfssh/agent.h>
|
||||
#include <wolfssh/test.h>
|
||||
#include <wolfssl/wolfcrypt/ecc.h>
|
||||
|
||||
#ifdef FREESCALE_MQX
|
||||
#define WOLFSSH_TEST_SERVER
|
||||
#define WOLFSSH_TEST_ECHOSERVER
|
||||
#endif
|
||||
|
||||
#include "examples/echoserver/echoserver.h"
|
||||
|
||||
#if defined(WOLFSSL_PTHREADS) && defined(WOLFSSL_TEST_GLOBAL_REQ)
|
||||
|
@ -108,7 +115,7 @@ typedef struct WS_AgentCbActionCtx {
|
|||
|
||||
typedef struct {
|
||||
WOLFSSH* ssh;
|
||||
SOCKET_T fd;
|
||||
WS_SOCKET_T fd;
|
||||
word32 id;
|
||||
int echo;
|
||||
char nonBlock;
|
||||
|
@ -264,10 +271,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 +906,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 +959,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 +1091,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 +1539,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 +1724,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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -530,7 +536,7 @@ static INLINE void tcp_socket(SOCKET_T* sockFd)
|
|||
|
||||
#ifdef WOLFSSH_TEST_SERVER
|
||||
|
||||
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))
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue