Add MKDIR and RMDIR back into the Windows server.

pull/134/head
John Safranek 2019-01-23 15:17:50 -08:00
parent d9568efdcf
commit 4bdfb5bfa3
1 changed files with 11 additions and 6 deletions

View File

@ -1015,7 +1015,7 @@ int wolfSSH_SFTP_read(WOLFSSH* ssh)
ret = wolfSSH_SFTP_RecvRealPath(ssh, state->reqId,
state->data, state->sz);
break;
#ifndef _WIN32_WCE
case WOLFSSH_FTP_RMDIR:
ret = wolfSSH_SFTP_RecvRMDIR(ssh, state->reqId,
state->data, state->sz);
@ -1026,6 +1026,7 @@ int wolfSSH_SFTP_read(WOLFSSH* ssh)
state->data, state->sz);
break;
#ifndef _WIN32_WCE
case WOLFSSH_FTP_STAT:
ret = wolfSSH_SFTP_RecvSTAT(ssh, state->reqId,
state->data, state->sz);
@ -1253,8 +1254,6 @@ int wolfSSH_SFTP_CreateStatus(WOLFSSH* ssh, word32 status, word32 reqId,
}
#ifndef _WIN32_WCE
/* Handles packet to remove a directory
*
* returns WS_SUCCESS on success
@ -1262,7 +1261,7 @@ int wolfSSH_SFTP_CreateStatus(WOLFSSH* ssh, word32 status, word32 reqId,
int wolfSSH_SFTP_RecvRMDIR(WOLFSSH* ssh, int reqId, byte* data, word32 maxSz)
{
word32 sz;
int ret;
int ret = 0;
char* dir;
word32 idx = 0;
byte* out;
@ -1293,7 +1292,11 @@ int wolfSSH_SFTP_RecvRMDIR(WOLFSSH* ssh, int reqId, byte* data, word32 maxSz)
dir[sz] = '\0';
clean_path(dir);
#ifndef USE_WINDOWS_API
ret = WRMDIR(dir);
#else /* USE_WINDOWS_API */
ret = RemoveDirectoryA(dir) == 0;
#endif /* USE_WINDOWS_API */
WFREE(dir, ssh->ctx->heap, DYNTYPE_BUFFER);
res = (ret != 0)? err : suc;
@ -1384,7 +1387,11 @@ int wolfSSH_SFTP_RecvMKDIR(WOLFSSH* ssh, int reqId, byte* data, word32 maxSz)
ato32(data + idx, &mode);
}
clean_path(dir);
#ifndef USE_WINDOWS_API
ret = WMKDIR(dir, mode);
#else /* USE_WINDOWS_API */
ret = CreateDirectoryA(dir, NULL) == 0;
#endif /* USE_WINDOWS_API */
WFREE(dir, ssh->ctx->heap, DYNTYPE_BUFFER);
res = (ret != 0)? err : suc;
@ -1415,8 +1422,6 @@ int wolfSSH_SFTP_RecvMKDIR(WOLFSSH* ssh, int reqId, byte* data, word32 maxSz)
return ret;
}
#endif /* _WIN32_WCE */
/* Handles packet to open a file
*