Skip to content

Commit 0ff56ac

Browse files
committed
Interim changes to fix scp/sftp WIN32_FIXME issues.
1 parent af5fc94 commit 0ff56ac

File tree

15 files changed

+110
-944
lines changed

15 files changed

+110
-944
lines changed

contrib/win32/openssh/win32iocompat.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@
150150
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigalrm.c" />
151151
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigchld.c" />
152152
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32log.c" />
153+
<ClCompile Include="..\win32compat\win32_dirent.c" />
153154
</ItemGroup>
154155
<ItemGroup>
155156
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32fd.h" />

contrib/win32/openssh/win32iocompat.vcxproj.filters

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\fileio.c" />
88
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\termio.c" />
99
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\misc.c" />
10-
<ClCompile Include="..\win32compat\w32log.c" />
11-
<ClCompile Include="..\win32compat\signal_sigchld.c" />
12-
<ClCompile Include="..\win32compat\signal_sigalrm.c" />
10+
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigalrm.c" />
11+
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_sigchld.c" />
12+
<ClCompile Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32log.c" />
13+
<ClCompile Include="..\win32compat\win32_dirent.c" />
1314
</ItemGroup>
1415
<ItemGroup>
1516
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\w32fd.h" />
@@ -49,13 +50,9 @@
4950
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\sys\statvfs.h">
5051
<Filter>inc\sys</Filter>
5152
</ClInclude>
52-
<ClInclude Include="..\win32compat\inc\syslog.h">
53-
<Filter>inc</Filter>
54-
</ClInclude>
55-
<ClInclude Include="..\win32compat\inc\dlfcn.h">
56-
<Filter>inc</Filter>
57-
</ClInclude>
58-
<ClInclude Include="..\win32compat\signal_internal.h" />
53+
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\dlfcn.h" />
54+
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\inc\syslog.h" />
55+
<ClInclude Include="$(OpenSSH-Src-Path)\contrib\win32\win32compat\signal_internal.h" />
5956
</ItemGroup>
6057
<ItemGroup>
6158
<Filter Include="inc">

contrib/win32/win32compat/inc/defs.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@
4747
#define W32_SIGTERM 8
4848
#define W32_SIGTTIN 9
4949
#define W32_SIGTTOU 10
50-
#define W32_SIGWINCH 11
50+
#define W32_SIGWINCH 11
5151

5252
#define W32_SIGMAX 12
53+
#define W32_SIGSTOP 13
5354

5455
/* singprocmask "how" codes*/
5556
#define SIG_BLOCK 0

contrib/win32/win32compat/inc/signal.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#define mysignal(a,b) w32_signal((a), (b))
1313
#define raise(a) w32_raise(a)
1414
#define kill(a,b) w32_kill((a), (b))
15+
#define ftruncate(a, b) w32_ftruncate((a), (b))
1516
#define sigprocmask(a,b,c) w32_sigprocmask((a), (b), (c))
1617

1718
#define SIGINT W32_SIGINT
@@ -26,6 +27,7 @@
2627
#define SIGTTIN W32_SIGTTIN
2728
#define SIGTTOU W32_SIGTTOU
2829
#define SIGWINCH W32_SIGWINCH
30+
#define SIGSTOP W32_SIGSTOP
2931

3032
#define SIG_DFL W32_SIG_DFL
3133
#define SIG_IGN W32_SIG_IGN

contrib/win32/win32compat/inc/sys/wait.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@
1313
#define WIFSIGNALED(w) FALSE
1414
#define WEXITSTATUS(w) w
1515
#define WTERMSIG(w) -1
16+
#define WNOHANG 1
17+
#define WUNTRACED 2
1618

1719
int waitpid(int pid, int *status, int options);

contrib/win32/win32compat/inc/w32posix.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@
99
#include <stdio.h>
1010
#include "defs.h"
1111

12+
#ifndef _OFF_T_DEFINED
13+
#define _OFF_T_DEFINED
14+
15+
typedef long _off_t; // file offset value
16+
17+
#if !__STDC__
18+
typedef _off_t off_t;
19+
#endif
20+
#endif
1221

1322
typedef struct w32_fd_set_ {
1423
unsigned char bitmap[MAX_FDS >> 3];
@@ -73,6 +82,7 @@ int w32_sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
7382
int w32_raise(int sig);
7483
int w32_kill(int pid, int sig);
7584
FILE* w32_fopen_utf8(const char *, const char *);
85+
int w32_ftruncate(int fd, off_t length);
7686

7787
/* Shutdown constants */
7888
#define SHUT_WR SD_SEND

contrib/win32/win32compat/includes/sys/param.h

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@
44
/* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */
55
typedef unsigned int uid_t;
66
typedef unsigned int gid_t;
7-
//typedef size_t _off_t;
8-
typedef size_t off_t;
7+
8+
#ifndef _OFF_T_DEFINED
9+
#define _OFF_T_DEFINED
10+
11+
typedef long _off_t; // file offset value
12+
13+
#if !__STDC__
14+
typedef _off_t off_t;
15+
#endif
16+
#endif
17+
918
typedef _dev_t dev_t;
1019

1120

contrib/win32/win32compat/w32fd.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,4 +846,18 @@ w32_raise(int sig) {
846846
int
847847
w32_kill(int pid, int sig) {
848848
return sw_kill(pid, sig);
849+
}
850+
851+
int
852+
w32_ftruncate(int fd, off_t length) {
853+
CHECK_FD(fd);
854+
855+
if (!SetEndOfFile(w32_fd_to_handle(fd)))
856+
return -1;
857+
if (!SetFileValidData(w32_fd_to_handle(fd), length))
858+
return -1;
859+
if (!SetFilePointer(w32_fd_to_handle(fd), 0, 0, FILE_BEGIN))
860+
return -1;
861+
862+
return 0;
849863
}

win32_dirent.c renamed to contrib/win32/win32compat/win32_dirent.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
// directory entry functions in Windows platform like Ubix/Linux
33
// opendir(), readdir(), closedir().
44

5+
#include <windows.h>
56
#include <stdlib.h>
67
#include <stdio.h>
78
#include <ctype.h>
89
#include <string.h>
9-
#include <windows.h>
1010

1111
#include "win32_dirent.h"
1212

win32_dirent.h renamed to contrib/win32/win32compat/win32_dirent.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
#define __DIRENT_H__
99

1010
#include <direct.h>
11-
#include <io.h>
11+
#include <io.h>
12+
#include <fcntl.h>
1213

1314
// Windows directory structure content
1415
struct dirent {

0 commit comments

Comments
 (0)