From a009702cd6ae5954d666869a1861ecb7e59bc2b5 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 12 May 2010 13:08:45 +0200 Subject: [PATCH] Fixed Windows build warnings. --- libssh/misc.c | 8 +++++++- libssh/poll.c | 9 ++++++++- libssh/socket.c | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libssh/misc.c b/libssh/misc.c index c3ebfd27..4b562c71 100644 --- a/libssh/misc.c +++ b/libssh/misc.c @@ -35,6 +35,7 @@ #ifdef _WIN32 #define _WIN32_IE 0x0501 //SHGetSpecialFolderPath #include // Must be the first to include +#include #include #include #else @@ -503,7 +504,8 @@ int ssh_mkdir(const char *pathname, mode_t mode) { * @return The expanded directory, NULL on error. */ char *ssh_path_expand_tilde(const char *d) { - char *h, *r, *p; + char *h, *r; + const char *p; size_t ld; size_t lh = 0; @@ -515,6 +517,9 @@ char *ssh_path_expand_tilde(const char *d) { /* handle ~user/path */ p = strchr(d, '/'); if (p != NULL && p > d) { +#ifdef _WIN32 + return strdup(d); +#else struct passwd *pw; size_t s = p - d; char u[128]; @@ -530,6 +535,7 @@ char *ssh_path_expand_tilde(const char *d) { } ld = strlen(p); h = strdup(pw->pw_dir); +#endif } else { ld = strlen(d); p = (char *) d; diff --git a/libssh/poll.c b/libssh/poll.c index d37d15bf..879d3647 100644 --- a/libssh/poll.c +++ b/libssh/poll.c @@ -65,7 +65,6 @@ int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { #else /* HAVE_POLL */ -#include #include #ifdef _WIN32 @@ -73,11 +72,13 @@ int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { #define STRICT #endif +#include #include #else #include #include #include +#include #endif static int bsd_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { @@ -150,9 +151,15 @@ static int bsd_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { char data[64] = {0}; /* support for POLLHUP */ +#ifdef _WIN32 + if ((recv(fds[i].fd, data, 64, MSG_PEEK) == -1) && + (errno == WSAESHUTDOWN || errno == WSAECONNRESET || + errno == WSAECONNABORTED || errno == WSAENETRESET)) { +#else if ((recv(fds[i].fd, data, 64, MSG_PEEK) == -1) && (errno == ESHUTDOWN || errno == ECONNRESET || errno == ECONNABORTED || errno == ENETRESET)) { +#endif fds[i].revents |= POLLHUP; } else { fds[i].revents |= fds[i].events & (POLLIN | POLLRDNORM); diff --git a/libssh/socket.c b/libssh/socket.c index 3ac91caf..eb4c0554 100644 --- a/libssh/socket.c +++ b/libssh/socket.c @@ -27,6 +27,7 @@ #include #ifdef _WIN32 #include +#include #else #include #include