示例#1
0
void
version_init(void)
{
	disco_add_feature(XMLNS_VERSION);
	settings_add_bool("xmpp", "xmpp_send_version", TRUE);
	command_bind_xmpp("ver", NULL, (SIGNAL_FUNC)cmd_ver);
	signal_add("xmpp recv iq", sig_recv_iq);
}
示例#2
0
void
vcard_init(void)
{
	disco_add_feature(XMLNS_VCARD);
	command_bind_xmpp("vcard", NULL, (SIGNAL_FUNC)cmd_vcard);
	command_bind_xmpp("whois", NULL, (SIGNAL_FUNC)cmd_vcard);
	signal_add("xmpp recv iq", sig_recv_iq);
}
示例#3
0
void
disco_init(void)
{
	my_features = NULL;
	disco_add_feature(XMLNS_DISCO);
	signal_add("server connected", sig_connected);
	signal_add("server disconnected", sig_disconnected);
	signal_add("xmpp recv iq", sig_recv_iq);
}
示例#4
0
void
registration_init(void)
{
	register_data = NULL;
	command_bind("xmppregister", NULL, (SIGNAL_FUNC)cmd_xmppregister);
	command_bind("xmppunregister", NULL, (SIGNAL_FUNC)cmd_xmppunregister);
	command_set_options("xmppunregister", "yes");
	command_bind("xmpppasswd", NULL, (SIGNAL_FUNC)cmd_xmpppasswd);
	command_set_options("xmpppasswd", "yes");
	disco_add_feature(XMLNS_REGISTRATION);
}
示例#5
0
void
composing_init(void)
{
	composings = datalist_new(freedata_func);
	disco_add_feature(XMLNS_EVENT);
	signal_add("xmpp composing start", sig_composing_start);
	signal_add("xmpp composing stop", sig_composing_stop);
	signal_add("xmpp composing show", sig_composing_show);
	signal_add("xmpp composing hide", sig_composing_hide);
	signal_add("xmpp recv message", sig_recv_message);
	signal_add("xmpp send message", sig_send_message);
	signal_add("xmpp presence offline", sig_offline);
	signal_add("server disconnected", sig_disconnected);
}
示例#6
0
void
api_disco_add_feature(char *plugin_name, char *feature)
{
    if (feature == NULL) {
        return;
    }

    disco_add_feature(plugin_name, feature);

    caps_reset_ver();

    // resend presence to update server's disco info data for this client
    if (connection_get_status() == JABBER_CONNECTED) {
        resource_presence_t last_presence = accounts_get_last_presence(session_get_account_name());
        cl_ev_presence_send(last_presence, connection_get_presence_msg(), 0);
    }
}
示例#7
0
void
muc_init(void)
{
	CHAT_PROTOCOL_REC *chat;

	if ((chat = chat_protocol_find(XMPP_PROTOCOL_NAME)) != NULL)
		chat->channel_create = (CHANNEL_REC *(*)
		    (SERVER_REC *, const char *, const char *, int))muc_create;

	disco_add_feature(XMLNS_MUC);
	muc_commands_init();
	muc_events_init();
	muc_nicklist_init();
	muc_reconnect_init();

	signal_add("xmpp features", sig_features);
	signal_add("channel created", sig_channel_created);
	signal_add("channel destroyed", sig_channel_destroyed);
	signal_add("server connected", sig_connected);
	signal_add("xmpp set presence", sig_set_presence);

	settings_add_int("xmpp_lookandfeel", "xmpp_history_maxstanzas", 30);
}
示例#8
0
void
delay_init(void)
{
	disco_add_feature(XMLNS_DELAY);
	signal_add_first("xmpp recv message", sig_recv_message);
}