chiark / gitweb /
[PATCH] 014_bk mark
[elogind.git] / udev_config.c
index 262108dff7d25a09dcbcf6062928b5552ed40df6..e75ee3a3468995290d7bf2142c47833604422466 100644 (file)
 
 #include "udev.h"
 #include "udev_version.h"
+#include "logging.h"
 #include "namedev.h"
 #include "libsysfs/libsysfs.h"
 
 /* global variables */
 char sysfs_path[SYSFS_PATH_MAX];
-char udev_config_dir[PATH_MAX];
 char udev_root[PATH_MAX];
 char udev_db_filename[PATH_MAX+NAME_MAX];
-char udev_permission_filename[PATH_MAX+NAME_MAX];
+char udev_permissions_filename[PATH_MAX+NAME_MAX];
 char udev_rules_filename[PATH_MAX+NAME_MAX];
 char udev_config_filename[PATH_MAX+NAME_MAX];
-char default_mode_str[NAME_MAX];
+char default_mode_str[MODE_SIZE];
+char default_owner_str[OWNER_SIZE];
+char default_group_str[GROUP_SIZE];
 
 
 static void init_variables(void)
 {
+       /* fill up the defaults.  
+        * If any config values are specified, they will
+        * override these values. */
        strfieldcpy(udev_root, UDEV_ROOT);
-       strfieldcpy(udev_config_dir, UDEV_CONFIG_DIR);
+       strfieldcpy(udev_db_filename, UDEV_DB);
+       strfieldcpy(udev_config_filename, UDEV_CONFIG_FILE);
+       strfieldcpy(udev_rules_filename, UDEV_RULES_FILE);
+       strfieldcpy(udev_permissions_filename, UDEV_PERMISSION_FILE);
 }
 
 #define set_var(_name, _var)                           \
@@ -109,8 +117,10 @@ static int parse_config_file(void)
                set_var("udev_root", udev_root);
                set_var("udev_db", udev_db_filename);
                set_var("udev_rules", udev_rules_filename);
-               set_var("udev_permissions", udev_permission_filename);
+               set_var("udev_permissions", udev_permissions_filename);
                set_var("default_mode", default_mode_str);
+               set_var("default_owner", default_owner_str);
+               set_var("default_group", default_group_str);
        }
        dbg_parse("%s:%d:%Zd: error parsing '%s'", udev_config_filename,
                  lineno, temp - line, temp);
@@ -122,10 +132,6 @@ exit:
 static void get_dirs(void)
 {
        char *temp;
-       char *udev_db = UDEV_DB;
-       char *udev_config = UDEV_CONFIG_FILE;
-       char *udev_rules = UDEV_RULES_FILE;
-       char *udev_permission = UDEV_PERMISSION_FILE;
        int retval;
 
        retval = sysfs_get_mnt_path(sysfs_path, SYSFS_PATH_MAX);
@@ -139,51 +145,24 @@ static void get_dirs(void)
                temp = getenv("SYSFS_PATH");
                if (temp)
                        strfieldcpy(sysfs_path, temp);
-               temp = getenv("UDEV_CONFIG_DIR");
-               if (temp)
-                       strfieldcpy(udev_config_dir, temp);
-               temp = getenv("UDEV_ROOT");
-               if (temp)
-                       strfieldcpy(udev_root, temp);
-               temp = getenv("UDEV_DB");
-               if (temp)
-                       udev_db = temp;
                temp = getenv("UDEV_CONFIG_FILE");
                if (temp)
-                       udev_config = temp;
-               temp = getenv("UDEV_RULES_FILE");
-               if (temp)
-                       udev_rules = temp;
-               temp = getenv("UDEV_PERMISSION_FILE");
-               if (temp)
-                       udev_permission = temp;
+                       strfieldcpy(udev_config_filename, temp);
        }
        dbg("sysfs_path='%s'", sysfs_path);
 
-       strncpy(udev_db_filename, udev_root, sizeof(udev_db_filename));
-       strncat(udev_db_filename, udev_db, sizeof(udev_db_filename));
-
-       strncpy(udev_config_filename, udev_config_dir, sizeof(udev_config_filename));
-       strncat(udev_config_filename, udev_config, sizeof(udev_config_filename));
-       
-       strncpy(udev_rules_filename, udev_config_dir, sizeof(udev_permission_filename));
-       strncat(udev_rules_filename, udev_rules, sizeof(udev_permission_filename));
-
-       strncpy(udev_permission_filename, udev_config_dir, sizeof(udev_permission_filename));
-       strncat(udev_permission_filename, udev_permission, sizeof(udev_permission_filename));
-
        dbg_parse("udev_root = %s", udev_root);
        dbg_parse("udev_config_filename = %s", udev_config_filename);
        dbg_parse("udev_db_filename = %s", udev_db_filename);
        dbg_parse("udev_rules_filename = %s", udev_rules_filename);
-       dbg_parse("udev_permission_filename = %s", udev_permission_filename);
+       dbg_parse("udev_permissions_filename = %s", udev_permissions_filename);
        parse_config_file();
 
        dbg_parse("udev_root = %s", udev_root);
        dbg_parse("udev_config_filename = %s", udev_config_filename);
        dbg_parse("udev_db_filename = %s", udev_db_filename);
        dbg_parse("udev_rules_filename = %s", udev_rules_filename);
-       dbg_parse("udev_permission_filename = %s", udev_permission_filename);
+       dbg_parse("udev_permissions_filename = %s", udev_permissions_filename);
 }
 
 void udev_init_config(void)