if (m->header->type == SD_BUS_MESSAGE_METHOD_CALL)
sd_bus_error_setf(&error, SD_BUS_ERROR_SERVICE_UNKNOWN, "Destination %s not known", m->destination);
- else
+ else {
+ log_debug("Could not deliver message to %s as destination is not known. Ignoring.", m->destination);
return 0;
+ }
} else if (errno == EADDRNOTAVAIL) {
if (m->header->type == SD_BUS_MESSAGE_METHOD_CALL)
sd_bus_error_setf(&error, SD_BUS_ERROR_SERVICE_UNKNOWN, "Activation of %s not requested", m->destination);
- else
+ else {
+ log_debug("Could not deliver message to %s as destination is not activated. Ignoring.", m->destination);
return 0;
+ }
} else
return -errno;
/* Anybody can send us invalid messages, let's just drop them. */
if (r == -EBADMSG || r == -EPROTOTYPE) {
- log_error("Ignoring invalid message: %s", strerror(-r));
+ log_debug("Ignoring invalid message: %s", strerror(-r));
r = 0;
}
return fd;
}
+
+int bus_kernel_monitor(sd_bus *bus) {
+ struct kdbus_cmd_monitor cmd_monitor;
+ int r;
+
+ assert(bus);
+
+ cmd_monitor.id = 0;
+ cmd_monitor.flags = KDBUS_MONITOR_ENABLE;
+
+ r = ioctl(bus->input_fd, KDBUS_CMD_MONITOR, &cmd_monitor);
+ if (r < 0)
+ return -errno;
+
+ return 1;
+}