chiark / gitweb /
[PATCH] allow to specify node permissions in the rule
[elogind.git] / udevinfo.c
index defed2ee31a96e38aeaae3d0346323d2af778097..ffc5e31f04ac58bbbeb24909c3dd954bcafe256f 100644 (file)
@@ -41,7 +41,7 @@ char **main_argv;
 int main_argc;
 
 #ifdef LOG
-unsigned char logname[42];
+unsigned char logname[LOGNAME_SIZE];
 void log_message (int level, const char *format, ...)
 {
        va_list args;
@@ -122,7 +122,8 @@ enum query_type {
        SYMLINK,
        MODE,
        OWNER,
-       GROUP
+       GROUP,
+       ALL
 };
 
 static int print_device_chain(const char *path)
@@ -148,7 +149,14 @@ static int print_device_chain(const char *path)
                retval = -1;
                goto exit;
        }
-       printf("\ndevice '%s' has major:minor %s", class_dev->path, attr->value);
+
+       printf("\nudevinfo starts with the device the node belongs to and then walks up the\n"
+              "device chain, to print for every device found, all possibly useful attributes\n"
+              "in the udev key format.\n"
+              "Only attributes within one device section may be used together in one rule,\n"
+              "to match the device for which the node will be created.\n"
+              "\n");
+       printf("device '%s' has major:minor %s", class_dev->path, attr->value);
        sysfs_close_attribute(attr);
 
        /* open sysfs class device directory and print all attributes */
@@ -258,6 +266,11 @@ static int process_options(void)
                                break;
                        }
 
+                       if (strcmp(optarg, "all") == 0) {
+                               query = ALL;
+                               break;
+                       }
+
                        printf("unknown query type\n");
                        exit(1);
 
@@ -366,6 +379,10 @@ print:
                        strfieldcpy(result, path);
                        break;
 
+               case ALL:
+                       print_record(path, &dev);
+                       goto exit;
+
                default:
                        goto exit;
                }
@@ -406,8 +423,10 @@ help:
               "             'owner'   of node\n"
               "             'group'   of node\n"
               "             'path'    sysfs device path\n"
+              "             'all'     all values\n"
+              "\n"
               "  -p PATH  sysfs device path used for query or chain\n"
-              "  -n NAME  node name used for query\n"
+              "  -n NAME  node/symlink name used for query\n"
               "\n"
               "  -r       print udev root\n"
               "  -a       print all SYSFS_attributes along the device chain\n"