assert_cc(sizeof(usec_t) == sizeof(uint64_t));
r = sd_bus_process(a, &m);
+ if (ERRNO_IS_NEG_DISCONNECT(r)) /* Treat 'connection reset by peer' as clean exit condition */
+ break;
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;
+
r = sd_bus_send(b, m, NULL);
if (r < 0)
return log_error_errno(r, "Failed to send message: %m");
continue;
r = sd_bus_process(b, &m);
- if (ERRNO_IS_NEG_DISCONNECT(r))
- /* Treat 'connection reset by peer' as clean exit condition */
- return 0;
+ if (ERRNO_IS_NEG_DISCONNECT(r)) /* Treat 'connection reset by peer' as clean exit condition */
+ break;
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;
+
r = sd_bus_send(a, m, NULL);
if (r < 0)
return log_error_errno(r, "Failed to send message: %m");