mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
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.
This commit is contained in:
+5
-5
@@ -226,8 +226,8 @@ cpuworker_main(void *data)
|
||||
{
|
||||
char question[ONIONSKIN_CHALLENGE_LEN];
|
||||
uint8_t question_type;
|
||||
int *fdarray = data;
|
||||
int fd;
|
||||
tor_socket_t *fdarray = data;
|
||||
tor_socket_t fd;
|
||||
|
||||
/* variables for onion processing */
|
||||
char keys[CPATH_KEY_MATERIAL_LEN];
|
||||
@@ -317,12 +317,12 @@ cpuworker_main(void *data)
|
||||
static int
|
||||
spawn_cpuworker(void)
|
||||
{
|
||||
int *fdarray;
|
||||
int fd;
|
||||
tor_socket_t *fdarray;
|
||||
tor_socket_t fd;
|
||||
connection_t *conn;
|
||||
int err;
|
||||
|
||||
fdarray = tor_malloc(sizeof(int)*2);
|
||||
fdarray = tor_malloc(sizeof(tor_socket_t)*2);
|
||||
if ((err = tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fdarray)) < 0) {
|
||||
log_warn(LD_NET, "Couldn't construct socketpair for cpuworker: %s",
|
||||
tor_socket_strerror(-err));
|
||||
|
||||
Reference in New Issue
Block a user