diff options
-rw-r--r-- | src/common/aes.c | 6 | ||||
-rw-r--r-- | src/common/fakepoll.c | 9 | ||||
-rw-r--r-- | src/common/util.c | 15 | ||||
-rw-r--r-- | src/common/util.h | 1 | ||||
-rw-r--r-- | src/or/routers.c | 2 |
5 files changed, 27 insertions, 6 deletions
diff --git a/src/common/aes.c b/src/common/aes.c index 037d7b306..590d30483 100644 --- a/src/common/aes.c +++ b/src/common/aes.c @@ -122,9 +122,9 @@ aes_get_counter(aes_cnt_cipher_t *cipher) void aes_set_counter(aes_cnt_cipher_t *cipher, u64 counter) { - cipher->pos = counter & 0x0f; - cipher->counter0 = (counter >> 4) & 0xffffffff; - cipher->counter1 = (counter >> 36); + cipher->pos = (u8)(counter & 0x0f); + cipher->counter0 = (u32) ((counter >> 4) & 0xffffffff); + cipher->counter1 = (u32) (counter >> 36); _aes_fill_buf(cipher); } diff --git a/src/common/fakepoll.c b/src/common/fakepoll.c index d2928761c..ec1201a79 100644 --- a/src/common/fakepoll.c +++ b/src/common/fakepoll.c @@ -28,12 +28,17 @@ int poll(struct pollfd *ufds, unsigned int nfds, int timeout) { - int idx, maxfd, fd, r; + unsigned int idx, maxfd, fd; + int r; fd_set readfds, writefds, exceptfds; +#ifdef USING_FAKE_TIMEVAL +#undef timeval +#undef tv_sec +#undef tv_usec +#endif struct timeval _timeout; _timeout.tv_sec = timeout/1000; _timeout.tv_usec = (timeout%1000)*1000; - FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds); diff --git a/src/common/util.c b/src/common/util.c index c313fb5db..378612d10 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -3,6 +3,13 @@ /* $Id$ */ #include "../or/or.h" + +#ifdef _MSC_VER +#include <io.h> +#include <limits.h> +#include <process.h> +#endif + #include "util.h" #include "log.h" @@ -146,7 +153,11 @@ tor_socketpair(int family, int type, int protocol, int fd[2]) || family != AF_UNIX #endif ) { +#ifdef _MSC_VER + errno = WSAEAFNOSUPPORT; +#else errno = EAFNOSUPPORT; +#endif return -1; } if (!fd) { @@ -202,7 +213,11 @@ tor_socketpair(int family, int type, int protocol, int fd[2]) return 0; abort_tidy_up_and_fail: +#ifdef _MSC_VER + errno = WSAECONNABORTED; +#else errno = ECONNABORTED; /* I hope this is portable and appropriate. */ +#endif tidy_up_and_fail: { int save_errno = errno; diff --git a/src/common/util.h b/src/common/util.h index 860038732..3569632e9 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -15,6 +15,7 @@ #endif #ifndef HAVE_GETTIMEOFDAY #ifdef HAVE_FTIME +#define USING_FAKE_TIMEVAL #include <sys/timeb.h> #define timeval timeb #define tv_sec time diff --git a/src/or/routers.c b/src/or/routers.c index f4d059d9c..e9cee1ef7 100644 --- a/src/or/routers.c +++ b/src/or/routers.c @@ -56,7 +56,7 @@ int learn_my_address(struct sockaddr_in *me) { memset(me,0,sizeof(struct sockaddr_in)); me->sin_family = AF_INET; memcpy((void *)&me->sin_addr,(void *)localhost->h_addr,sizeof(struct in_addr)); - me->sin_port = htons(options.ORPort); + me->sin_port = htons((uint16_t) options.ORPort); log_fn(LOG_DEBUG,"chose address as '%s'.",inet_ntoa(me->sin_addr)); if (!strncmp("127.",inet_ntoa(me->sin_addr), 4) && strcasecmp(localhostname, "localhost")) { |