diff options
author | Colin Walters <walters@verbum.org> | 2010-09-03 14:46:53 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2010-09-03 14:46:53 -0400 |
commit | 87d324c3434b03214d82c6fc30cb7a6a754318ab (patch) | |
tree | fb8a3ebed2a8e2b20cb98001accb58195b51c4ed | |
parent | 45d53565bc13678d6aa5edec1d4efb5bf8a64e0b (diff) | |
parent | 8f2eb502a3c491b64012adb3ea8220a9952ce3c6 (diff) | |
download | dbus-87d324c3434b03214d82c6fc30cb7a6a754318ab.tar.gz |
Merge branch 'dbus-1.2'
Conflicts:
dbus/dbus-sysdeps-unix.c
-rwxr-xr-x | bus/messagebus.in | 2 | ||||
-rw-r--r-- | dbus/dbus-sysdeps-unix.c | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/bus/messagebus.in b/bus/messagebus.in index 1f1004b1..3e2ee07a 100755 --- a/bus/messagebus.in +++ b/bus/messagebus.in @@ -68,7 +68,7 @@ case "$1" in stop ;; status) - status $processname + status $servicename RETVAL=$? ;; restart) diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index e859ec60..e4ff6eea 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -902,6 +902,7 @@ _dbus_listen_unix_socket (const char *path, int listen_fd; struct sockaddr_un addr; size_t path_len; + unsigned int reuseaddr; _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -976,6 +977,14 @@ _dbus_listen_unix_socket (const char *path, strncpy (addr.sun_path, path, path_len); } + reuseaddr = 1; + if (setsockopt (listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1) + { + dbus_set_error (error, _dbus_error_from_errno (errno), + "Failed to set socket option\"%s\": %s", + path, _dbus_strerror (errno)); + } + if (bind (listen_fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len) < 0) { dbus_set_error (error, _dbus_error_from_errno (errno), @@ -1277,6 +1286,7 @@ _dbus_listen_tcp_socket (const char *host, int nlisten_fd = 0, *listen_fd = NULL, res, i; struct addrinfo hints; struct addrinfo *ai, *tmp; + unsigned int reuseaddr; *fds_p = NULL; _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -1322,6 +1332,14 @@ _dbus_listen_tcp_socket (const char *host, } _DBUS_ASSERT_ERROR_IS_CLEAR(error); + reuseaddr = 1; + if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1) + { + dbus_set_error (error, _dbus_error_from_errno (errno), + "Failed to set socket option \"%s:%s\": %s", + host ? host : "*", port, _dbus_strerror (errno)); + } + if (bind (fd, (struct sockaddr*) tmp->ai_addr, tmp->ai_addrlen) < 0) { saved_errno = errno; |