From da9b2e25f6233a419495933822446adf5736cdef Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 12 May 2010 13:08:45 +0200 Subject: Fixed Windows build warnings. --- libssh/misc.c | 8 +++++++- libssh/poll.c | 9 ++++++++- libssh/socket.c | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'libssh') diff --git a/libssh/misc.c b/libssh/misc.c index 2b2158fb..8cbc0179 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 @@ -531,7 +532,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; @@ -543,6 +545,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]; @@ -558,6 +563,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 327c9b25..fb88596e 100644 --- a/libssh/poll.c +++ b/libssh/poll.c @@ -69,7 +69,6 @@ int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { #else /* HAVE_POLL */ -#include #include #ifdef _WIN32 @@ -77,11 +76,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) { @@ -154,9 +155,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 76eaa3f5..a8d76050 100644 --- a/libssh/socket.c +++ b/libssh/socket.c @@ -27,6 +27,7 @@ #include #ifdef _WIN32 #include +#include #else #include #include -- cgit v1.2.3