mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
r14419@tombo: nickm | 2008-02-24 16:55:11 -0500
Patch from tup: use sizeof sockaddr_un as the size of a unix sockaddr. Fixes unix controlsocket binding on openbsd. svn:r13697
This commit is contained in:
parent
e0de72dd87
commit
dde81de3dd
@ -102,6 +102,8 @@ Changes in version 0.2.0.20-?? - 2008-02-??
|
|||||||
the TLS shutdown handshake is hardly unexpected.
|
the TLS shutdown handshake is hardly unexpected.
|
||||||
- Send NAMESERVER_STATUS messages for a single failed nameserver
|
- Send NAMESERVER_STATUS messages for a single failed nameserver
|
||||||
correctly.
|
correctly.
|
||||||
|
- Make Unix controlsockets work correctly on OpenBSD. Patch from
|
||||||
|
tup. Bugfix on 0.2.0.3-alpha.
|
||||||
|
|
||||||
o Code simplifications and refactoring:
|
o Code simplifications and refactoring:
|
||||||
- Remove the tor_strpartition function: its logic was confused,
|
- Remove the tor_strpartition function: its logic was confused,
|
||||||
|
@ -746,8 +746,9 @@ create_unix_sockaddr(const char *listenaddress, char **readable_address)
|
|||||||
*/
|
*/
|
||||||
static connection_t *
|
static connection_t *
|
||||||
connection_create_listener(struct sockaddr *listensockaddr, int type,
|
connection_create_listener(struct sockaddr *listensockaddr, int type,
|
||||||
char* address)
|
char* address)
|
||||||
{
|
{
|
||||||
|
/*XXXX021 this function should take a socklen too. */
|
||||||
connection_t *conn;
|
connection_t *conn;
|
||||||
int s; /* the socket we're going to make */
|
int s; /* the socket we're going to make */
|
||||||
uint16_t usePort = 0;
|
uint16_t usePort = 0;
|
||||||
@ -814,7 +815,6 @@ connection_create_listener(struct sockaddr *listensockaddr, int type,
|
|||||||
}
|
}
|
||||||
#ifdef HAVE_SYS_UN_H
|
#ifdef HAVE_SYS_UN_H
|
||||||
} else if (listensockaddr->sa_family == AF_UNIX) {
|
} else if (listensockaddr->sa_family == AF_UNIX) {
|
||||||
size_t len;
|
|
||||||
start_reading = 1;
|
start_reading = 1;
|
||||||
|
|
||||||
/* For now only control ports can be unix domain sockets
|
/* For now only control ports can be unix domain sockets
|
||||||
@ -835,9 +835,7 @@ connection_create_listener(struct sockaddr *listensockaddr, int type,
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
len = strlen(((struct sockaddr_un *)listensockaddr)->sun_path) +
|
if (bind(s, listensockaddr, (socklen_t)sizeof(struct sockaddr_un)) == -1) {
|
||||||
sizeof(((struct sockaddr_un *)listensockaddr)->sun_family);
|
|
||||||
if (bind(s, listensockaddr, (socklen_t)len) == -1) {
|
|
||||||
log_warn(LD_NET,"Bind to %s failed: %s.", address,
|
log_warn(LD_NET,"Bind to %s failed: %s.", address,
|
||||||
tor_socket_strerror(tor_socket_errno(s)));
|
tor_socket_strerror(tor_socket_errno(s)));
|
||||||
goto err;
|
goto err;
|
||||||
|
Loading…
Reference in New Issue
Block a user