+ struct udev_list_entry *entry;
+
+ entry = udev_device_get_properties_list_entry(device);
+ while (entry) {
+ const char *name = udev_list_entry_get_name(entry);
+ const char *value = udev_list_entry_get_value(entry);
+
+ if (g_str_has_prefix(name, "CONNMAN") == TRUE ||
+ g_str_equal(name, "DEVNAME") == TRUE ||
+ g_str_equal(name, "DEVPATH") == TRUE)
+ connman_debug("%s%s = %s", prefix, name, value);
+
+ entry = udev_list_entry_get_next(entry);
+ }
+}
+
+static void print_device(struct udev_device *device, const char *action)
+{
+ struct udev_device *parent;
+
+ connman_debug("=== %s ===", action);
+ print_properties(device, "");
+
+ parent = udev_device_get_parent_with_devtype(device, "usb_device");
+ print_properties(parent, " ");
+}
+
+static void enumerate_devices(struct udev *context)
+{
+ struct udev_enumerate *enumerate;
+ struct udev_list_entry *entry;
+
+ enumerate = udev_enumerate_new(context);
+ if (enumerate == NULL)
+ return;
+
+ udev_enumerate_add_match_property(enumerate, "CONNMAN_TYPE", "?*");
+
+ udev_enumerate_scan_devices(enumerate);
+
+ entry = udev_enumerate_get_list_entry(enumerate);
+ while (entry) {
+ const char *syspath = udev_list_entry_get_name(entry);
+ struct udev_device *device;
+
+ device = udev_device_new_from_syspath(context, syspath);
+
+ print_device(device, "coldplug");
+
+ udev_device_unref(device);
+
+ entry = udev_list_entry_get_next(entry);
+ }
+
+ udev_enumerate_unref(enumerate);