From 28a7908e7372fe0e81dd439b6559bc2abe3ea6e8 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 1 Sep 2000 00:26:46 +0000 Subject: Added chat protocol register. Changed all chat_type fields to use it. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@640 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/core/irc-channels.c | 7 ++----- src/irc/core/irc-channels.h | 3 ++- src/irc/core/irc-chatnets.c | 6 ++---- src/irc/core/irc-chatnets.h | 5 +++-- src/irc/core/irc-core.c | 5 +++++ src/irc/core/irc-queries.c | 14 +------------- src/irc/core/irc-queries.h | 3 ++- src/irc/core/irc-servers-reconnect.c | 2 +- src/irc/core/irc-servers-setup.c | 6 ++---- src/irc/core/irc-servers-setup.h | 6 ++++-- src/irc/core/irc-servers.c | 4 +--- src/irc/core/irc-servers.h | 7 ++++--- src/irc/core/irc.c | 2 -- src/irc/core/module.h | 1 + 14 files changed, 30 insertions(+), 41 deletions(-) (limited to 'src/irc') diff --git a/src/irc/core/irc-channels.c b/src/irc/core/irc-channels.c index de0822bd..eb63a865 100644 --- a/src/irc/core/irc-channels.c +++ b/src/irc/core/irc-channels.c @@ -52,7 +52,7 @@ IRC_CHANNEL_REC *irc_channel_create(IRC_SERVER_REC *server, g_return_val_if_fail(name != NULL, NULL); rec = g_new0(IRC_CHANNEL_REC, 1); - rec->chat_type = module_get_uniq_id("IRC CHANNEL", 0); + rec->chat_type = IRC_PROTOCOL; rec->name = g_strdup(name); rec->server = server; if (*name == '+') rec->no_modes = TRUE; @@ -154,7 +154,7 @@ static CHANNEL_REC *irc_channel_find_server(SERVER_REC *server, for (tmp = server->channels; tmp != NULL; tmp = tmp->next) { CHANNEL_REC *rec = tmp->data; - if (rec->chat_type != server->channel_type) + if (rec->chat_type != server->chat_type) continue; if (g_strcasecmp(channel, rec->name) == 0) @@ -175,7 +175,6 @@ static void sig_connected(SERVER_REC *server) return; server->channel_find_func = (void *) irc_channel_find_server; - server->channel_type = module_get_uniq_id("IRC CHANNEL", 0);; } void irc_channels_init(void) @@ -210,6 +209,4 @@ void irc_channels_deinit(void) mode_lists_deinit(); massjoin_deinit(); irc_nicklist_deinit(); - - module_uniq_destroy("IRC CHANNEL"); } diff --git a/src/irc/core/irc-channels.h b/src/irc/core/irc-channels.h index b4040bf5..5181378f 100644 --- a/src/irc/core/irc-channels.h +++ b/src/irc/core/irc-channels.h @@ -1,12 +1,13 @@ #ifndef __IRC_CHANNELS_H #define __IRC_CHANNELS_H +#include "chat-protocols.h" #include "channels.h" #include "irc-servers.h" /* Returns IRC_CHANNEL_REC if it's IRC channel, NULL if it isn't. */ #define IRC_CHANNEL(channel) \ - MODULE_CHECK_CAST(channel, IRC_CHANNEL_REC, chat_type, "IRC CHANNEL") + PROTO_CHECK_CAST(CHANNEL(channel), IRC_CHANNEL_REC, chat_type, "IRC") #define IS_IRC_CHANNEL(channel) \ (IRC_CHANNEL(channel) ? TRUE : FALSE) diff --git a/src/irc/core/irc-chatnets.c b/src/irc/core/irc-chatnets.c index 5128d57f..4eda9401 100644 --- a/src/irc/core/irc-chatnets.c +++ b/src/irc/core/irc-chatnets.c @@ -36,7 +36,7 @@ static void ircnet_read(CONFIG_NODE *node) return; rec = g_new0(IRC_CHATNET_REC, 1); - rec->chat_type = module_get_uniq_id("IRC CHATNET", 0); + rec->chat_type = IRC_PROTOCOL; rec->max_cmds_at_once = config_node_get_int(node, "cmdmax", 0); rec->cmd_queue_speed = config_node_get_int(node, "cmdspeed", 0); @@ -87,7 +87,7 @@ void ircnet_create(IRC_CHATNET_REC *rec) { g_return_if_fail(rec != NULL); - rec->chat_type = module_get_uniq_id("IRC CHATNET", 0); + rec->chat_type = IRC_PROTOCOL; ircnet_save(rec); chatnet_create(CHATNET(rec)); @@ -127,6 +127,4 @@ void irc_chatnets_deinit(void) { signal_remove("chatnet removed", (SIGNAL_FUNC) sig_chatnet_removed); signal_remove("setup reread", (SIGNAL_FUNC) read_ircnets); - - module_uniq_destroy("IRC CHATNET"); } diff --git a/src/irc/core/irc-chatnets.h b/src/irc/core/irc-chatnets.h index 151bca8e..2890b33e 100644 --- a/src/irc/core/irc-chatnets.h +++ b/src/irc/core/irc-chatnets.h @@ -1,11 +1,12 @@ #ifndef __IRC_CHATNETS_H #define __IRC_CHATNETS_H -#include "modules.h" +#include "chat-protocols.h" +#include "chatnets.h" /* returns IRC_CHATNET_REC if it's IRC network, NULL if it isn't */ #define IRC_CHATNET(chatnet) \ - MODULE_CHECK_CAST(chatnet, IRC_CHATNET_REC, chat_type, "IRC CHATNET") + PROTO_CHECK_CAST(CHATNET(chatnet), IRC_CHATNET_REC, chat_type, "IRC") #define IS_IRC_CHATNET(chatnet) \ (IRC_CHATNET(chatnet) ? TRUE : FALSE) diff --git a/src/irc/core/irc-core.c b/src/irc/core/irc-core.c index afdc00c2..a6ff310a 100644 --- a/src/irc/core/irc-core.c +++ b/src/irc/core/irc-core.c @@ -19,6 +19,7 @@ */ #include "module.h" +#include "chat-protocols.h" #include "irc-servers.h" #include "irc-channels.h" @@ -49,6 +50,8 @@ void irc_channels_setup_deinit(void); void irc_core_init(void) { + chat_protocol_register("IRC", "Internet Relay Chat", "ircnet"); + irc_servers_init(); irc_channels_init(); irc_queries_init(); @@ -81,4 +84,6 @@ void irc_core_deinit(void) irc_channels_deinit(); irc_irc_deinit(); irc_servers_deinit(); + + chat_protocol_unregister("IRC"); } diff --git a/src/irc/core/irc-queries.c b/src/irc/core/irc-queries.c index b013d9cf..d2dfee1c 100644 --- a/src/irc/core/irc-queries.c +++ b/src/irc/core/irc-queries.c @@ -34,21 +34,13 @@ QUERY_REC *irc_query_create(IRC_SERVER_REC *server, g_return_val_if_fail(nick != NULL, NULL); rec = g_new0(QUERY_REC, 1); - rec->chat_type = module_get_uniq_id("IRC QUERY", 0); + rec->chat_type = IRC_PROTOCOL; rec->name = g_strdup(nick); rec->server = (SERVER_REC *) server; query_init(rec, automatic); return rec; } -static void sig_connected(SERVER_REC *server) -{ - if (!IS_IRC_SERVER(server)) - return; - - server->query_type = module_get_uniq_id("IRC QUERY", 0);; -} - static void event_privmsg(const char *data, IRC_SERVER_REC *server, const char *nick, const char *addr) { char *params, *target, *msg; @@ -94,16 +86,12 @@ static void event_nick(const char *data, IRC_SERVER_REC *server, const char *ori void irc_queries_init(void) { - signal_add("server connected", (SIGNAL_FUNC) sig_connected); signal_add_last("event privmsg", (SIGNAL_FUNC) event_privmsg); signal_add("event nick", (SIGNAL_FUNC) event_nick); } void irc_queries_deinit(void) { - signal_remove("server connected", (SIGNAL_FUNC) sig_connected); signal_remove("event privmsg", (SIGNAL_FUNC) event_privmsg); signal_remove("event nick", (SIGNAL_FUNC) event_nick); - - module_uniq_destroy("IRC QUERY"); } diff --git a/src/irc/core/irc-queries.h b/src/irc/core/irc-queries.h index c217c9be..ad3f0329 100644 --- a/src/irc/core/irc-queries.h +++ b/src/irc/core/irc-queries.h @@ -1,12 +1,13 @@ #ifndef __IRC_QUERIES_H #define __IRC_QUERIES_H +#include "chat-protocols.h" #include "queries.h" #include "irc-servers.h" /* Returns IRC_QUERY_REC if it's IRC query, NULL if it isn't. */ #define IRC_QUERY(query) \ - MODULE_CHECK_CAST(query, QUERY_REC, chat_type, "IRC QUERY") + PROTO_CHECK_CAST(QUERY(query), QUERY_REC, chat_type, "IRC") #define IS_IRC_QUERY(query) \ (IRC_QUERY(query) ? TRUE : FALSE) diff --git a/src/irc/core/irc-servers-reconnect.c b/src/irc/core/irc-servers-reconnect.c index 4ba1d51a..2b44ea4b 100644 --- a/src/irc/core/irc-servers-reconnect.c +++ b/src/irc/core/irc-servers-reconnect.c @@ -39,7 +39,7 @@ static void sig_server_connect_copy(SERVER_CONNECT_REC **dest, return; rec = g_new0(IRC_SERVER_CONNECT_REC, 1); - rec->chat_type = module_get_uniq_id("IRC SERVER CONNECT", 0); + rec->chat_type = IRC_PROTOCOL; rec->cmd_queue_speed = src->cmd_queue_speed; rec->max_kicks = src->max_kicks; rec->max_modes = src->max_modes; diff --git a/src/irc/core/irc-servers-setup.c b/src/irc/core/irc-servers-setup.c index 73a3fa9b..0dbd6297 100644 --- a/src/irc/core/irc-servers-setup.c +++ b/src/irc/core/irc-servers-setup.c @@ -55,7 +55,7 @@ static void sig_server_create_conn(SERVER_CONNECT_REC **conn, return; rec = g_new0(IRC_SERVER_CONNECT_REC, 1); - rec->chat_type = module_get_uniq_id("IRC SERVER CONNECT", 0); + rec->chat_type = IRC_PROTOCOL; rec->alternate_nick = g_strdup(settings_get_str("alternate_nick")); *conn = (SERVER_CONNECT_REC *) rec; @@ -150,7 +150,7 @@ static void sig_server_setup_read(SERVER_SETUP_REC **setuprec, return; rec = g_new0(IRC_SERVER_SETUP_REC, 1); - rec->chat_type = module_get_uniq_id("IRC SERVER SETUP", 0); + rec->chat_type = IRC_PROTOCOL; rec->max_cmds_at_once = config_node_get_int(node, "cmds_max_at_once", 0); rec->cmd_queue_speed = config_node_get_int(node, "cmd_queue_speed", 0); @@ -191,6 +191,4 @@ void irc_servers_setup_deinit(void) signal_remove("server setup fill chatnet", (SIGNAL_FUNC) sig_server_setup_fill_chatnet); signal_remove("server setup read", (SIGNAL_FUNC) sig_server_setup_read); signal_remove("server setup saved", (SIGNAL_FUNC) sig_server_setup_saved); - - module_uniq_destroy("IRC SERVER SETUP"); } diff --git a/src/irc/core/irc-servers-setup.h b/src/irc/core/irc-servers-setup.h index 818611fe..65739f79 100644 --- a/src/irc/core/irc-servers-setup.h +++ b/src/irc/core/irc-servers-setup.h @@ -1,10 +1,12 @@ #ifndef __IRC_SERVERS_SETUP_H #define __IRC_SERVERS_SETUP_H +#include "chat-protocols.h" +#include "servers-setup.h" #define IRC_SERVER_SETUP(server) \ - MODULE_CHECK_CAST(server, IRC_SERVER_SETUP_REC, \ - chat_type, "IRC SERVER SETUP") + PROTO_CHECK_CAST(SERVER_SETUP(server), IRC_SERVER_SETUP_REC, \ + chat_type, "IRC") #define IS_IRC_SERVER_SETUP(server) \ (IRC_SERVER_SETUP(server) ? TRUE : FALSE) diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 3f9593b8..d51f2af5 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -112,7 +112,7 @@ IRC_SERVER_REC *irc_server_connect(IRC_SERVER_CONNECT_REC *conn) if (conn->nick == NULL || *conn->nick == '\0') return NULL; server = g_new0(IRC_SERVER_REC, 1); - server->chat_type = module_get_uniq_id("IRC SERVER", 0); + server->chat_type = IRC_PROTOCOL; server->connrec = conn; if (server->connrec->port <= 0) server->connrec->port = 6667; @@ -425,6 +425,4 @@ void irc_servers_deinit(void) irc_chatnets_deinit(); irc_servers_reconnect_deinit(); servers_idle_deinit(); - - module_uniq_destroy("IRC SERVER"); } diff --git a/src/irc/core/irc-servers.h b/src/irc/core/irc-servers.h index e1fd333d..1541693f 100644 --- a/src/irc/core/irc-servers.h +++ b/src/irc/core/irc-servers.h @@ -1,15 +1,16 @@ #ifndef __IRC_SERVERS_H #define __IRC_SERVERS_H +#include "chat-protocols.h" #include "servers.h" /* returns IRC_SERVER_REC if it's IRC server, NULL if it isn't */ #define IRC_SERVER(server) \ - MODULE_CHECK_CAST(server, IRC_SERVER_REC, chat_type, "IRC SERVER") + PROTO_CHECK_CAST(SERVER(server), IRC_SERVER_REC, chat_type, "IRC") #define IRC_SERVER_CONNECT(conn) \ - MODULE_CHECK_CAST(conn, IRC_SERVER_CONNECT_REC, \ - chat_type, "IRC SERVER CONNECT") + PROTO_CHECK_CAST(SERVER_CONNECT(conn), IRC_SERVER_CONNECT_REC, \ + chat_type, "IRC") #define IS_IRC_SERVER(server) \ (IRC_SERVER(server) ? TRUE : FALSE) diff --git a/src/irc/core/irc.c b/src/irc/core/irc.c index 1b366850..3940f000 100644 --- a/src/irc/core/irc.c +++ b/src/irc/core/irc.c @@ -404,6 +404,4 @@ void irc_irc_deinit(void) signal_remove("server event", (SIGNAL_FUNC) irc_server_event); signal_remove("server connected", (SIGNAL_FUNC) irc_init_server); signal_remove("server incoming", (SIGNAL_FUNC) irc_parse_incoming_line); - - module_uniq_destroy("IRC"); } diff --git a/src/irc/core/module.h b/src/irc/core/module.h index 00599d91..a605302b 100644 --- a/src/irc/core/module.h +++ b/src/irc/core/module.h @@ -2,3 +2,4 @@ #define MODULE_NAME "irc/core" +#define IRC_PROTOCOL (chat_protocol_lookup("IRC")) -- cgit v1.2.3