From ae479e810cafca3ac8f4dc1330f9417f65342899 Mon Sep 17 00:00:00 2001 From: Michael Knudsen Date: Sun, 28 May 2006 01:35:39 +0000 Subject: Include device id in hotplug event logging. id is passed as new script parameter so only scripts that are picky about arg count needs updating. ok henning. --- usr.sbin/hotplugd/hotplugd.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'usr.sbin') diff --git a/usr.sbin/hotplugd/hotplugd.c b/usr.sbin/hotplugd/hotplugd.c index 6d5e0289414..cca952d00ab 100644 --- a/usr.sbin/hotplugd/hotplugd.c +++ b/usr.sbin/hotplugd/hotplugd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hotplugd.c,v 1.5 2006/04/05 08:22:21 grange Exp $ */ +/* $OpenBSD: hotplugd.c,v 1.6 2006/05/28 01:35:38 mk Exp $ */ /* * Copyright (c) 2004 Alexander Yurchenko * @@ -48,7 +48,7 @@ volatile sig_atomic_t quit = 0; char *device = _PATH_DEV_HOTPLUG; int devfd = -1; -void exec_script(const char *, int, char *); +void exec_script(const char *, int, char *, int); void sigchild(int); void sigquit(int); @@ -104,16 +104,16 @@ main(int argc, char *argv[]) switch (he.he_type) { case HOTPLUG_DEVAT: - syslog(LOG_INFO, "%s attached, class %d", - he.he_devname, he.he_devclass); + syslog(LOG_INFO, "%s attached, class %d, id %d", + he.he_devname, he.he_devclass, he.he_devid); exec_script(_PATH_ETC_HOTPLUG_ATTACH, he.he_devclass, - he.he_devname); + he.he_devname, he.he_devid); break; case HOTPLUG_DEVDT: - syslog(LOG_INFO, "%s detached, class %d", - he.he_devname, he.he_devclass); + syslog(LOG_INFO, "%s detached, class %d id %d", + he.he_devname, he.he_devclass, he.he_devid); exec_script(_PATH_ETC_HOTPLUG_DETACH, he.he_devclass, - he.he_devname); + he.he_devname, he.he_devid); break; default: syslog(LOG_NOTICE, "unknown event (0x%x)", he.he_type); @@ -129,12 +129,14 @@ main(int argc, char *argv[]) } void -exec_script(const char *file, int class, char *name) +exec_script(const char *file, int class, char *name, int id) { char strclass[8]; + char strid[8]; pid_t pid; snprintf(strclass, sizeof(strclass), "%d", class); + snprintf(strid, sizeof(strid), "%d", id); if (access(file, X_OK | R_OK)) /* do nothing if file can't be accessed */ @@ -146,7 +148,7 @@ exec_script(const char *file, int class, char *name) } if (pid == 0) { /* child process */ - execl(file, basename(file), strclass, name, (char *)NULL); + execl(file, basename(file), strclass, name, strid, (char *)NULL); syslog(LOG_ERR, "execl %s: %m", file); _exit(1); /* NOTREACHED */ -- cgit v1.2.3