1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-09 03:03:12 +02:00

relay: add signals "relay_client_xxx" for client status changes (closes #2)

New signals:
- relay_client_connecting
- relay_client_waiting_auth
- relay_client_connected
- relay_client_auth_failed
- relay_client_disconnected
This commit is contained in:
Sebastien Helleu
2014-03-05 11:43:32 +01:00
parent 7115f8306a
commit 0995eb334f
6 changed files with 135 additions and 1 deletions
+24 -1
View File
@@ -46,10 +46,14 @@
#include "relay-websocket.h"
char *relay_client_status_string[] = /* strings for status */
char *relay_client_status_string[] = /* status strings for display */
{ N_("connecting"), N_("waiting auth"),
N_("connected"), N_("auth failed"), N_("disconnected")
};
char *relay_client_status_name[] = /* name of status (for signal/info) */
{ "connecting", "waiting_auth",
"connected", "auth_failed", "disconnected"
};
char *relay_client_data_type_string[] = /* strings for data types */
{ "text", "binary" };
@@ -133,6 +137,21 @@ relay_client_search_by_id (int id)
return NULL;
}
/*
* Sends a signal with the status of client ("relay_client_xxx").
*/
void
relay_client_send_signal (struct t_relay_client *client)
{
char signal[128];
snprintf (signal, sizeof (signal),
"relay_client_%s",
relay_client_status_name[client->status]);
weechat_hook_signal_send (signal, WEECHAT_HOOK_SIGNAL_POINTER, client);
}
/*
* Sets description for a client.
*/
@@ -1139,6 +1158,8 @@ relay_client_new (int sock, const char *address, struct t_relay_server *server)
relay_buffer_open ();
}
relay_client_send_signal (new_client);
relay_buffer_refresh (WEECHAT_HOTLIST_PRIVATE);
}
else
@@ -1317,6 +1338,8 @@ relay_client_set_status (struct t_relay_client *client,
gnutls_deinit (client->gnutls_sess);
#endif
}
relay_client_send_signal (client);
}
relay_buffer_refresh (WEECHAT_HOTLIST_MESSAGE);