mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
don't add $SUBSYSTEM automatically as $1 to programs
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
parent
d2f605c8d6
commit
36af2ddcb9
@ -1,3 +1,15 @@
|
||||
udev 083
|
||||
========
|
||||
Fix a bug where NAME="" would prevent RUN from beeing executed.
|
||||
|
||||
RUN="/bin/program" does no longer automatically add the subsystem
|
||||
as the first parameter. This is from the days of /sbin/hotplug
|
||||
which is dead now and it's just confusing to need to add space at the
|
||||
end of the program name to prevent this. If you use rules that
|
||||
depend on this, like the old "udev_run_hotlugd" and "udev_run_devd",
|
||||
switch them to: RUN+="/bin/program $env{SUBSYSTEM}", otherwise
|
||||
they will no longer work as expected.
|
||||
|
||||
udev 082
|
||||
========
|
||||
The udev man page has moced to udev(7) as it doesnot describe a command
|
||||
|
@ -298,15 +298,6 @@ BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special--*", NAME=
|
||||
BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-device-", NAME="%c-3-%n"
|
||||
BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-devic", NAME="%c-4-%n"
|
||||
BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-*", NAME="%c-%n"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "program result substitution (no argument should be subsystem)",
|
||||
subsys => "block",
|
||||
devpath => "/block/sda/sda3",
|
||||
exp_name => "subsys_block" ,
|
||||
rules => <<EOF
|
||||
BUS=="scsi", PROGRAM=="/bin/echo", RESULT=="block", NAME="subsys_block"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
|
@ -84,16 +84,18 @@ int run_program(const char *command, const char *subsystem,
|
||||
int devnull;
|
||||
int i;
|
||||
|
||||
/* build argv from comand */
|
||||
strlcpy(arg, command, sizeof(arg));
|
||||
i = 0;
|
||||
if (strchr(arg, ' ')) {
|
||||
if (strchr(arg, ' ') != NULL) {
|
||||
char *pos = arg;
|
||||
|
||||
while (pos != NULL) {
|
||||
if (pos[0] == '\'') {
|
||||
/* don't separate if in apostrophes */
|
||||
pos++;
|
||||
argv[i] = strsep(&pos, "\'");
|
||||
while (pos && pos[0] == ' ')
|
||||
while (pos != NULL && pos[0] == ' ')
|
||||
pos++;
|
||||
} else {
|
||||
argv[i] = strsep(&pos, " ");
|
||||
@ -102,13 +104,11 @@ int run_program(const char *command, const char *subsystem,
|
||||
i++;
|
||||
}
|
||||
argv[i] = NULL;
|
||||
info("'%s'", command);
|
||||
} else {
|
||||
argv[0] = arg;
|
||||
argv[1] = (char *) subsystem;
|
||||
argv[2] = NULL;
|
||||
info("'%s' '%s'", arg, argv[1]);
|
||||
argv[1] = NULL;
|
||||
}
|
||||
info("'%s'", command);
|
||||
|
||||
/* prepare pipes from child to parent */
|
||||
if (result || log) {
|
||||
|
Loading…
Reference in New Issue
Block a user