Interim changes to fix scp/sftp WIN32_FIXME issues.

This commit is contained in:
Ray Hayes 2016-10-20 11:45:09 -07:00
parent af5fc94823
commit 0ff56ace10
15 changed files with 109 additions and 943 deletions

View File

@ -150,6 +150,7 @@
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigalrm.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigalrm.c" />
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigchld.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigchld.c" />
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32log.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32log.c" />
<ClCompile Include="..\win32compat\win32_dirent.c" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32fd.h" /> <ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32fd.h" />

View File

@ -7,9 +7,10 @@
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\fileio.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\fileio.c" />
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\termio.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\termio.c" />
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\misc.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\misc.c" />
<ClCompile Include="..\win32compat\w32log.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigalrm.c" />
<ClCompile Include="..\win32compat\signal_sigchld.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigchld.c" />
<ClCompile Include="..\win32compat\signal_sigalrm.c" /> <ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32log.c" />
<ClCompile Include="..\win32compat\win32_dirent.c" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32fd.h" /> <ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32fd.h" />
@ -49,13 +50,9 @@
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\sys\statvfs.h"> <ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\sys\statvfs.h">
<Filter>inc\sys</Filter> <Filter>inc\sys</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\win32compat\inc\syslog.h"> <ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\dlfcn.h" />
<Filter>inc</Filter> <ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\syslog.h" />
</ClInclude> <ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_internal.h" />
<ClInclude Include="..\win32compat\inc\dlfcn.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\win32compat\signal_internal.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Filter Include="inc"> <Filter Include="inc">

View File

@ -47,9 +47,10 @@
#define W32_SIGTERM 8 #define W32_SIGTERM 8
#define W32_SIGTTIN 9 #define W32_SIGTTIN 9
#define W32_SIGTTOU 10 #define W32_SIGTTOU 10
#define W32_SIGWINCH 11 #define W32_SIGWINCH 11
#define W32_SIGMAX 12 #define W32_SIGMAX 12
#define W32_SIGSTOP 13
/* singprocmask "how" codes*/ /* singprocmask "how" codes*/
#define SIG_BLOCK 0 #define SIG_BLOCK 0

View File

@ -12,6 +12,7 @@
#define mysignal(a,b) w32_signal((a), (b)) #define mysignal(a,b) w32_signal((a), (b))
#define raise(a) w32_raise(a) #define raise(a) w32_raise(a)
#define kill(a,b) w32_kill((a), (b)) #define kill(a,b) w32_kill((a), (b))
#define ftruncate(a, b) w32_ftruncate((a), (b))
#define sigprocmask(a,b,c) w32_sigprocmask((a), (b), (c)) #define sigprocmask(a,b,c) w32_sigprocmask((a), (b), (c))
#define SIGINT W32_SIGINT #define SIGINT W32_SIGINT
@ -26,6 +27,7 @@
#define SIGTTIN W32_SIGTTIN #define SIGTTIN W32_SIGTTIN
#define SIGTTOU W32_SIGTTOU #define SIGTTOU W32_SIGTTOU
#define SIGWINCH W32_SIGWINCH #define SIGWINCH W32_SIGWINCH
#define SIGSTOP W32_SIGSTOP
#define SIG_DFL W32_SIG_DFL #define SIG_DFL W32_SIG_DFL
#define SIG_IGN W32_SIG_IGN #define SIG_IGN W32_SIG_IGN

View File

@ -13,5 +13,7 @@
#define WIFSIGNALED(w) FALSE #define WIFSIGNALED(w) FALSE
#define WEXITSTATUS(w) w #define WEXITSTATUS(w) w
#define WTERMSIG(w) -1 #define WTERMSIG(w) -1
#define WNOHANG 1
#define WUNTRACED 2
int waitpid(int pid, int *status, int options); int waitpid(int pid, int *status, int options);

View File

@ -9,6 +9,15 @@
#include <stdio.h> #include <stdio.h>
#include "defs.h" #include "defs.h"
#ifndef _OFF_T_DEFINED
#define _OFF_T_DEFINED
typedef long _off_t; // file offset value
#if !__STDC__
typedef _off_t off_t;
#endif
#endif
typedef struct w32_fd_set_ { typedef struct w32_fd_set_ {
unsigned char bitmap[MAX_FDS >> 3]; unsigned char bitmap[MAX_FDS >> 3];
@ -73,6 +82,7 @@ int w32_sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
int w32_raise(int sig); int w32_raise(int sig);
int w32_kill(int pid, int sig); int w32_kill(int pid, int sig);
FILE* w32_fopen_utf8(const char *, const char *); FILE* w32_fopen_utf8(const char *, const char *);
int w32_ftruncate(int fd, off_t length);
/* Shutdown constants */ /* Shutdown constants */
#define SHUT_WR SD_SEND #define SHUT_WR SD_SEND

View File

@ -4,8 +4,17 @@
/* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */
typedef unsigned int uid_t; typedef unsigned int uid_t;
typedef unsigned int gid_t; typedef unsigned int gid_t;
//typedef size_t _off_t;
typedef size_t off_t; #ifndef _OFF_T_DEFINED
#define _OFF_T_DEFINED
typedef long _off_t; // file offset value
#if !__STDC__
typedef _off_t off_t;
#endif
#endif
typedef _dev_t dev_t; typedef _dev_t dev_t;

View File

@ -846,4 +846,18 @@ w32_raise(int sig) {
int int
w32_kill(int pid, int sig) { w32_kill(int pid, int sig) {
return sw_kill(pid, sig); return sw_kill(pid, sig);
}
int
w32_ftruncate(int fd, off_t length) {
CHECK_FD(fd);
if (!SetEndOfFile(w32_fd_to_handle(fd)))
return -1;
if (!SetFileValidData(w32_fd_to_handle(fd), length))
return -1;
if (!SetFilePointer(w32_fd_to_handle(fd), 0, 0, FILE_BEGIN))
return -1;
return 0;
} }

View File

@ -2,11 +2,11 @@
// directory entry functions in Windows platform like Ubix/Linux // directory entry functions in Windows platform like Ubix/Linux
// opendir(), readdir(), closedir(). // opendir(), readdir(), closedir().
#include <windows.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
#include <windows.h>
#include "win32_dirent.h" #include "win32_dirent.h"

View File

@ -8,7 +8,8 @@
#define __DIRENT_H__ #define __DIRENT_H__
#include <direct.h> #include <direct.h>
#include <io.h> #include <io.h>
#include <fcntl.h>
// Windows directory structure content // Windows directory structure content
struct dirent { struct dirent {

View File

@ -172,6 +172,8 @@ enum
# define S_IRWXU 0000700 /* read, write, execute */ # define S_IRWXU 0000700 /* read, write, execute */
# define S_IRWXG 0000070 /* read, write, execute */ # define S_IRWXG 0000070 /* read, write, execute */
# define S_IRWXO 0000007 /* read, write, execute */ # define S_IRWXO 0000007 /* read, write, execute */
# define S_ISUID 0x800
# define S_ISGID 0x400
#endif /* S_IXUSR */ #endif /* S_IXUSR */
#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS) #if !defined(MAP_ANON) && defined(MAP_ANONYMOUS)

974
scp.c

File diff suppressed because it is too large Load Diff

View File

@ -37,10 +37,6 @@
#include "sftp-common.h" #include "sftp-common.h"
#include "sftp-client.h" #include "sftp-client.h"
#ifdef WINDOWS
#include "win32_dirent.c"
#endif
int remote_glob(struct sftp_conn *, const char *, int, int remote_glob(struct sftp_conn *, const char *, int,
int (*)(const char *, int), glob_t *); int (*)(const char *, int), glob_t *);

View File

@ -60,9 +60,6 @@
#include "sftp.h" #include "sftp.h"
#include "sftp-common.h" #include "sftp-common.h"
#ifdef WIN32_VS
#include "win32_dirent.c"
#endif
#ifdef WIN32_FIXME #ifdef WIN32_FIXME

2
sftp.c
View File

@ -75,8 +75,6 @@ typedef void EditLine;
#define MAX_COMMAND_LINE 2048 #define MAX_COMMAND_LINE 2048
#ifdef WINDOWS #ifdef WINDOWS
#include <io.h>
#include <fcntl.h>
#include "win32_dirent.h" #include "win32_dirent.h"
#endif #endif