chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "extras/keymap: Fix case matching for Micro-Star"
[elogind.git]
/
udev
/
udev-rules.c
diff --git
a/udev/udev-rules.c
b/udev/udev-rules.c
index 7db890fed91166869cee5699d1eb83fb83f45053..eeb71bc87b9d6eb0906b671bb7ab81f64495d79e 100644
(file)
--- a/
udev/udev-rules.c
+++ b/
udev/udev-rules.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 200
8
-2009 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 200
3
-2009 Kay Sievers <kay.sievers@vrfy.org>
* Copyright (C) 2008 Alan Jenkins <alan-jenkins@tuffmail.co.uk>
*
* This program is free software: you can redistribute it and/or modify
* Copyright (C) 2008 Alan Jenkins <alan-jenkins@tuffmail.co.uk>
*
* This program is free software: you can redistribute it and/or modify
@@
-270,7
+270,7
@@
static const char *token_str(enum token_type type)
[TK_M_PROGRAM] = "M PROGRAM",
[TK_M_IMPORT_FILE] = "M IMPORT_FILE",
[TK_M_IMPORT_PROG] = "M IMPORT_PROG",
[TK_M_PROGRAM] = "M PROGRAM",
[TK_M_IMPORT_FILE] = "M IMPORT_FILE",
[TK_M_IMPORT_PROG] = "M IMPORT_PROG",
- [TK_M_IMPORT_PARENT] = "M MPORT_PARENT",
+ [TK_M_IMPORT_PARENT] = "M
I
MPORT_PARENT",
[TK_M_RESULT] = "M RESULT",
[TK_M_MAX] = "M MAX",
[TK_M_RESULT] = "M RESULT",
[TK_M_MAX] = "M MAX",
@@
-718,8
+718,9
@@
static int import_property_from_string(struct udev_device *dev, char *line)
struct udev_list_entry *entry;
entry = udev_device_add_property(dev, key, val);
struct udev_list_entry *entry;
entry = udev_device_add_property(dev, key, val);
- /* store in db */
- udev_list_entry_set_flag(entry, 1);
+ /* store in db, skip private keys */
+ if (key[0] != '.')
+ udev_list_entry_set_flag(entry, 1);
}
return 0;
}
}
return 0;
}
@@
-785,8
+786,9
@@
static int import_parent_into_properties(struct udev_device *dev, const char *fi
dbg(udev, "import key '%s=%s'\n", key, val);
entry = udev_device_add_property(dev, key, val);
dbg(udev, "import key '%s=%s'\n", key, val);
entry = udev_device_add_property(dev, key, val);
- /* store in db */
- udev_list_entry_set_flag(entry, 1);
+ /* store in db, skip private keys */
+ if (key[0] != '.')
+ udev_list_entry_set_flag(entry, 1);
}
}
return 0;
}
}
return 0;
@@
-1338,7
+1340,7
@@
static int add_rule(struct udev_rules *rules, char *line,
/* allow programs in /lib/udev called without the path */
if (value[0] != '/')
/* allow programs in /lib/udev called without the path */
if (value[0] != '/')
- util_strscpyl(file, sizeof(file),
UDEV_PREFIX "/lib/udev
/", value, NULL);
+ util_strscpyl(file, sizeof(file),
LIBEXECDIR "
/", value, NULL);
else
util_strscpy(file, sizeof(file), value);
pos = strchr(file, ' ');
else
util_strscpy(file, sizeof(file), value);
pos = strchr(file, ' ');
@@
-1377,7
+1379,7
@@
static int add_rule(struct udev_rules *rules, char *line,
int flag = 0;
attr = get_key_attribute(rules->udev, key + sizeof("RUN")-1);
int flag = 0;
attr = get_key_attribute(rules->udev, key + sizeof("RUN")-1);
- if (attr != NULL && strstr(attr, "
ignore
_error"))
+ if (attr != NULL && strstr(attr, "
fail_event_on
_error"))
flag = 1;
rule_add_key(&rule_tmp, TK_A_RUN, op, value, &flag);
continue;
flag = 1;
rule_add_key(&rule_tmp, TK_A_RUN, op, value, &flag);
continue;
@@
-1404,6
+1406,9
@@
static int add_rule(struct udev_rules *rules, char *line,
} else {
if (value[0] == '\0')
info(rules->udev, "name empty, node creation suppressed\n");
} else {
if (value[0] == '\0')
info(rules->udev, "name empty, node creation suppressed\n");
+ else if (strcmp(value, "%k") == 0)
+ err(rules->udev, "NAME=\"%%k\" is superfluous and breaks "
+ "kernel supplied names, please remove it from %s:%u\n", filename, lineno);
rule_add_key(&rule_tmp, TK_A_NAME, op, value, NULL);
attr = get_key_attribute(rules->udev, key + sizeof("NAME")-1);
if (attr != NULL) {
rule_add_key(&rule_tmp, TK_A_NAME, op, value, NULL);
attr = get_key_attribute(rules->udev, key + sizeof("NAME")-1);
if (attr != NULL) {
@@
-1506,7
+1511,7
@@
static int add_rule(struct udev_rules *rules, char *line,
int tout = atoi(&pos[strlen("event_timeout=")]);
rule_add_key(&rule_tmp, TK_A_EVENT_TIMEOUT, 0, NULL, &tout);
int tout = atoi(&pos[strlen("event_timeout=")]);
rule_add_key(&rule_tmp, TK_A_EVENT_TIMEOUT, 0, NULL, &tout);
- dbg(rules->udev, "event timout=%i\n", tout);
+ dbg(rules->udev, "event tim
e
out=%i\n", tout);
}
pos = strstr(value, "string_escape=");
if (pos != NULL) {
}
pos = strstr(value, "string_escape=");
if (pos != NULL) {
@@
-1734,7
+1739,7
@@
struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
add_matching_files(udev, &sort_list, filename, ".rules");
/* read default rules */
add_matching_files(udev, &sort_list, filename, ".rules");
/* read default rules */
- add_matching_files(udev, &sort_list,
UDEV_PREFIX "/lib/udev
/rules.d", ".rules");
+ add_matching_files(udev, &sort_list,
LIBEXECDIR "
/rules.d", ".rules");
/* sort all rules files by basename into list of files */
udev_list_entry_foreach_safe(sort_loop, sort_tmp, udev_list_get_entry(&sort_list)) {
/* sort all rules files by basename into list of files */
udev_list_entry_foreach_safe(sort_loop, sort_tmp, udev_list_get_entry(&sort_list)) {
@@
-1793,7
+1798,7
@@
struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
if (stat(filename, &statbuf) == 0 && statbuf.st_size > 0)
parse_file(rules, filename, filename_off);
else
if (stat(filename, &statbuf) == 0 && statbuf.st_size > 0)
parse_file(rules, filename, filename_off);
else
-
info
(udev, "can not read '%s'\n", filename);
+
err
(udev, "can not read '%s'\n", filename);
udev_list_entry_delete(file_loop);
}
udev_list_entry_delete(file_loop);
}
@@
-2374,8
+2379,9
@@
int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
udev_event_apply_format(event, value, temp_value, sizeof(temp_value));
entry = udev_device_add_property(event->dev, name, temp_value);
udev_event_apply_format(event, value, temp_value, sizeof(temp_value));
entry = udev_device_add_property(event->dev, name, temp_value);
- /* store in db */
- udev_list_entry_set_flag(entry, 1);
+ /* store in db, skip private keys */
+ if (name[0] != '.')
+ udev_list_entry_set_flag(entry, 1);
} else {
udev_device_add_property(event->dev, name, NULL);
}
} else {
udev_device_add_property(event->dev, name, NULL);
}