summaryrefslogtreecommitdiff
path: root/udev
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2009-01-15 20:20:16 +0100
committerKay Sievers <kay.sievers@vrfy.org>2009-01-15 20:20:16 +0100
commitec2dd02e2a2748134f9c8347e12b802b42dea6b5 (patch)
tree657c7c50234f9c559ac7cb65cc2253361e29c609 /udev
parent64b333fdcc69798ab7874cf042d590b3f2d990b5 (diff)
udevadm: test - remove --force option
Since a while we change the database with a "test" run, but do not update the node and symlinks. We need to "force" all the time, to keep things in sync.
Diffstat (limited to 'udev')
-rw-r--r--udev/udev-event.c8
-rw-r--r--udev/udev-node.c77
-rw-r--r--udev/udev-rules.c5
-rw-r--r--udev/udev.h7
-rw-r--r--udev/udevadm-test.c11
-rw-r--r--udev/udevadm.xml10
6 files changed, 43 insertions, 75 deletions
diff --git a/udev/udev-event.c b/udev/udev-event.c
index 9e82f8de42..6d05594337 100644
--- a/udev/udev-event.c
+++ b/udev/udev-event.c
@@ -472,8 +472,6 @@ static int rename_netif(struct udev_event *event)
info(event->udev, "changing net interface name from '%s' to '%s'\n",
udev_device_get_sysname(dev), event->name);
- if (event->test)
- return 0;
sk = socket(PF_INET, SOCK_DGRAM, 0);
if (sk < 0) {
@@ -593,11 +591,11 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
/* update database, create node and symlinks */
udev_device_update_db(dev);
- err = udev_node_add(dev, event->mode, event->uid, event->gid, event->test);
+ err = udev_node_add(dev, event->mode, event->uid, event->gid);
/* remove/update possible left-over symlinks from old database entry */
if (dev_old != NULL) {
- udev_node_update_old_links(dev, dev_old, event->test);
+ udev_node_update_old_links(dev, dev_old);
udev_device_unref(dev_old);
}
goto exit;
@@ -673,7 +671,7 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
goto exit;
}
- err = udev_node_remove(dev, event->test);
+ err = udev_node_remove(dev);
goto exit;
}
diff --git a/udev/udev-node.c b/udev/udev-node.c
index 100ca92903..18a9d11017 100644
--- a/udev/udev-node.c
+++ b/udev/udev-node.c
@@ -32,7 +32,7 @@
#define TMP_FILE_EXT ".udev-tmp"
/* reverse mapping from the device file name to the devpath */
-static int name_index(struct udev *udev, const char *devpath, const char *name, int add, int test)
+static int name_index(struct udev *udev, const char *devpath, const char *name, int add)
{
char device[UTIL_PATH_SIZE];
char filename[UTIL_PATH_SIZE * 2];
@@ -268,7 +268,7 @@ out:
return count;
}
-static int update_link(struct udev_device *dev, const char *slink, int test)
+static int update_link(struct udev_device *dev, const char *slink)
{
struct udev *udev = udev_device_get_udev(dev);
struct udev_list_node dev_list;
@@ -288,10 +288,8 @@ static int update_link(struct udev_device *dev, const char *slink, int test)
/* if we don't have a reference, delete it */
if (count <= 0) {
info(udev, "no reference left, remove '%s'\n", slink);
- if (!test) {
- unlink(slink);
- util_delete_path(udev, slink);
- }
+ unlink(slink);
+ util_delete_path(udev, slink);
goto out;
}
@@ -351,15 +349,13 @@ static int update_link(struct udev_device *dev, const char *slink, int test)
/* create symlink to the target with the highest priority */
info(udev, "'%s' with target '%s' has the highest priority %i, create it\n", slink, target, priority);
- if (!test) {
- util_create_path(udev, slink);
- node_symlink(udev, target, slink);
- }
+ util_create_path(udev, slink);
+ node_symlink(udev, target, slink);
out:
return rc;
}
-void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old, int test)
+void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old)
{
struct udev *udev = udev_device_get_udev(dev);
struct udev_list_entry *list_entry;
@@ -389,8 +385,8 @@ void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev
continue;
info(udev, "update old symlink '%s' no longer belonging to '%s'\n", name, udev_device_get_devpath(dev));
- name_index(udev, udev_device_get_devpath(dev), name, 0, test);
- update_link(dev, name, test);
+ name_index(udev, udev_device_get_devpath(dev), name, 0);
+ update_link(dev, name);
}
/*
@@ -402,11 +398,11 @@ void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev
const char *devnode = udev_device_get_devnode(dev);
if (devnode != NULL && strcmp(devnode_old, devnode) != 0)
- update_link(dev, devnode_old, test);
+ update_link(dev, devnode_old);
}
}
-int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid, int test)
+int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
{
struct udev *udev = udev_device_get_udev(dev);
int i;
@@ -420,44 +416,41 @@ int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid, in
mode, uid, gid);
util_create_path(udev, udev_device_get_devnode(dev));
- if (!test)
- if (udev_node_mknod(dev, NULL, makedev(0,0), mode, uid, gid) != 0) {
- err = -1;
- goto exit;
- }
+ if (udev_node_mknod(dev, NULL, makedev(0,0), mode, uid, gid) != 0) {
+ err = -1;
+ goto exit;
+ }
/* create all_partitions if requested */
num = udev_device_get_num_fake_partitions(dev);
if (num > 0) {
info(udev, "creating device partition nodes '%s[1-%i]'\n", udev_device_get_devnode(dev), num);
- if (!test) {
- for (i = 1; i <= num; i++) {
- char partitionname[UTIL_PATH_SIZE];
- dev_t part_devnum;
-
- snprintf(partitionname, sizeof(partitionname), "%s%d",
- udev_device_get_devnode(dev), i);
- partitionname[sizeof(partitionname)-1] = '\0';
- part_devnum = makedev(major(udev_device_get_devnum(dev)),
- minor(udev_device_get_devnum(dev)) + i);
- udev_node_mknod(dev, partitionname, part_devnum, mode, uid, gid);
- }
+ for (i = 1; i <= num; i++) {
+ char partitionname[UTIL_PATH_SIZE];
+ dev_t part_devnum;
+
+ snprintf(partitionname, sizeof(partitionname), "%s%d",
+ udev_device_get_devnode(dev), i);
+ partitionname[sizeof(partitionname)-1] = '\0';
+ part_devnum = makedev(major(udev_device_get_devnum(dev)),
+ minor(udev_device_get_devnum(dev)) + i);
+ udev_node_mknod(dev, partitionname, part_devnum, mode, uid, gid);
}
}
/* add node to name index */
- name_index(udev, udev_device_get_devpath(dev), udev_device_get_devnode(dev), 1, test);
+ name_index(udev, udev_device_get_devpath(dev), udev_device_get_devnode(dev), 1);
/* create/update symlinks, add symlinks to name index */
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev)) {
- name_index(udev, udev_device_get_devpath(dev), udev_list_entry_get_name(list_entry), 1, test);
- update_link(dev, udev_list_entry_get_name(list_entry), test);
+ name_index(udev, udev_device_get_devpath(dev), udev_list_entry_get_name(list_entry), 1);
+ update_link(dev, udev_list_entry_get_name(list_entry));
}
exit:
return err;
}
-extern int udev_node_remove(struct udev_device *dev, int test)
+extern int udev_node_remove(struct udev_device *dev)
{
struct udev *udev = udev_device_get_udev(dev);
struct udev_list_entry *list_entry;
@@ -468,12 +461,12 @@ extern int udev_node_remove(struct udev_device *dev, int test)
int num;
/* remove node from name index */
- name_index(udev, udev_device_get_devpath(dev), udev_device_get_devnode(dev), 0, test);
+ name_index(udev, udev_device_get_devpath(dev), udev_device_get_devnode(dev), 0);
/* remove,update symlinks, remove symlinks from name index */
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev)) {
- name_index(udev, udev_device_get_devpath(dev), udev_list_entry_get_name(list_entry), 0, test);
- update_link(dev, udev_list_entry_get_name(list_entry), test);
+ name_index(udev, udev_device_get_devpath(dev), udev_list_entry_get_name(list_entry), 0);
+ update_link(dev, udev_list_entry_get_name(list_entry));
}
devnode = udev_device_get_devnode(dev);
@@ -489,8 +482,7 @@ extern int udev_node_remove(struct udev_device *dev, int test)
}
info(udev, "removing device node '%s'\n", devnode);
- if (!test)
- err = util_unlink_secure(udev, devnode);
+ err = util_unlink_secure(udev, devnode);
if (err)
return err;
@@ -504,8 +496,7 @@ extern int udev_node_remove(struct udev_device *dev, int test)
for (i = 1; i <= num; i++) {
snprintf(partitionname, sizeof(partitionname), "%s%d", devnode, i);
partitionname[sizeof(partitionname)-1] = '\0';
- if (!test)
- util_unlink_secure(udev, partitionname);
+ util_unlink_secure(udev, partitionname);
}
}
util_delete_path(udev, devnode);
diff --git a/udev/udev-rules.c b/udev/udev-rules.c
index c5f44aa20f..2d120dd927 100644
--- a/udev/udev-rules.c
+++ b/udev/udev-rules.c
@@ -2504,9 +2504,8 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
rule->rule.filename_line);
f = fopen(attr, "w");
if (f != NULL) {
- if (!event->test)
- if (fprintf(f, "%s", value) <= 0)
- err(event->udev, "error writing ATTR{%s}: %m\n", attr);
+ if (fprintf(f, "%s", value) <= 0)
+ err(event->udev, "error writing ATTR{%s}: %m\n", attr);
fclose(f);
} else {
err(event->udev, "error opening ATTR{%s} for writing: %m\n", attr);
diff --git a/udev/udev.h b/udev/udev.h
index ea8c8d919d..d1b207196e 100644
--- a/udev/udev.h
+++ b/udev/udev.h
@@ -76,7 +76,6 @@ struct udev_event {
unsigned int run_final:1;
unsigned int ignore_device:1;
unsigned int trace:1;
- unsigned int test:1;
};
/* udev-rules.c */
@@ -96,9 +95,9 @@ extern int udev_event_apply_subsys_kernel(struct udev_event *event, const char *
/* udev-node.c */
extern int udev_node_mknod(struct udev_device *dev, const char *file, dev_t devnum, mode_t mode, uid_t uid, gid_t gid);
-extern int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid, int test);
-extern int udev_node_remove(struct udev_device *dev, int test);
-extern void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old, int test);
+extern int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid);
+extern int udev_node_remove(struct udev_device *dev);
+extern void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old);
/* udev-util.c */
extern int util_create_path(struct udev *udev, const char *path);
diff --git a/udev/udevadm-test.c b/udev/udevadm-test.c
index 2c8e0bff98..9d505146cf 100644
--- a/udev/udevadm-test.c
+++ b/udev/udevadm-test.c
@@ -33,7 +33,6 @@
int udevadm_test(struct udev *udev, int argc, char *argv[])
{
char filename[UTIL_PATH_SIZE];
- int force = 0;
const char *action = "add";
const char *syspath = NULL;
struct udev_event *event;
@@ -44,7 +43,6 @@ int udevadm_test(struct udev *udev, int argc, char *argv[])
static const struct option options[] = {
{ "action", required_argument, NULL, 'a' },
- { "force", no_argument, NULL, 'f' },
{ "help", no_argument, NULL, 'h' },
{}
};
@@ -63,13 +61,9 @@ int udevadm_test(struct udev *udev, int argc, char *argv[])
case 'a':
action = optarg;
break;
- case 'f':
- force = 1;
- break;
case 'h':
printf("Usage: udevadm test OPTIONS <syspath>\n"
" --action=<string> set action string\n"
- " --force don't skip node/link creation\n"
" --help print this help text\n\n");
exit(0);
default:
@@ -116,11 +110,6 @@ int udevadm_test(struct udev *udev, int argc, char *argv[])
udev_device_set_action(dev, action);
event = udev_event_new(dev);
-
- /* simulate node creation with test flag */
- if (!force)
- event->test = 1;
-
err = udev_event_execute_rules(event, rules);
if (udev_device_get_event_timeout(dev) >= 0)
diff --git a/udev/udevadm.xml b/udev/udevadm.xml
index ebc4aa150f..7ed2107f88 100644
--- a/udev/udevadm.xml
+++ b/udev/udevadm.xml
@@ -326,8 +326,7 @@
</refsect2>
<refsect2><title>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></title>
- <para>Simulate a udev event run for the given device, and print out debug
- output. Unless forced to, no device node or symlink will be created.</para>
+ <para>Simulate a udev event run for the given device, and print debug output.</para>
<variablelist>
<varlistentry>
<term><option>--action=<replaceable>string</replaceable></option></term>
@@ -342,13 +341,6 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--force</option></term>
- <listitem>
- <para>Force the creation of a device node or symlink. Usually the test run
- prints only debug output.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>