mirror of https://github.com/wolfSSL/wolfssh.git
Nucleus Patch
1. Nucleus builds changed the source file names to have a wolfssh_ prefix. Take that into account for misc.c. 2. Change CleanPath to add a delimiter to the input string. 3. Reorganize the WS_GETtime macros to clean up adding specific items for Nucleus. 4. Add some typecasting on some sizeof. 5. Some whitespace cleanup, and removing a redundant include.pull/647/head
parent
60a29602e5
commit
afac19dc93
|
@ -54,7 +54,11 @@
|
|||
#include <wolfssh/misc.h>
|
||||
#else
|
||||
#define WOLFSSH_MISC_INCLUDED
|
||||
#include "src/misc.c"
|
||||
#if defined(WOLFSSL_NUCLEUS)
|
||||
#include "src/wolfssh_misc.c"
|
||||
#else
|
||||
#include "src/misc.c"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -13849,6 +13853,8 @@ int wolfSSH_CleanPath(WOLFSSH* ssh, char* in)
|
|||
if (path[sz - 1] == ':') {
|
||||
path[sz] = WS_DELIM;
|
||||
path[sz + 1] = '\0';
|
||||
in[sz] = WS_DELIM;
|
||||
in[sz + 1] = '\0';
|
||||
}
|
||||
|
||||
/* clean up any multiple drive listed i.e. A:/A: */
|
||||
|
|
|
@ -39,7 +39,11 @@
|
|||
#include <wolfssh/misc.h>
|
||||
#else
|
||||
#define WOLFSSH_MISC_INCLUDED
|
||||
#include "src/misc.c"
|
||||
#if defined(WOLFSSL_NUCLEUS)
|
||||
#include "src/wolfssh_misc.c"
|
||||
#else
|
||||
#include "src/misc.c"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_FIPS
|
||||
|
|
|
@ -34,7 +34,11 @@
|
|||
#include <wolfssh/misc.h>
|
||||
#else
|
||||
#define WOLFSSH_MISC_INCLUDED
|
||||
#include "src/misc.c"
|
||||
#if defined(WOLFSSL_NUCLEUS)
|
||||
#include "src/wolfssh_misc.c"
|
||||
#else
|
||||
#include "src/misc.c"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* for XGMTIME if defined */
|
||||
|
@ -2731,6 +2735,15 @@ static int wolfSSH_SFTPNAME_readdir(WOLFSSH* ssh, WDIR* dir, WS_SFTPNAME* out,
|
|||
ret = WS_NEXT_ERROR;
|
||||
}
|
||||
|
||||
if (special) {
|
||||
sz = WSTRLEN(out->fName);
|
||||
|
||||
if ((out->fName[sz - 1] == '/') || (out->fName[sz - 1] == WS_DELIM)) {
|
||||
out->fName[sz - 1] = '\0';
|
||||
out->fSz--;
|
||||
}
|
||||
}
|
||||
|
||||
/* Use attributes and fName to create long name */
|
||||
if (SFTP_CreateLongName(out) != WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, "Error creating long name for %s", out->fName);
|
||||
|
@ -4271,12 +4284,22 @@ int SFTP_RemoveHandleNode(WOLFSSH* ssh, byte* handle, word32 handleSz)
|
|||
#ifndef NO_WOLFSSH_MKTIME
|
||||
|
||||
#define WS_GETDAY(d) ((d) & 0x001f)
|
||||
#define WS_GETMON(d) (((d) >> 5) & 0x000f)
|
||||
#define _GETMON(d) (((d) >> 5) & 0x000f)
|
||||
/* number of years since 1900. year + 1980 - 1900 */
|
||||
#define WS_GETYEAR(d) ((((d) >> 9) & 0x007f) + 80)
|
||||
#define WS_GETHOUR(t) (((t) >> 11) & 0x001f)
|
||||
#define _GETHOUR(t) (((t) >> 11) & 0x001f)
|
||||
#define WS_GETMIN(t) (((t) >> 5 ) & 0x003f)
|
||||
#define WS_GETSEC(t) (((t) << 1 ) & 0x003f)
|
||||
#ifdef WOLFSSL_NUCLEUS
|
||||
/* mktime() expects month from 0 to 11. Nucleus months
|
||||
* are saved as 1 to 12. Hence 1 is being deducted to
|
||||
* make it compatible with Unix time stamp. */
|
||||
#define WS_GETMON(d) (_GETMON(d) - 5)
|
||||
#define WS_GETHOUR(t) (_GETHOUR(t) - 1)
|
||||
#else
|
||||
#define WS_GETMON(d) _GETMON(d)
|
||||
#define WS_GETHOUR(t) _GETHOUR(t)
|
||||
#endif
|
||||
|
||||
/* convert nucleus date and time shorts to word32
|
||||
* returns results in Unix time stamp */
|
||||
|
@ -7159,7 +7182,6 @@ int wolfSSH_SFTP_SendWritePacket(WOLFSSH* ssh, byte* handle, word32 handleSz,
|
|||
ret = wolfSSH_worker(ssh, NULL);
|
||||
continue; /* skip past rest and send more */
|
||||
}
|
||||
|
||||
if (state->sentSz <= 0) {
|
||||
ssh->error = state->sentSz;
|
||||
ret = WS_FATAL_ERROR;
|
||||
|
@ -8901,7 +8923,6 @@ int wolfSSH_SFTP_Put(WOLFSSH* ssh, char* from, char* to, byte resume,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* called when wolfSSH_free() is called
|
||||
* return WS_SUCCESS on success */
|
||||
int wolfSSH_SFTP_free(WOLFSSH* ssh)
|
||||
|
@ -8950,7 +8971,6 @@ int wolfSSH_SFTP_free(WOLFSSH* ssh)
|
|||
return WS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
#ifdef WOLFSSH_SHOW_SIZES
|
||||
|
||||
void wolfSSH_SFTP_ShowSizes(void)
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
#include <wolfssh/settings.h>
|
||||
#include <wolfssh/log.h>
|
||||
|
||||
#ifdef WOLFSSL_NUCLEUS
|
||||
#include "os/networking/utils/util_tp.h"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -105,14 +109,16 @@ extern "C" {
|
|||
#define WFILE int
|
||||
WOLFSSH_API int wfopen(WFILE**, const char*, const char*);
|
||||
|
||||
#define WFOPEN(fs, f,fn,m) wfopen((f),(fn),(m))
|
||||
#define WFOPEN(fs,f,fn,m) wfopen((f),(fn),(m))
|
||||
#define WFCLOSE(fs,f) NU_Close(*(f))
|
||||
#define WFWRITE(fs,b,x,s,f) ((s) != 0)? NU_Write(*(f),(const CHAR*)(b),(s)): 0
|
||||
#define WFWRITE(fs,b,x,s,f) \
|
||||
(((s) != 0) ? NU_Write(*(f),(const CHAR*)(b),(s)) : 0)
|
||||
#define WFREAD(fs,b,x,s,f) NU_Read(*(f),(CHAR*)(b),(s))
|
||||
#define WFSEEK(fs,s,o,w) NU_Seek(*(s),(o),(w))
|
||||
#define WFTELL(fs,s) NU_Seek(*(s), 0, PSEEK_CUR)
|
||||
#define WREWIND(fs,s) NU_Seek(*(s), 0, PSEEK_SET)
|
||||
#define WSEEK_END PSEEK_END
|
||||
#define WBADFILE NULL
|
||||
|
||||
#define WS_DELIM '\\'
|
||||
#define WOLFSSH_O_RDWR PO_RDWR
|
||||
|
@ -561,6 +567,9 @@ extern "C" {
|
|||
#elif defined(WOLFSSH_ZEPHYR)
|
||||
#define WTIME time
|
||||
#define WLOCALTIME(c,r) (gmtime_r((c),(r))!=NULL)
|
||||
#elif defined(WOLFSSL_NUCLEUS)
|
||||
#define WTIME time
|
||||
#define WLOCALTIME(c,r) (localtime_s((c),(r))!=NULL)
|
||||
#else
|
||||
#define WTIME time
|
||||
#define WLOCALTIME(c,r) (localtime_r((c),(r))!=NULL)
|
||||
|
@ -756,7 +765,7 @@ extern "C" {
|
|||
if (NU_Get_Attributes(&atrib, dir) == NU_SUCCESS) {
|
||||
if (atrib & ADIRENT) {
|
||||
if (tmp[idx-1] != WS_DELIM) {
|
||||
if (idx + 2 > sizeof(tmp)) {
|
||||
if (idx + 2 > (int)sizeof(tmp)) {
|
||||
/* not enough space */
|
||||
return -1;
|
||||
}
|
||||
|
@ -768,7 +777,7 @@ extern "C" {
|
|||
}
|
||||
|
||||
if (tmp[idx - 1] == WS_DELIM) {
|
||||
if (idx + 1 > sizeof(tmp)) {
|
||||
if (idx + 1 > (int)sizeof(tmp)) {
|
||||
/* not enough space */
|
||||
return -1;
|
||||
}
|
||||
|
@ -1316,7 +1325,6 @@ extern "C" {
|
|||
#include <unistd.h> /* used for rmdir */
|
||||
#include <sys/stat.h> /* used for mkdir, stat, and lstat */
|
||||
#include <stdio.h> /* used for remove and rename */
|
||||
#include <dirent.h> /* used for opening directory and reading */
|
||||
|
||||
#define WSTAT_T struct stat
|
||||
#define WRMDIR(fs,d) rmdir((d))
|
||||
|
|
Loading…
Reference in New Issue