*
* Copyright (c) 2005 SUSE Linux Products GmbH, Germany
*
- * Author:
- * Hannes Reinecke <hare@suse.de>
+ * Author: Hannes Reinecke <hare@suse.de>
*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation version 2 of the License.
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include <errno.h>
#include <getopt.h>
-#include "../../udev/udev.h"
+#include "libudev.h"
+#include "libudev-private.h"
int debug;
break;
}
}
- util_strlcpy(to, type, len);
+ util_strscpy(to, len, type);
return type_num;
}
break;
}
}
- util_strlcpy(to, type, len);
+ util_strscpy(to, len, type);
}
#define USB_DT_DEVICE 0x01
const char *if_class, *if_subclass;
int if_class_num;
int protocol = 0;
- const char *str;
dbg(udev, "syspath %s\n", udev_device_get_syspath(dev));
};
struct udev *udev;
struct udev_device *dev = NULL;
- char syspath[UTIL_PATH_SIZE];
- const char *devpath;
static int export;
int retval = 0;
if (udev == NULL)
goto exit;
- logging_init("usb_id");
+ udev_log_init("usb_id");
udev_set_log_fn(udev, log_fn);
while (1) {
export = 1;
break;
case 'h':
- printf("Usage: usb_id [--usb-info] [--num-info] [--export] [--help] <devpath>\n"
+ printf("Usage: usb_id [--usb-info] [--num-info] [--export] [--help] [<devpath>]\n"
" --usb-info use usb strings instead\n"
" --num-info use numerical values\n"
" --export print values as environment keys\n"
}
}
- devpath = argv[optind];
- if (devpath == NULL) {
- fprintf(stderr, "No device specified\n");
- retval = 1;
- goto exit;
- }
-
- util_strlcpy(syspath, udev_get_sys_path(udev), sizeof(syspath));
- util_strlcat(syspath, devpath, sizeof(syspath));
- dev = udev_device_new_from_syspath(udev, syspath);
+ dev = udev_device_new_from_environment(udev);
if (dev == NULL) {
- err(udev, "unable to access '%s'\n", devpath);
- return 1;
+ char syspath[UTIL_PATH_SIZE];
+ const char *devpath;
+
+ devpath = argv[optind];
+ if (devpath == NULL) {
+ fprintf(stderr, "missing device\n");
+ retval = 1;
+ goto exit;
+ }
+
+ util_strscpyl(syspath, sizeof(syspath), udev_get_sys_path(udev), devpath, NULL);
+ dev = udev_device_new_from_syspath(udev, syspath);
+ if (dev == NULL) {
+ err(udev, "unable to access '%s'\n", devpath);
+ retval = 1;
+ goto exit;
+ return 1;
+ }
}
retval = usb_id(dev);
if (retval == 0) {
char serial[256];
+ size_t l;
+ char *s;
- util_strlcpy(serial, vendor_str, sizeof(serial));
- util_strlcat(serial, "_", sizeof(serial));
- util_strlcat(serial, model_str, sizeof(serial));
- if (serial_str[0] != '\0') {
- util_strlcat(serial, "_", sizeof(serial));
- util_strlcat(serial, serial_str, sizeof(serial));
- }
- if (instance_str[0] != '\0') {
- util_strlcat(serial, "-", sizeof(serial));
- util_strlcat(serial, instance_str, sizeof(serial));
- }
+ s = serial;
+ l = util_strpcpyl(&s, sizeof(serial), vendor_str, "_", model_str, NULL);
+ if (serial_str[0] != '\0')
+ l = util_strpcpyl(&s, l, "_", serial_str, NULL);
+ if (instance_str[0] != '\0')
+ util_strpcpyl(&s, l, "-", instance_str, NULL);
if (export) {
printf("ID_VENDOR=%s\n", vendor_str);
exit:
udev_device_unref(dev);
udev_unref(udev);
- logging_close();
+ udev_log_close();
return retval;
}