From cfeafe5e77c9dd5587b1ec553eb1065f0bf841fd Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 23 May 2011 00:17:48 -0400 Subject: Use a 64-bit type to hold sockets on win64. On win64, sockets are of type UINT_PTR; on win32 they're u_int; elsewhere they're int. The correct windows way to check a socket for being set is to compare it with INVALID_SOCKET; elsewhere you see if it is negative. On Libevent 2, all callbacks take sockets as evutil_socket_t; we've been passing them int. This patch should fix compilation and correctness when built for 64-bit windows. Fixes bug 3270. --- src/or/control.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/or/control.c') diff --git a/src/or/control.c b/src/or/control.c index 384e579f93..a595b2a638 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1490,7 +1490,7 @@ getinfo_helper_listeners(control_connection_t *control_conn, struct sockaddr_storage ss; socklen_t ss_len = sizeof(ss); - if (conn->type != type || conn->marked_for_close || conn->s < 0) + if (conn->type != type || conn->marked_for_close || !SOCKET_OK(conn->s)) continue; if (getsockname(conn->s, (struct sockaddr *)&ss, &ss_len) < 0) { -- cgit v1.2.3-54-g00ecf