* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
#include <stddef.h>
-#include <string.h>
#include <stdio.h>
+#include <string.h>
#include <unistd.h>
-#include <getopt.h>
-#include <errno.h>
-#include <fcntl.h>
-#include "udev.h"
+#include "string-util.h"
#include "udev-util.h"
+#include "udev.h"
#include "udevadm-util.h"
#include "util.h"
} device_type = TYPE_DEVICES;
const char *action = "change";
_cleanup_udev_enumerate_unref_ struct udev_enumerate *udev_enumerate = NULL;
- int c;
+ int c, r;
udev_enumerate = udev_enumerate_new(udev);
if (udev_enumerate == NULL)
break;
case 's':
- udev_enumerate_add_match_subsystem(udev_enumerate, optarg);
+ r = udev_enumerate_add_match_subsystem(udev_enumerate, optarg);
+ if (r < 0) {
+ log_error_errno(r, "could not add subsystem match '%s': %m", optarg);
+ return 2;
+ }
break;
case 'S':
- udev_enumerate_add_nomatch_subsystem(udev_enumerate, optarg);
+ r = udev_enumerate_add_nomatch_subsystem(udev_enumerate, optarg);
+ if (r < 0) {
+ log_error_errno(r, "could not add negative subsystem match '%s': %m", optarg);
+ return 2;
+ }
break;
case 'a':
key = keyval(optarg, &val, buf, sizeof(buf));
- udev_enumerate_add_match_sysattr(udev_enumerate, key, val);
+ r = udev_enumerate_add_match_sysattr(udev_enumerate, key, val);
+ if (r < 0) {
+ log_error_errno(r, "could not add sysattr match '%s=%s': %m", key, val);
+ return 2;
+ }
break;
case 'A':
key = keyval(optarg, &val, buf, sizeof(buf));
- udev_enumerate_add_nomatch_sysattr(udev_enumerate, key, val);
+ r = udev_enumerate_add_nomatch_sysattr(udev_enumerate, key, val);
+ if (r < 0) {
+ log_error_errno(r, "could not add negative sysattr match '%s=%s': %m", key, val);
+ return 2;
+ }
break;
case 'p':
key = keyval(optarg, &val, buf, sizeof(buf));
- udev_enumerate_add_match_property(udev_enumerate, key, val);
+ r = udev_enumerate_add_match_property(udev_enumerate, key, val);
+ if (r < 0) {
+ log_error_errno(r, "could not add property match '%s=%s': %m", key, val);
+ return 2;
+ }
break;
case 'g':
- udev_enumerate_add_match_tag(udev_enumerate, optarg);
+ r = udev_enumerate_add_match_tag(udev_enumerate, optarg);
+ if (r < 0) {
+ log_error_errno(r, "could not add tag match '%s': %m", optarg);
+ return 2;
+ }
break;
case 'y':
- udev_enumerate_add_match_sysname(udev_enumerate, optarg);
+ r = udev_enumerate_add_match_sysname(udev_enumerate, optarg);
+ if (r < 0) {
+ log_error_errno(r, "could not add sysname match '%s': %m", optarg);
+ return 2;
+ }
break;
case 'b': {
_cleanup_udev_device_unref_ struct udev_device *dev;
return 2;
}
- udev_enumerate_add_match_parent(udev_enumerate, dev);
+ r = udev_enumerate_add_match_parent(udev_enumerate, dev);
+ if (r < 0) {
+ log_error_errno(r, "could not add parent match '%s': %m", optarg);
+ return 2;
+ }
break;
}
return 2;
}
- udev_enumerate_add_match_parent(udev_enumerate, dev);
+ r = udev_enumerate_add_match_parent(udev_enumerate, dev);
+ if (r < 0) {
+ log_error_errno(r, "could not add parent match '%s': %m", optarg);
+ return 2;
+ }
break;
}
return 2;
}
- udev_enumerate_add_match_parent(udev_enumerate, dev);
+ r = udev_enumerate_add_match_parent(udev_enumerate, dev);
+ if (r < 0) {
+ log_error_errno(r, "could not add tag match '%s': %m", optarg);
+ return 2;
+ }
}
switch (device_type) {