mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-11 02:38:09 +09:00
Fixed building libssh with MSVC.
Thanks to Carlo Segato for the patch.
This commit is contained in:
@@ -54,6 +54,7 @@
|
|||||||
typedef unsigned short uint16_t;
|
typedef unsigned short uint16_t;
|
||||||
typedef unsigned char uint8_t;
|
typedef unsigned char uint8_t;
|
||||||
typedef unsigned long long uint64_t;
|
typedef unsigned long long uint64_t;
|
||||||
|
typedef uint32_t mode_t;
|
||||||
#else /* _MSC_VER */
|
#else /* _MSC_VER */
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|||||||
@@ -34,6 +34,10 @@
|
|||||||
#define snprintf _snprintf
|
#define snprintf _snprintf
|
||||||
/** Imitate define of inttypes.h */
|
/** Imitate define of inttypes.h */
|
||||||
#define PRIdS "Id"
|
#define PRIdS "Id"
|
||||||
|
#define strcasecmp _stricmp
|
||||||
|
#define strncasecmp _strnicmp
|
||||||
|
#define strtoull _strtoui64
|
||||||
|
#define isblank(ch) ((ch) == ' ' || (ch) == '\t' || (ch) == '\n' || (ch) == '\r')
|
||||||
#else
|
#else
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#define PRIdS "zd"
|
#define PRIdS "zd"
|
||||||
|
|||||||
@@ -61,9 +61,6 @@ extern "C" {
|
|||||||
typedef uint32_t gid_t;
|
typedef uint32_t gid_t;
|
||||||
#endif /* gid_t */
|
#endif /* gid_t */
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#ifndef mode_t
|
|
||||||
typedef uint32_t mode_t;
|
|
||||||
#endif /* mode_t */
|
|
||||||
#ifndef ssize_t
|
#ifndef ssize_t
|
||||||
typedef _W64 signed int ssize_t;
|
typedef _W64 signed int ssize_t;
|
||||||
#endif /* ssize_t */
|
#endif /* ssize_t */
|
||||||
|
|||||||
@@ -35,9 +35,15 @@
|
|||||||
* http://blogs.msdn.com/oldnewthing/archive/2007/04/11/2079137.aspx
|
* http://blogs.msdn.com/oldnewthing/archive/2007/04/11/2079137.aspx
|
||||||
*/
|
*/
|
||||||
#undef _WIN32_WINNT
|
#undef _WIN32_WINNT
|
||||||
|
#ifdef HAVE_WSPIAPI_H
|
||||||
#define _WIN32_WINNT 0x0500 /* _WIN32_WINNT_WIN2K */
|
#define _WIN32_WINNT 0x0500 /* _WIN32_WINNT_WIN2K */
|
||||||
#undef NTDDI_VERSION
|
#undef NTDDI_VERSION
|
||||||
#define NTDDI_VERSION 0x05000400 /* NTDDI_WIN2KSP4 */
|
#define NTDDI_VERSION 0x05000400 /* NTDDI_WIN2KSP4 */
|
||||||
|
#else
|
||||||
|
#define _WIN32_WINNT 0x0501 /* _WIN32_WINNT_WINXP */
|
||||||
|
#undef NTDDI_VERSION
|
||||||
|
#define NTDDI_VERSION 0x05010000 /* NTDDI_WINXP */
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
|
|||||||
@@ -33,6 +33,14 @@
|
|||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#else
|
||||||
|
#define S_IFSOCK 0140000
|
||||||
|
#define S_IFLNK 0120000
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define S_IFBLK 0060000
|
||||||
|
#define S_IFIFO 0010000
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "libssh/priv.h"
|
#include "libssh/priv.h"
|
||||||
@@ -933,7 +941,6 @@ static SFTP_ATTRIBUTES *sftp_parse_attr_4(SFTP_SESSION *sftp, ssh_buffer buf,
|
|||||||
}
|
}
|
||||||
attr->permissions = ntohl(attr->permissions);
|
attr->permissions = ntohl(attr->permissions);
|
||||||
|
|
||||||
#ifndef _WIN32
|
|
||||||
/* FIXME on windows! */
|
/* FIXME on windows! */
|
||||||
switch (attr->permissions & S_IFMT) {
|
switch (attr->permissions & S_IFMT) {
|
||||||
case S_IFSOCK:
|
case S_IFSOCK:
|
||||||
@@ -955,7 +962,6 @@ static SFTP_ATTRIBUTES *sftp_parse_attr_4(SFTP_SESSION *sftp, ssh_buffer buf,
|
|||||||
attr->type = SSH_FILEXFER_TYPE_UNKNOWN;
|
attr->type = SSH_FILEXFER_TYPE_UNKNOWN;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif /* _WIN32 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & SSH_FILEXFER_ATTR_ACCESSTIME) {
|
if (flags & SSH_FILEXFER_ATTR_ACCESSTIME) {
|
||||||
@@ -1126,8 +1132,6 @@ static SFTP_ATTRIBUTES *sftp_parse_attr_3(SFTP_SESSION *sftp, ssh_buffer buf,
|
|||||||
}
|
}
|
||||||
attr->permissions = ntohl(attr->permissions);
|
attr->permissions = ntohl(attr->permissions);
|
||||||
|
|
||||||
#ifndef _WIN32
|
|
||||||
/* FIXME on windows */
|
|
||||||
switch (attr->permissions & S_IFMT) {
|
switch (attr->permissions & S_IFMT) {
|
||||||
case S_IFSOCK:
|
case S_IFSOCK:
|
||||||
case S_IFBLK:
|
case S_IFBLK:
|
||||||
@@ -1148,7 +1152,6 @@ static SFTP_ATTRIBUTES *sftp_parse_attr_3(SFTP_SESSION *sftp, ssh_buffer buf,
|
|||||||
attr->type = SSH_FILEXFER_TYPE_UNKNOWN;
|
attr->type = SSH_FILEXFER_TYPE_UNKNOWN;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif /* _WIN32 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & SSH_FILEXFER_ATTR_ACMODTIME) {
|
if (flags & SSH_FILEXFER_ATTR_ACMODTIME) {
|
||||||
|
|||||||
Reference in New Issue
Block a user