diff options
author | Andreas Schneider <mail@cynapses.org> | 2010-05-12 13:08:45 +0200 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2010-05-12 13:11:33 +0200 |
commit | a009702cd6ae5954d666869a1861ecb7e59bc2b5 (patch) | |
tree | dd1c80d59ae90f5997ae2ce3b4968bc16d056512 | |
parent | ed268e59485f3249c7c0e44add5c991e4c6769ef (diff) | |
download | libssh-a009702cd6ae5954d666869a1861ecb7e59bc2b5.tar.gz libssh-a009702cd6ae5954d666869a1861ecb7e59bc2b5.tar.xz libssh-a009702cd6ae5954d666869a1861ecb7e59bc2b5.zip |
Fixed Windows build warnings.
-rw-r--r-- | libssh/misc.c | 8 | ||||
-rw-r--r-- | libssh/poll.c | 9 | ||||
-rw-r--r-- | 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 <winsock2.h> // Must be the first to include +#include <ws2tcpip.h> #include <shlobj.h> #include <direct.h> #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 <sys/time.h> #include <sys/types.h> #ifdef _WIN32 @@ -73,11 +72,13 @@ int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { #define STRICT #endif +#include <time.h> #include <winsock2.h> #else #include <sys/select.h> #include <sys/socket.h> #include <unistd.h> +#include <sys/time.h> #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 <stdio.h> #ifdef _WIN32 #include <winsock2.h> +#include <ws2tcpip.h> #else #include <fcntl.h> #include <sys/types.h> |