2019-12-14 10:28:23

by Guillem Jover

[permalink] [raw]
Subject: [PATCH BlueZ] shared/mainloop: Use connect() instead of bind() for sd_notify

We are the client, so we should be using connect(2) instead of bind(2),
otherwise when using non-abstract Unix sockets we will get an error that
the address is already in use.

This breaks the notify support in dpkg's start-stop-daemon.
---
src/shared/mainloop-notify.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/shared/mainloop-notify.c b/src/shared/mainloop-notify.c
index 89a880006..1de714a0e 100644
--- a/src/shared/mainloop-notify.c
+++ b/src/shared/mainloop-notify.c
@@ -91,7 +91,7 @@ void mainloop_notify_init(void)
if (addr.sun_path[0] == '@')
addr.sun_path[0] = '\0';

- if (bind(notify_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
+ if (connect(notify_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
close(notify_fd);
notify_fd = -1;
return;
--
2.24.1.658.g99f4b37f93