Skip to contentSkip to conversation

- format char for CALLOUT output

udev Kay Sievers 1 participant 1 message Nov 21, 2003

lore
Share & tools
lore
#0 lore raw

Hi Greg,
here is a patch for inserting the callout output into NAME=. ID= supports the usual wildcard to compare with the output.

I've moved all wildcard matching to a function cause this was the third occurrence. Also attached is the last whitespace cleanup and debug text corrections. The callout patch depends on the whitespace patch.

CALLOUT, BUS="usb", PROGRAM="/bin/echo -n return", ID="ret*", NAME="webcam-%c-"

results in:

Nov 21 17:33:51 pim udev[20399]: get_major_minor: found major = 81, minor = 0
Nov 21 17:33:51 pim udev[20399]: exec_callout: callout to '/bin/echo -n return'
Nov 21 17:33:51 pim udev[20399]: exec_callout: callout returned 'return'
Nov 21 17:33:51 pim udev[20399]: get_attr: substitute callout output 'return'
Nov 21 17:33:51 pim udev[20399]: udev_add_device: name = webcam-return-
Nov 21 17:33:51 pim udev[20399]: create_node: mknod(/udev/webcam-return-, 020660, 81, 0)

thanks,
Kay

namedev.c renamed from udev/namedev.c +7 -10
@@ -82,9 +82,9 @@
 			  dev->owner, dev->group, dev->mode);
 		break;
 	case CALLOUT:
-		dbg_parse("CALLOUT name='%s', program='%s', bus='%s', id='%s', "
+		dbg_parse("CALLOUT name='%s', bus='%s', program='%s', id='%s', "
 			  "owner='%s', group='%s', mode=%#o",
-			  dev->name, dev->exec_program, dev->bus, dev->id,
+			  dev->name, dev->bus, dev->exec_program, dev->id,
 			  dev->owner, dev->group, dev->mode);
 		break;
 	default:
@@ -270,8 +270,8 @@
 			strfieldcpy(dev.name, temp3);
 
 			dbg_parse("LABEL name='%s', bus='%s', "
-				  "sysfs_file='%s', sysfs_value='%s'", 
-				  dev.name, dev.bus, dev.sysfs_file, 
+				  "sysfs_file='%s', sysfs_value='%s'",
+				  dev.name, dev.bus, dev.sysfs_file,
 				  dev.sysfs_value);
 		}
 
@@ -416,7 +416,6 @@
 
 	/* loop through the whole file */
 	while (1) {
-		/* get a line */
 		temp = fgets(line, sizeof(line), fd);
 		if (temp == NULL)
 			break;
@@ -509,7 +508,7 @@
 					break;
 			}
 			if (args[i]) {
-				dbg("to many args - %d", i);
+				dbg("too many args - %d", i);
 				args[i] = NULL;
 			}
 			retval = execve(args[0], args, main_envp);
@@ -869,6 +868,7 @@
 		char *pos = strchr(udev->name, '%');
 		char *dig;
 		char name[NAME_SIZE];
+
 		if (pos) {
 			strfieldcpy(name, pos+2);
 			*pos = 0x00;
@@ -877,8 +877,7 @@
 				if (!sysfs_device)
 					break;
 				strcat(udev->name, sysfs_device->bus_id);
-				dbg("bus_id inserted: %s", 
-						sysfs_device->bus_id);
+				dbg("substitute bus_id '%s'", sysfs_device->bus_id);
 				break;
 			case 'n':
 				dig = class_dev->name + strlen(class_dev->name);
@@ -944,5 +943,3 @@
 	dump_dev_list();
 	return retval;
 }
-
-
namedev.c +28 -25

113 lines not on this page · raw message