void eventd_relay_server_event(EventdRelayServer *server, EventdEvent *event) { if ( server->current == event ) /* Do not send back events we just got */ return; const gchar *category; category = eventd_event_get_category(event); if ( ( category[0] != '.' ) && ( ! server->forward_all ) && ( ( server->forwards == NULL ) || ( ! g_hash_table_contains(server->forwards, category) ) ) ) return; if( ! eventd_relay_server_has_address(server) ) return; GError *error = NULL; if ( ! eventc_connection_is_connected(server->connection, &error) ) { if ( error != NULL ) { g_warning("Couldn't send event: %s", error->message); g_clear_error(&error); evhelpers_reconnect_try(server->reconnect); } return; } if ( ! eventc_connection_event(server->connection, event, &error) ) { g_warning("Couldn't send event: %s", error->message); g_clear_error(&error); evhelpers_reconnect_try(server->reconnect); return; } }
static void _eventc_send_event(void) { if ( wait_event_end ) g_signal_connect(event, "ended", G_CALLBACK(_eventc_event_end_callback), NULL); GError *error = NULL; if ( ! eventc_connection_event(client, event, &error) ) g_warning("Couldn't send event '%s', '%s': %s", eventd_event_get_category(event), eventd_event_get_name(event), error->message); if ( ! wait_event_end ) _eventc_disconnect(NULL); }