Skip to content

Commit 53bba2f

Browse files
committed
udev-ctrl: refactor udev_ctrl_enable_receiving()
1 parent 100bc5b commit 53bba2f

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

src/udev/udev-ctrl.c

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,25 +116,28 @@ int udev_ctrl_new_from_fd(struct udev_ctrl **ret, int fd) {
116116
}
117117

118118
int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl) {
119-
int err;
120-
121-
if (!uctrl->bound) {
122-
err = bind(uctrl->sock, &uctrl->saddr.sa, uctrl->addrlen);
123-
if (err < 0 && errno == EADDRINUSE) {
124-
(void) sockaddr_un_unlink(&uctrl->saddr.un);
125-
err = bind(uctrl->sock, &uctrl->saddr.sa, uctrl->addrlen);
126-
}
119+
int r;
127120

128-
if (err < 0)
129-
return log_error_errno(errno, "Failed to bind socket: %m");
121+
assert(uctrl);
130122

131-
err = listen(uctrl->sock, 0);
132-
if (err < 0)
133-
return log_error_errno(errno, "Failed to listen: %m");
123+
if (uctrl->bound)
124+
return 0;
134125

135-
uctrl->bound = true;
136-
uctrl->cleanup_socket = true;
126+
r = bind(uctrl->sock, &uctrl->saddr.sa, uctrl->addrlen);
127+
if (r < 0 && errno == EADDRINUSE) {
128+
(void) sockaddr_un_unlink(&uctrl->saddr.un);
129+
r = bind(uctrl->sock, &uctrl->saddr.sa, uctrl->addrlen);
137130
}
131+
132+
if (r < 0)
133+
return log_error_errno(errno, "Failed to bind udev control socket: %m");
134+
135+
if (listen(uctrl->sock, 0) < 0)
136+
return log_error_errno(errno, "Failed to listen udev control socket: %m");
137+
138+
uctrl->bound = true;
139+
uctrl->cleanup_socket = true;
140+
138141
return 0;
139142
}
140143

0 commit comments

Comments
 (0)