r = sd_bus_process(a, &m);
if (ERRNO_IS_NEG_DISCONNECT(r)) /* Treat 'connection reset by peer' as clean exit condition */
- break;
+ return 0;
if (r < 0)
return log_error_errno(r, "Failed to process bus a: %m");
if (m) {
if (sd_bus_message_is_signal(m, "org.freedesktop.DBus.Local", "Disconnected"))
- break;
+ return 0;
r = sd_bus_send(b, m, NULL);
if (r < 0)
r = sd_bus_process(b, &m);
if (ERRNO_IS_NEG_DISCONNECT(r)) /* Treat 'connection reset by peer' as clean exit condition */
- break;
+ return 0;
if (r < 0)
return log_error_errno(r, "Failed to process bus: %m");
if (m) {
if (sd_bus_message_is_signal(m, "org.freedesktop.DBus.Local", "Disconnected"))
- break;
+ return 0;
r = sd_bus_send(a, m, NULL);
if (r < 0)
if (r < 0 && !ERRNO_IS_TRANSIENT(r)) /* don't be bothered by signals, i.e. EINTR */
return log_error_errno(r, "ppoll() failed: %m");
}
-
- return 0;
}
DEFINE_MAIN_FUNCTION(run);