chiark / gitweb /
[PATCH] 030 release
[elogind.git] / udev_lib.c
index db1096ebf7b7254847c98f521d44e462cd373961..8f6aa4237734a906c609484c0b8e6626cc7ecbc8 100644 (file)
@@ -58,15 +58,15 @@ char *get_devpath(void)
        return devpath;
 }
 
-char *get_devnode(void)
+char *get_devname(void)
 {
-       char *devnode;
+       char *devname;
 
-       devnode = getenv("DEVNODE");
-       if (devnode != NULL && strlen(devnode) > NAME_SIZE)
-               devnode[NAME_SIZE-1] = '\0';
+       devname = getenv("DEVNAME");
+       if (devname != NULL && strlen(devname) > NAME_SIZE)
+               devname[NAME_SIZE-1] = '\0';
 
-       return devnode;
+       return devname;
 }
 
 char *get_seqnum(void)
@@ -124,11 +124,13 @@ int file_map(const char *filename, char **buf, size_t *bufsize)
        }
 
        if (fstat(fd, &stats) < 0) {
+               close(fd);
                return -1;
        }
 
        *buf = mmap(NULL, stats.st_size, PROT_READ, MAP_SHARED, fd, 0);
        if (*buf == MAP_FAILED) {
+               close(fd);
                return -1;
        }
        *bufsize = stats.st_size;
@@ -152,6 +154,26 @@ size_t buf_get_line(char *buf, size_t buflen, size_t cur)
        return count - cur;
 }
 
+void leading_slash(char *path)
+{
+       int len;
+
+       len = strlen(path);
+       if (len > 0 && path[len-1] != '/') {
+               path[len] = '/';
+               path[len+1] = '\0';
+       }
+}
+
+void no_leading_slash(char *path)
+{
+       int len;
+
+       len = strlen(path);
+       if (len > 0 && path[len-1] == '/')
+               path[len-1] = '\0';
+}
+
 struct files {
        struct list_head list;
        char name[NAME_SIZE];
@@ -180,7 +202,7 @@ static int file_list_insert(char *filename, struct list_head *file_list)
        return 0;
 }
 
-/* calls function for file or every file found in directory */
+/* calls function for every file found in specified directory */
 int call_foreach_file(int fnct(char *f) , char *dirname, char *suffix)
 {
        struct dirent *ent;