chiark / gitweb /
tree-wide usage of %m specifier instead of strerror(errno)
[elogind.git] / src / udev / scsi_id / scsi_id.c
index 9bb0d7f538f4a28221d6497ecbe94bfc0607e8e7..c2cc2ea48dbf6dfbd9f1a67230afec1efcb2280f 100644 (file)
@@ -53,7 +53,7 @@ static const char dev_short_options[] = "bgp:";
 
 static int all_good;
 static int dev_specified;
-static char config_file[MAX_PATH_LEN] = SYSCONFDIR "/scsi_id.config";
+static char config_file[MAX_PATH_LEN] = "/etc/scsi_id.config";
 static enum page_code default_page_code;
 static int sg_version = 4;
 static int use_stderr;
@@ -78,7 +78,7 @@ static void set_type(const char *from, char *to, size_t len)
 {
         int type_num;
         char *eptr;
-        char *type = "generic";
+        const char *type = "generic";
 
         type_num = strtoul(from, &eptr, 0);
         if (eptr != from) {
@@ -108,7 +108,7 @@ static void set_type(const char *from, char *to, size_t len)
                         break;
                 }
         }
-        util_strscpy(to, len, type);
+        strscpy(to, len, type);
 }
 
 /*
@@ -122,10 +122,10 @@ static void set_type(const char *from, char *to, size_t len)
  */
 static char *get_value(char **buffer)
 {
-        static char *quote_string = "\"\n";
-        static char *comma_string = ",\n";
+        static const char *quote_string = "\"\n";
+        static const char *comma_string = ",\n";
         char *val;
-        char *end;
+        const char *end;
 
         if (**buffer == '"') {
                 /*
@@ -180,14 +180,12 @@ static int get_file_options(struct udev *udev,
         int c;
         int retval = 0;
 
-        dbg(udev, "vendor='%s'; model='%s'\n", vendor, model);
-        fd = fopen(config_file, "r");
+        fd = fopen(config_file, "re");
         if (fd == NULL) {
-                dbg(udev, "can't open %s\n", config_file);
                 if (errno == ENOENT) {
                         return 1;
                 } else {
-                        err(udev, "can't open %s: %s\n", config_file, strerror(errno));
+                        log_error("can't open %s: %m\n", config_file);
                         return -1;
                 }
         }
@@ -200,8 +198,7 @@ static int get_file_options(struct udev *udev,
         buffer = malloc(MAX_BUFFER_LEN);
         if (!buffer) {
                 fclose(fd);
-                err(udev, "can't allocate memory\n");
-                return -1;
+                return log_oom();
         }
 
         *newargv = NULL;
@@ -214,7 +211,7 @@ static int get_file_options(struct udev *udev,
                         break;
                 lineno++;
                 if (buf[strlen(buffer) - 1] != '\n') {
-                        err(udev, "Config file line %d too long\n", lineno);
+                        log_error("Config file line %d too long\n", lineno);
                         break;
                 }
 
@@ -229,21 +226,20 @@ static int get_file_options(struct udev *udev,
                 if (*buf == '#')
                         continue;
 
-                dbg(udev, "lineno %d: '%s'\n", lineno, buf);
                 str1 = strsep(&buf, "=");
-                if (str1 && strcasecmp(str1, "VENDOR") == 0) {
+                if (str1 && strcaseeq(str1, "VENDOR")) {
                         str1 = get_value(&buf);
                         if (!str1) {
-                                retval = -1;
+                                retval = log_oom();
                                 break;
                         }
                         vendor_in = str1;
 
                         str1 = strsep(&buf, "=");
-                        if (str1 && strcasecmp(str1, "MODEL") == 0) {
+                        if (str1 && strcaseeq(str1, "MODEL")) {
                                 str1 = get_value(&buf);
                                 if (!str1) {
-                                        retval = -1;
+                                        retval = log_oom();
                                         break;
                                 }
                                 model_in = str1;
@@ -251,34 +247,30 @@ static int get_file_options(struct udev *udev,
                         }
                 }
 
-                if (str1 && strcasecmp(str1, "OPTIONS") == 0) {
+                if (str1 && strcaseeq(str1, "OPTIONS")) {
                         str1 = get_value(&buf);
                         if (!str1) {
-                                retval = -1;
+                                retval = log_oom();
                                 break;
                         }
                         options_in = str1;
                 }
-                dbg(udev, "config file line %d:\n"
-                        " vendor '%s'; model '%s'; options '%s'\n",
-                        lineno, vendor_in, model_in, options_in);
+
                 /*
                  * Only allow: [vendor=foo[,model=bar]]options=stuff
                  */
                 if (!options_in || (!vendor_in && model_in)) {
-                        err(udev, "Error parsing config file line %d '%s'\n", lineno, buffer);
+                        log_error("Error parsing config file line %d '%s'\n", lineno, buffer);
                         retval = -1;
                         break;
                 }
                 if (vendor == NULL) {
-                        if (vendor_in == NULL) {
-                                dbg(udev, "matched global option\n");
+                        if (vendor_in == NULL)
                                 break;
-                        }
-                } else if ((vendor_in && strncmp(vendor, vendor_in,
-                                                 strlen(vendor_in)) == 0) &&
-                           (!model_in || (strncmp(model, model_in,
-                                                  strlen(model_in)) == 0))) {
+                } else if ((vendor_in && strneq(vendor, vendor_in,
+                                                 strlen(vendor_in))) &&
+                           (!model_in || (strneq(model, model_in,
+                                                  strlen(model_in))))) {
                                 /*
                                  * Matched vendor and optionally model.
                                  *
@@ -286,10 +278,7 @@ static int get_file_options(struct udev *udev,
                                  * give a partial match (that is FOO
                                  * matches FOOBAR).
                                  */
-                                dbg(udev, "matched vendor/model\n");
                                 break;
-                } else {
-                        dbg(udev, "no match\n");
                 }
         }
 
@@ -304,8 +293,7 @@ static int get_file_options(struct udev *udev,
                         c = argc_count(buffer) + 2;
                         *newargv = calloc(c, sizeof(**newargv));
                         if (!*newargv) {
-                                err(udev, "can't allocate memory\n");
-                                retval = -1;
+                                retval = log_oom();
                         } else {
                                 *argc = c;
                                 c = 0;
@@ -346,11 +334,6 @@ static int set_options(struct udev *udev,
                 if (option == -1)
                         break;
 
-                if (optarg)
-                        dbg(udev, "option '%c' arg '%s'\n", option, optarg);
-                else
-                        dbg(udev, "option '%c'\n", option);
-
                 switch (option) {
                 case 'b':
                         all_good = 0;
@@ -358,7 +341,7 @@ static int set_options(struct udev *udev,
 
                 case 'd':
                         dev_specified = 1;
-                        util_strscpy(maj_min_dev, MAX_PATH_LEN, optarg);
+                        strscpy(maj_min_dev, MAX_PATH_LEN, optarg);
                         break;
 
                 case 'e':
@@ -366,7 +349,7 @@ static int set_options(struct udev *udev,
                         break;
 
                 case 'f':
-                        util_strscpy(config_file, MAX_PATH_LEN, optarg);
+                        strscpy(config_file, MAX_PATH_LEN, optarg);
                         break;
 
                 case 'g':
@@ -389,14 +372,14 @@ static int set_options(struct udev *udev,
                         exit(0);
 
                 case 'p':
-                        if (strcmp(optarg, "0x80") == 0) {
+                        if (streq(optarg, "0x80")) {
                                 default_page_code = PAGE_80;
-                        } else if (strcmp(optarg, "0x83") == 0) {
+                        } else if (streq(optarg, "0x83")) {
                                 default_page_code = PAGE_83;
-                        } else if (strcmp(optarg, "pre-spc3-83") == 0) {
+                        } else if (streq(optarg, "pre-spc3-83")) {
                                 default_page_code = PAGE_83_PRE_SPC3;
                         } else {
-                                err(udev, "Unknown page code '%s'\n", optarg);
+                                log_error("Unknown page code '%s'\n", optarg);
                                 return -1;
                         }
                         break;
@@ -404,7 +387,7 @@ static int set_options(struct udev *udev,
                 case 's':
                         sg_version = atoi(optarg);
                         if (sg_version < 3 || sg_version > 4) {
-                                err(udev, "Unknown SG version '%s'\n", optarg);
+                                log_error("Unknown SG version '%s'\n", optarg);
                                 return -1;
                         }
                         break;
@@ -432,7 +415,7 @@ static int set_options(struct udev *udev,
         }
         if (optind < argc && !dev_specified) {
                 dev_specified = 1;
-                util_strscpy(maj_min_dev, MAX_PATH_LEN, argv[optind]);
+                strscpy(maj_min_dev, MAX_PATH_LEN, argv[optind]);
         }
         return 0;
 }
@@ -456,11 +439,6 @@ static int per_dev_options(struct udev *udev,
                 if (option == -1)
                         break;
 
-                if (optarg)
-                        dbg(udev, "option '%c' arg '%s'\n", option, optarg);
-                else
-                        dbg(udev, "option '%c'\n", option);
-
                 switch (option) {
                 case 'b':
                         *good_bad = 0;
@@ -471,20 +449,20 @@ static int per_dev_options(struct udev *udev,
                         break;
 
                 case 'p':
-                        if (strcmp(optarg, "0x80") == 0) {
+                        if (streq(optarg, "0x80")) {
                                 *page_code = PAGE_80;
-                        } else if (strcmp(optarg, "0x83") == 0) {
+                        } else if (streq(optarg, "0x83")) {
                                 *page_code = PAGE_83;
-                        } else if (strcmp(optarg, "pre-spc3-83") == 0) {
+                        } else if (streq(optarg, "pre-spc3-83")) {
                                 *page_code = PAGE_83_PRE_SPC3;
                         } else {
-                                err(udev, "Unknown page code '%s'\n", optarg);
+                                log_error("Unknown page code '%s'\n", optarg);
                                 retval = -1;
                         }
                         break;
 
                 default:
-                        err(udev, "Unknown or bad option '%c' (0x%x)\n", option, option);
+                        log_error("Unknown or bad option '%c' (0x%x)\n", option, option);
                         retval = -1;
                         break;
                 }
@@ -540,7 +518,6 @@ static int scsi_id(struct udev *udev, char *maj_min_dev)
 
         /* get per device (vendor + model) options from the config file */
         per_dev_options(udev, &dev_scsi, &good_dev, &page_code);
-        dbg(udev, "per dev options: good %d; page code 0x%x\n", good_dev, page_code);
         if (!good_dev) {
                 retval = 1;
                 goto out;
@@ -616,7 +593,7 @@ int main(int argc, char **argv)
         if (udev == NULL)
                 goto exit;
 
-        udev_log_init("scsi_id");
+        log_open();
         udev_set_log_fn(udev, log_fn);
 
         /*
@@ -643,7 +620,7 @@ int main(int argc, char **argv)
                 exit(1);
 
         if (!dev_specified) {
-                err(udev, "no device specified\n");
+                log_error("no device specified\n");
                 retval = 1;
                 goto exit;
         }
@@ -652,6 +629,6 @@ int main(int argc, char **argv)
 
 exit:
         udev_unref(udev);
-        udev_log_close();
+        log_close();
         return retval;
 }