chiark / gitweb /
Merge nss-myhostname
[elogind.git] / src / udev / udev-rules.c
index e3bc95f391005b5cdee500de83ba300dae94d42e..9743243a3777f9f98f5df6dcae348c778936c1f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2012 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2003-2012 Kay Sievers <kay@vrfy.org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ struct uid_gid {
 struct udev_rules {
         struct udev *udev;
         char **dirs;
-        unsigned long long *dirs_ts_usec;
+        usec_t *dirs_ts_usec;
         int resolve_names;
 
         /* every key in the rules file becomes a token */
@@ -1600,7 +1600,7 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
         if (!rules->strbuf)
                 return udev_rules_unref(rules);
 
-        rules->dirs = strv_new(SYSCONFDIR "/udev/rules.d",
+        rules->dirs = strv_new("/etc/udev/rules.d",
                                "/run/udev/rules.d",
                                UDEVLIBEXECDIR "/rules.d",
                                NULL);
@@ -1691,7 +1691,7 @@ bool udev_rules_check_timestamp(struct udev_rules *rules)
                 if (stat(rules->dirs[i], &stats) < 0)
                         continue;
 
-                if (rules->dirs_ts_usec[i] == ts_usec(&stats.st_mtim))
+                if (rules->dirs_ts_usec[i] == timespec_load(&stats.st_mtim))
                         continue;
 
                 /* first check */
@@ -1701,7 +1701,7 @@ bool udev_rules_check_timestamp(struct udev_rules *rules)
                 }
 
                 /* update timestamp */
-                rules->dirs_ts_usec[i] = ts_usec(&stats.st_mtim);
+                rules->dirs_ts_usec[i] = timespec_load(&stats.st_mtim);
         }
 out:
         return changed;
@@ -2224,6 +2224,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
                         if (cur->key.op == OP_ASSIGN_FINAL)
                                 event->owner_final = true;
                         udev_event_apply_format(event, rules_str(rules, cur->key.value_off), owner, sizeof(owner));
+                        event->owner_set = true;
                         event->uid = util_lookup_user(event->udev, owner);
                         log_debug("OWNER %u %s:%u\n",
                                   event->uid,
@@ -2239,6 +2240,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
                         if (cur->key.op == OP_ASSIGN_FINAL)
                                 event->group_final = true;
                         udev_event_apply_format(event, rules_str(rules, cur->key.value_off), group, sizeof(group));
+                        event->group_set = true;
                         event->gid = util_lookup_group(event->udev, group);
                         log_debug("GROUP %u %s:%u\n",
                                   event->gid,
@@ -2274,6 +2276,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
                                 break;
                         if (cur->key.op == OP_ASSIGN_FINAL)
                                 event->owner_final = true;
+                        event->owner_set = true;
                         event->uid = cur->key.uid;
                         log_debug("OWNER %u %s:%u\n",
                                   event->uid,
@@ -2285,6 +2288,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
                                 break;
                         if (cur->key.op == OP_ASSIGN_FINAL)
                                 event->group_final = true;
+                        event->group_set = true;
                         event->gid = cur->key.gid;
                         log_debug("GROUP %u %s:%u\n",
                                   event->gid,