{
struct sockaddr_un saddr;
socklen_t addrlen;
- const int feature_on = 1;
int retval;
memset(&saddr, 0x00, sizeof(saddr));
saddr.sun_family = AF_LOCAL;
/* use abstract namespace for socket path */
strcpy(&saddr.sun_path[1], "/org/kernel/udev/monitor");
- addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;
+ addrlen = offsetof(struct sockaddr_un, sun_path) + 1 + strlen(&saddr.sun_path[1]);
udev_monitor_sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
if (udev_monitor_sock == -1) {
return -1;
}
- /* enable receiving of the sender credentials */
- setsockopt(udev_monitor_sock, SOL_SOCKET, SO_PASSCRED, &feature_on, sizeof(feature_on));
-
return 0;
}
return NULL;
}
-int main(int argc, char *argv[])
+int udevmonitor(int argc, char *argv[], char *envp[])
{
struct sigaction act;
int option;
udev = 1;
break;
case 'h':
- printf("Usage: udevmonitor [--environment] [--kernel] [--udev] [--help]\n"
+ printf("Usage: udevadm monitor [--environment] [--kernel] [--udev] [--help]\n"
" --env print the whole event environment\n"
" --kernel print kernel uevents\n"
" --udev print udev events\n"