00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef lint
00021 static const char rcsid[] = "$Id: binds.c,v 1.17 2005-03-03 18:45:26 stdarg Exp $";
00022 #endif
00023
00024 #include "server.h"
00025
00038 bind_table_t *BT_wall = NULL;
00039
00056 bind_table_t *BT_raw = NULL;
00057
00071 bind_table_t *BT_server_input = NULL;
00072
00086 bind_table_t *BT_server_output = NULL;
00087
00099 bind_table_t *BT_notice = NULL;
00100
00120 bind_table_t *BT_msg = NULL;
00121 bind_table_t *BT_msgm = NULL;
00122 bind_table_t *BT_pub = NULL;
00123 bind_table_t *BT_pubm = NULL;
00124 bind_table_t *BT_ctcp = NULL;
00125 bind_table_t *BT_ctcr = NULL;
00126 bind_table_t *BT_dcc_chat = NULL;
00127 bind_table_t *BT_dcc_recv = NULL;
00128 bind_table_t *BT_nick = NULL;
00129 bind_table_t *BT_join = NULL;
00130 bind_table_t *BT_part = NULL;
00131 bind_table_t *BT_quit = NULL;
00132 bind_table_t *BT_kick = NULL;
00133 bind_table_t *BT_leave = NULL;
00134 bind_table_t *BT_mode = NULL;
00135 bind_table_t *BT_chanset = NULL;
00136
00137 void server_binds_destroy()
00138 {
00139 bind_table_del(BT_wall);
00140 bind_table_del(BT_raw);
00141 bind_table_del(BT_server_input);
00142 bind_table_del(BT_server_output);
00143 bind_table_del(BT_notice);
00144 bind_table_del(BT_msgm);
00145 bind_table_del(BT_msg);
00146 bind_table_del(BT_pubm);
00147 bind_table_del(BT_pub);
00148 bind_table_del(BT_ctcr);
00149 bind_table_del(BT_ctcp);
00150 bind_table_del(BT_dcc_chat);
00151 bind_table_del(BT_dcc_recv);
00152 bind_table_del(BT_nick);
00153 bind_table_del(BT_join);
00154 bind_table_del(BT_part);
00155 bind_table_del(BT_quit);
00156 bind_table_del(BT_kick);
00157 bind_table_del(BT_leave);
00158 bind_table_del(BT_mode);
00159 bind_table_del(BT_chanset);
00160 }
00161
00162 void server_binds_init()
00163 {
00164
00165 BT_wall = bind_table_add("wall", 2, "ss", MATCH_MASK, BIND_STACKABLE);
00166 BT_raw = bind_table_add("raw", 6, "ssUsiS", MATCH_MASK, BIND_STACKABLE);
00167 BT_server_input = bind_table_add("server_input", 1, "s", MATCH_NONE, BIND_STACKABLE | BIND_BREAKABLE);
00168 BT_server_output = bind_table_add("server_output", 1, "s", MATCH_NONE, BIND_STACKABLE | BIND_BREAKABLE);
00169 BT_notice = bind_table_add("notice", 5, "ssUss", MATCH_MASK | MATCH_FLAGS_OR, BIND_STACKABLE);
00170 BT_msg = bind_table_add("msg", 4, "ssUs", MATCH_EXACT, 0);
00171 BT_msgm = bind_table_add("msgm", 4, "ssUs", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00172 BT_pub = bind_table_add("pub", 5, "ssUss", MATCH_EXACT, 0);
00173 BT_pubm = bind_table_add("pubm", 5, "ssUss", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00174 BT_ctcr = bind_table_add("ctcr", 6, "ssUsss", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00175 BT_ctcp = bind_table_add("ctcp", 6, "ssUsss", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00176 BT_dcc_chat = bind_table_add("dcc_chat", 6, "ssUssi", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00177 BT_dcc_recv = bind_table_add("dcc_recv", 7, "ssUssii", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00178 BT_nick = bind_table_add("nick", 4, "ssUs", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00179 BT_join = bind_table_add("join", 4, "ssUs", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00180 BT_part = bind_table_add("part", 5, "ssUss", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00181 BT_quit = bind_table_add("quit", 4, "ssUs", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00182 BT_kick = bind_table_add("kick", 5, "ssUss", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00183 BT_leave = bind_table_add("leave", 4, "ssUs", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00184 BT_mode = bind_table_add("mode", 6, "ssUsss", MATCH_MASK | MATCH_FLAGS, BIND_STACKABLE);
00185
00186 BT_chanset = bind_table_add("chanset", 4, "ssss", MATCH_MASK, BIND_STACKABLE);
00187
00188 bind_add_list("ctcp", ctcp_dcc_binds);
00189 }