mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
fix exit code of udevinitsend and udevmonitor
Thanks to: Marco d'Itri <md@Linux.IT> for the initial patch. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
parent
66691c6e6c
commit
9bbcdb56d8
@ -128,7 +128,6 @@ static int udevsend(char *filename, int sock, int disable_loop_detection)
|
||||
}
|
||||
|
||||
if (ch < le) {
|
||||
|
||||
strncpy(&usend_msg.envbuf[bufpos],ls,(ch - ls) + 1);
|
||||
bufpos += (ch - ls) + 1;
|
||||
if (ch[1] == '\'' && le[-1] == '\'') {
|
||||
@ -153,9 +152,10 @@ loop_end:
|
||||
retval = sendto(sock, &usend_msg, usend_msg_len, 0, (struct sockaddr *)&saddr, addrlen);
|
||||
if (retval < 0) {
|
||||
dbg("error sending message (%s)", strerror(errno));
|
||||
retval = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -167,7 +167,7 @@ int main(int argc, char *argv[], char *envp[])
|
||||
char *event_file = NULL;
|
||||
DIR *dirstream;
|
||||
struct dirent *direntry;
|
||||
int retval = 1;
|
||||
int retval = 0;
|
||||
int disable_loop_detection = 0;
|
||||
int sock;
|
||||
const char *env;
|
||||
@ -218,7 +218,7 @@ int main(int argc, char *argv[], char *envp[])
|
||||
if (!dirstream) {
|
||||
info("error opening directory %s: %s\n",
|
||||
event_dir, strerror(errno));
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
chdir(event_dir);
|
||||
while ((direntry = readdir(dirstream)) != NULL) {
|
||||
@ -235,5 +235,7 @@ int main(int argc, char *argv[], char *envp[])
|
||||
if (sock != -1)
|
||||
close(sock);
|
||||
|
||||
return retval;
|
||||
if (retval)
|
||||
return 3;
|
||||
return 0;
|
||||
}
|
||||
|
@ -63,6 +63,7 @@ static int init_udev_monitor_socket(void)
|
||||
if (retval < 0) {
|
||||
fprintf(stderr, "bind failed, %s\n", strerror(errno));
|
||||
close(udev_monitor_sock);
|
||||
udev_monitor_sock = -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -125,13 +126,15 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (getuid() != 0) {
|
||||
fprintf(stderr, "need to be root, exit\n\n");
|
||||
exit(1);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
retval = init_udev_monitor_socket();
|
||||
if (retval)
|
||||
goto out;
|
||||
init_uevent_netlink_sock();
|
||||
retval = init_uevent_netlink_sock();
|
||||
if (retval)
|
||||
goto out;
|
||||
|
||||
printf("udevmonitor prints the received event from the kernel [UEVENT]\n"
|
||||
"and the event which udev sends out after rule processing [UDEV]\n\n");
|
||||
@ -204,5 +207,7 @@ out:
|
||||
if (udev_monitor_sock > 0)
|
||||
close(udev_monitor_sock);
|
||||
|
||||
return retval;
|
||||
if (retval)
|
||||
return 3;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user