chiark / gitweb /
udevd: use libudev
[elogind.git] / udev / lib / libudev-util.c
index 7053a2f82554726508bd39110f526233b7a1259d..0ff121d774e12701c1f4fb822689222643bae4e7 100644 (file)
@@ -17,8 +17,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "config.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stddef.h>
@@ -33,7 +31,7 @@
 #include "libudev.h"
 #include "libudev-private.h"
 
-static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *syspath, char *subsystem, size_t size)
+static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size)
 {
        char path[UTIL_PATH_SIZE];
        ssize_t len;
@@ -50,7 +48,8 @@ static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *sy
        if (pos == NULL)
                return -1;
        pos = &pos[1];
-       return util_strlcpy(subsystem, pos, size);
+       info(udev, "resolved link to: '%s'\n", pos);
+       return util_strlcpy(value, pos, size);
 }
 
 ssize_t util_get_sys_subsystem(struct udev *udev, const char *syspath, char *subsystem, size_t size)
@@ -93,61 +92,6 @@ int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size)
        return 0;
 }
 
-struct util_name_entry *util_name_list_add(struct udev *udev, struct list_head *name_list,
-                                          const char *name, const char *value, int sort)
-{
-       struct util_name_entry *name_loop;
-       struct util_name_entry *name_new;
-
-       /* avoid duplicate entries */
-       list_for_each_entry(name_loop, name_list, node) {
-               if (strcmp(name_loop->name, name) == 0) {
-                       dbg(udev, "'%s' is already in the list\n", name);
-                       return name_loop;
-               }
-       }
-
-       if (sort) {
-               list_for_each_entry(name_loop, name_list, node) {
-                       if (strcmp(name_loop->name, name) > 0)
-                               break;
-               }
-       }
-
-       name_new = malloc(sizeof(struct util_name_entry));
-       if (name_new == NULL)
-               return NULL;
-       memset(name_new, 0x00, sizeof(struct util_name_entry));
-       name_new->name = strdup(name);
-       if (name_new->name == NULL) {
-               free(name_new);
-               return NULL;
-       }
-       if (value != NULL) {
-               name_new->value = strdup(value);
-               if (name_new->value == NULL) {
-                       free(name_new);
-                       return NULL;
-               }
-       }
-       dbg(udev, "adding '%s=%s'\n", name_new->name, name_new->value);
-       list_add_tail(&name_new->node, &name_loop->node);
-       return name_new;
-}
-
-void util_name_list_cleanup(struct udev *udev, struct list_head *name_list)
-{
-       struct util_name_entry *name_loop;
-       struct util_name_entry *name_tmp;
-
-       list_for_each_entry_safe(name_loop, name_tmp, name_list, node) {
-               list_del(&name_loop->node);
-               free(name_loop->name);
-               free(name_loop->value);
-               free(name_loop);
-       }
-}
-
 int util_log_priority(const char *priority)
 {
        char *endptr;