Thread: [srvx-commits] CVS: services/src hash.h,1.75,1.76 mod_common.c,1.5,1.6 mod_common.h,1.3,1.4 modules.
Brought to you by:
entrope
From: Entrope <en...@us...> - 2001-10-15 14:35:19
|
Update of /cvsroot/srvx/services/src In directory usw-pr-cvs1:/tmp/cvs-serv3807/src Modified Files: hash.h mod_common.c mod_common.h modules.c proto.c proto_bahamut.c proto_ircu_p10.c Log Message: fix some compile errors rename exported symbols in proto_*.c from <foo> to lib<foo> so they don't collide Index: hash.h =================================================================== RCS file: /cvsroot/srvx/services/src/hash.h,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -r1.75 -r1.76 *** hash.h 2001/10/12 04:03:51 1.75 --- hash.h 2001/10/15 14:35:15 1.76 *************** *** 86,90 **** /* pointers to various other bits */ ! struct service_instance *service; }; --- 86,90 ---- /* pointers to various other bits */ ! struct service *service; }; Index: mod_common.c =================================================================== RCS file: /cvsroot/srvx/services/src/mod_common.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** mod_common.c 2001/10/12 02:03:34 1.5 --- mod_common.c 2001/10/15 14:35:15 1.6 *************** *** 15,20 **** * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id$ */ --- 15,18 ---- *************** *** 69,77 **** { const char *topic, *data; ! struct service_template_common *cstn; (void)channel; ! cstn = NULL; ! if (!cstn->help) { send_message(source, bot, N_("Helpfile missing.")); return; --- 67,75 ---- { const char *topic, *data; ! struct service_common *sc; (void)channel; ! sc = NULL; ! if (!sc->help) { send_message(source, bot, N_("Helpfile missing.")); return; *************** *** 83,87 **** topic = argv[1]; } ! if (!(data = dict_find(cstn->help, topic, NULL))) { send_message(source, bot, N_("No help on that topic.")); return; --- 81,85 ---- topic = argv[1]; } ! if (!(data = dict_find(sc->help, topic, NULL))) { send_message(source, bot, N_("No help on that topic.")); return; Index: mod_common.h =================================================================== RCS file: /cvsroot/srvx/services/src/mod_common.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** mod_common.h 2001/10/10 04:51:23 1.3 --- mod_common.h 2001/10/15 14:35:15 1.4 *************** *** 15,20 **** * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id$ */ --- 15,18 ---- *************** *** 30,34 **** #define COMMON_VERSION MAKE_VERSION(COMMON_MAJOR, COMMON_MINOR, COMMON_REVISION) ! struct service_template_common { dict_t help; /* help index */ }; --- 28,32 ---- #define COMMON_VERSION MAKE_VERSION(COMMON_MAJOR, COMMON_MINOR, COMMON_REVISION) ! struct service_common { dict_t help; /* help index */ }; Index: modules.c =================================================================== RCS file: /cvsroot/srvx/services/src/modules.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -r1.19 -r1.20 *** modules.c 2001/10/12 04:15:16 1.19 --- modules.c 2001/10/15 14:35:15 1.20 *************** *** 63,66 **** --- 63,69 ---- #include <dlfcn.h> + #define SHLIB_PREFIX "lib" + #define SHLIB_SUFFIX ".so" + static struct shared_lib * module_load_shared_lib(const char *so_name) *************** *** 69,72 **** --- 72,76 ---- if (!(lib->handle = dlopen(so_name, RTLD_GLOBAL|RTLD_LAZY))) { + log(MAIN_LOG, LOG_ERROR, "Unable to load shared library %s: %s\n", so_name, dlerror()); free(lib); return NULL; *************** *** 101,107 **** if (dict_find(loaded_libs, name, NULL)) return 1; lib = module_load_shared_lib(name); if (!(lib_load = module_resolve_symbol(lib, "mod_init"))) { module_unload_shared_lib(lib); ! return 2; } module_list_init(&lib->modules); --- 105,112 ---- if (dict_find(loaded_libs, name, NULL)) return 1; lib = module_load_shared_lib(name); + if (!lib) return 2; if (!(lib_load = module_resolve_symbol(lib, "mod_init"))) { module_unload_shared_lib(lib); ! return 3; } module_list_init(&lib->modules); *************** *** 109,113 **** module_list_clean(&lib->modules); module_unload_shared_lib(lib); ! return res + 2; } dict_insert(loaded_libs, lib->name, lib); --- 114,118 ---- module_list_clean(&lib->modules); module_unload_shared_lib(lib); ! return res + 3; } dict_insert(loaded_libs, lib->name, lib); *************** *** 119,125 **** { struct module *mod; if ((mod = dict_find(loaded_modules, name, NULL))) return mod; - /* TODO: try to find a shared library that contains the module */ return mod; } --- 124,145 ---- { struct module *mod; + char path[256], *libname; + if ((mod = dict_find(loaded_modules, name, NULL))) return mod; + /* try to find a shared library that contains the module */ + /* first: what's specified in the configuration file */ + snprintf(path, sizeof(path), "modules/%s/path", name); + if ((libname = database_get_data(conf_db, path, RECDB_QSTRING))) { + module_load_library(libname); + if ((mod = dict_find(loaded_modules, name, NULL))) return mod; + } + /* second: use package library directory */ + snprintf(path, sizeof(path), PKGLIBDIR"/"SHLIB_PREFIX"%s"SHLIB_SUFFIX, name); + module_load_library(path); + if ((mod = dict_find(loaded_modules, name, NULL))) return mod; + /* third: use OS's default path */ + snprintf(path, sizeof(path), SHLIB_PREFIX"%s"SHLIB_SUFFIX, name); + module_load_library(path); if ((mod = dict_find(loaded_modules, name, NULL))) return mod; return mod; } Index: proto.c =================================================================== RCS file: /cvsroot/srvx/services/src/proto.c,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -r1.78 -r1.79 *** proto.c 2001/10/12 04:03:51 1.78 --- proto.c 2001/10/15 14:35:15 1.79 *************** *** 336,343 **** { int failed = 0; - void *addr; ! #define PROTO_FUNC(rettype, name, arglist) if (!(name = get_module_symbol(pmod, #name))) { log(MAIN_LOG, LOG_ERROR, "Protocol module does not export symbol %s\n", #name); failed++; } ! #define PROTO_VARIABLE(type, name) if ((addr = get_module_symbol(pmod, #name))) { name = *(type*)addr; } else { log(MAIN_LOG, LOG_ERROR, "Protocol module does not export symbol %s\n", #name); failed++; } #include "proto.def" #undef PROTO_FUNC --- 336,342 ---- { int failed = 0; ! #define PROTO_FUNC(rettype, name, arglist) if (!(name = get_module_symbol(pmod, "lib"#name))) { log(MAIN_LOG, LOG_ERROR, "Protocol module does not export symbol %s\n", #name); failed++; } ! #define PROTO_VARIABLE(type, name) /* do nothing */ #include "proto.def" #undef PROTO_FUNC Index: proto_bahamut.c =================================================================== RCS file: /cvsroot/srvx/services/src/proto_bahamut.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -r1.19 -r1.20 *** proto_bahamut.c 2001/10/14 19:45:40 1.19 --- proto_bahamut.c 2001/10/15 14:35:16 1.20 *************** *** 32,36 **** #include "log.h" #include "modules.h" ! #define PROTO_FUNC(retval, name, arglist) retval name arglist; #define PROTO_VARIABLE(type, name) extern type name; #include "proto.h" --- 32,36 ---- #include "log.h" #include "modules.h" ! #define PROTO_FUNC(retval, name, arglist) retval lib##name arglist; #define PROTO_VARIABLE(type, name) extern type name; #include "proto.h" *************** *** 173,177 **** void ! irc_server(struct server *srv) { putsock("%s %s %d :%s", --- 173,177 ---- void ! libirc_server(struct server *srv) { putsock("%s %s %d :%s", *************** *** 180,184 **** static void ! irc_uptime(struct user *user) { char uptime[INTERVALLEN]; --- 180,184 ---- static void ! libirc_uptime(struct user *user) { char uptime[INTERVALLEN]; *************** *** 191,195 **** static void ! irc_whois(struct user *from, struct user *who) { putsock(":%s 311 %s %s %s %s * :%s", self->name, from->nick, who->nick, who->username, who->hostname, who->info); --- 191,195 ---- static void ! libirc_whois(struct user *from, struct user *who) { putsock(":%s 311 %s %s %s %s * :%s", self->name, from->nick, who->nick, who->username, who->hostname, who->info); *************** *** 202,206 **** void ! irc_user(struct user *user) { char modes[16]; --- 202,206 ---- void ! libirc_user(struct user *user) { char modes[16]; *************** *** 214,218 **** void ! irc_nick(struct user *user) { putsock(":%s %s %s "FMT_TIME_T, user->nick, CMD_NICK, user->nick, now); --- 214,218 ---- void ! libirc_nick(struct user *user) { putsock(":%s %s %s "FMT_TIME_T, user->nick, CMD_NICK, user->nick, now); *************** *** 220,224 **** void ! irc_fetchtopic(struct user *from, struct channel *target) { putsock(":%s TOPIC %s", from->nick, target->name); --- 220,224 ---- void ! libirc_fetchtopic(struct user *from, struct channel *target) { putsock(":%s TOPIC %s", from->nick, target->name); *************** *** 226,230 **** void ! irc_squit(struct server *srv, const char *message) { /* If we're squitting our uplink, services is leaving the network. */ --- 226,230 ---- void ! libirc_squit(struct server *srv, const char *message) { /* If we're squitting our uplink, services is leaving the network. */ *************** *** 238,242 **** void ! irc_notice(struct user *from, const char *to, const char *message) { putsock(":%s %s %s :%s", from->nick, CMD_NOTICE, to, message); --- 238,242 ---- void ! libirc_notice(struct user *from, const char *to, const char *message) { putsock(":%s %s %s :%s", from->nick, CMD_NOTICE, to, message); *************** *** 244,248 **** void ! irc_privmsg(struct user *from, const char *to, const char *message) { putsock(":%s %s %s :%s", from->nick, CMD_PRIVMSG, to, message); --- 244,248 ---- void ! libirc_privmsg(struct user *from, const char *to, const char *message) { putsock(":%s %s %s :%s", from->nick, CMD_PRIVMSG, to, message); *************** *** 250,254 **** static void ! irc_ping(const char *something) { putsock("%s :%s", CMD_PING, something); --- 250,254 ---- static void ! libirc_ping(const char *something) { putsock("%s :%s", CMD_PING, something); *************** *** 256,260 **** static void ! irc_pong(const char *data) { putsock("%s %s :%s", CMD_PONG, self->name, data); --- 256,260 ---- static void ! libirc_pong(const char *data) { putsock("%s %s :%s", CMD_PONG, self->name, data); *************** *** 262,266 **** static void ! irc_pass(const char *passwd) { putsock("%s %s :TS", CMD_PASS, passwd); --- 262,266 ---- static void ! libirc_pass(const char *passwd) { putsock("%s %s :TS", CMD_PASS, passwd); *************** *** 268,272 **** static void ! irc_capab(void) { putsock("%s TS3 NOQUIT SSJOIN BURST", CMD_CAPAB); --- 268,272 ---- static void ! libirc_capab(void) { putsock("%s TS3 NOQUIT SSJOIN BURST", CMD_CAPAB); *************** *** 274,278 **** static void ! irc_svinfo(void) { putsock("%s %d %d 1 :"FMT_TIME_T, CMD_SVINFO, TS_MAX, TS_MIN, now); --- 274,278 ---- static void ! libirc_svinfo(void) { putsock("%s %d %d 1 :"FMT_TIME_T, CMD_SVINFO, TS_MAX, TS_MIN, now); *************** *** 280,292 **** void ! irc_introduce(const char *passwd) { extern time_t burst_begin; extern unsigned long burst_length; ! irc_capab(); ! irc_pass(passwd); ! irc_server(self); ! irc_svinfo(); self->in_burst = 1; burst_begin = now; --- 280,292 ---- void ! libirc_introduce(const char *passwd) { extern time_t burst_begin; extern unsigned long burst_length; ! libirc_capab(); ! libirc_pass(passwd); ! libirc_server(self); ! libirc_svinfo(); self->in_burst = 1; burst_begin = now; *************** *** 296,300 **** void ! irc_gline(const char *mask, unsigned long duration, const char *message) { putsock(":%s %s * +%s "FMT_TIME_T" :%s", self->name, CMD_GLINE, mask, duration, message); --- 296,300 ---- void ! libirc_gline(const char *mask, unsigned long duration, const char *message) { putsock(":%s %s * +%s "FMT_TIME_T" :%s", self->name, CMD_GLINE, mask, duration, message); *************** *** 302,306 **** void ! irc_ungline(const char *mask) { putsock(":%s %s * -%s", self->name, CMD_GLINE, mask); --- 302,306 ---- void ! libirc_ungline(const char *mask) { putsock(":%s %s * -%s", self->name, CMD_GLINE, mask); *************** *** 308,312 **** void ! irc_jupe(const char *server, unsigned long duration, const char *reason) { putsock(":%s %s * +%s %lu "FMT_TIME_T" :%s", self->name, CMD_JUPE, server, duration, now, reason); --- 308,312 ---- void ! libirc_jupe(const char *server, unsigned long duration, const char *reason) { putsock(":%s %s * +%s %lu "FMT_TIME_T" :%s", self->name, CMD_JUPE, server, duration, now, reason); *************** *** 314,318 **** void ! irc_unjupe(const char *server) { putsock(":%s %s * -%s 0 "FMT_TIME_T" :Unjuping.", self->name, CMD_JUPE, server, now); --- 314,318 ---- void ! libirc_unjupe(const char *server) { putsock(":%s %s * -%s 0 "FMT_TIME_T" :Unjuping.", self->name, CMD_JUPE, server, now); *************** *** 320,324 **** void ! irc_quit(struct user *user, const char *message) { putsock(":%s %s :%s", user->nick, CMD_QUIT, message); --- 320,324 ---- void ! libirc_quit(struct user *user, const char *message) { putsock(":%s %s :%s", user->nick, CMD_QUIT, message); *************** *** 326,330 **** void ! irc_error(const char *to, const char *message) { if (to) { --- 326,330 ---- void ! libirc_error(const char *to, const char *message) { if (to) { *************** *** 336,340 **** void ! irc_kill(struct user *from, struct user *target, const char *message) { if (from) { --- 336,340 ---- void ! libirc_kill(struct user *from, struct user *target, const char *message) { if (from) { *************** *** 346,350 **** void ! irc_mode(struct user *from, struct channel *target, const char *modes) { putsock(":%s %s %s %s", from->nick, CMD_MODE, target->name, modes); --- 346,350 ---- void ! libirc_mode(struct user *from, struct channel *target, const char *modes) { putsock(":%s %s %s %s", from->nick, CMD_MODE, target->name, modes); *************** *** 352,356 **** void ! irc_invite(struct user *from, struct user *who, struct channel *to) { putsock(":%s %s %s %s", from->nick, CMD_INVITE, who->nick, to->name); --- 352,356 ---- void ! libirc_invite(struct user *from, struct user *who, struct channel *to) { putsock(":%s %s %s %s", from->nick, CMD_INVITE, who->nick, to->name); *************** *** 358,362 **** void ! irc_join(struct user *who, struct channel *what) { if (what->members.used == 1) { --- 358,362 ---- void ! libirc_join(struct user *who, struct channel *what) { if (what->members.used == 1) { *************** *** 368,372 **** void ! irc_kick(struct user *actor, struct user *who, struct channel *from, const char *msg) { putsock(":%s %s %s %s :%s", actor->nick, CMD_KICK, from->name, who->nick, msg); --- 368,372 ---- void ! libirc_kick(struct user *actor, struct user *who, struct channel *from, const char *msg) { putsock(":%s %s %s %s :%s", actor->nick, CMD_KICK, from->name, who->nick, msg); *************** *** 374,378 **** void ! irc_raw(const char *what) { putsock("%s", what); --- 374,378 ---- void ! libirc_raw(const char *what) { putsock("%s", what); *************** *** 380,384 **** void ! irc_stats(struct user *from, struct server *target, char type) { putsock(":%s STATS %c :%s", from->nick, type, target->name); --- 380,384 ---- void ! libirc_stats(struct user *from, struct server *target, char type) { putsock(":%s STATS %c :%s", from->nick, type, target->name); *************** *** 386,390 **** void ! irc_part(struct user *who, struct channel *what, const char *reason) { putsock(":%s %s %s :%s", who->nick, CMD_PART, what->name, reason); --- 386,390 ---- void ! libirc_part(struct user *who, struct channel *what, const char *reason) { putsock(":%s %s %s :%s", who->nick, CMD_PART, what->name, reason); *************** *** 392,396 **** void ! irc_topic(struct user *who, struct channel *what, const char *topic) { putsock(":%s %s %s :%s", who->nick, CMD_TOPIC, what->name, topic); --- 392,396 ---- void ! libirc_topic(struct user *who, struct channel *what, const char *topic) { putsock(":%s %s %s :%s", who->nick, CMD_TOPIC, what->name, topic); *************** *** 398,402 **** void ! chan_apply_bans(struct user *who, struct channel *channel, char *what, unsigned int count, char **list) { char buffer[400]; --- 398,402 ---- void ! libchan_apply_bans(struct user *who, struct channel *channel, char *what, unsigned int count, char **list) { char buffer[400]; *************** *** 414,418 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 414,418 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 428,432 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 428,432 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 434,438 **** void ! chan_apply_mode(struct user *who, struct channel *channel, char *what, unsigned int count, struct user **list) { char buffer[400]; --- 434,438 ---- void ! libchan_apply_mode(struct user *who, struct channel *channel, char *what, unsigned int count, struct user **list) { char buffer[400]; *************** *** 450,454 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 450,454 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 464,468 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 464,468 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 470,474 **** void ! irc_change_channel_modes(struct channel *channel, struct user *source, const unsigned char *modes, va_list args) { char modebuf[200]; --- 470,474 ---- void ! libirc_change_channel_modes(struct channel *channel, struct user *source, const unsigned char *modes, va_list args) { char modebuf[200]; *************** *** 551,555 **** (void)data; ! irc_ping(self->name); timeq_add(now + ping_timeout, timed_ping_timeout, 0); } --- 551,555 ---- (void)data; ! libirc_ping(self->name); timeq_add(now + ping_timeout, timed_ping_timeout, 0); } *************** *** 564,568 **** timeouts per time period exceeds some amount, the uplink could be marked as unavalable.*/ ! irc_squit(self->uplink, "Ping timeout."); } --- 564,568 ---- timeouts per time period exceeds some amount, the uplink could be marked as unavalable.*/ ! libirc_squit(self->uplink, "Ping timeout."); } *************** *** 611,615 **** struct user *user = data; (void)key; (void)extra; ! irc_user(user); return 0; } --- 611,615 ---- struct user *user = data; (void)key; (void)extra; ! libirc_user(user); return 0; } *************** *** 716,720 **** void ! reg_mode_change_func(mode_change_func_t handler) { if (mcf_used == mcf_size) { --- 716,720 ---- void ! libreg_mode_change_func(mode_change_func_t handler) { if (mcf_used == mcf_size) { *************** *** 769,773 **** this happens, though there should be a way of resetting the flag. */ ! irc_squit(self->uplink, "Incorrect password received."); } return 1; --- 769,773 ---- this happens, though there should be a way of resetting the flag. */ ! libirc_squit(self->uplink, "Incorrect password received."); } return 1; *************** *** 820,824 **** if (argc < 5) return 0; if ((atoi(argv[1]) < TS_MIN) || (atoi(argv[2]) > TS_MAX)) { ! irc_error(self->uplink->name, "We can't agree on a timestamp version. Sorry!"); return 0; } --- 820,824 ---- if (argc < 5) return 0; if ((atoi(argv[1]) < TS_MIN) || (atoi(argv[2]) > TS_MAX)) { ! libirc_error(self->uplink->name, "We can't agree on a timestamp version. Sorry!"); return 0; } *************** *** 920,924 **** if (argc < 2) return 0; ! irc_pong(argv[1]); timeq_del(0, timed_send_ping, 0, TIMEQ_IGNORE_WHEN|TIMEQ_IGNORE_DATA); --- 920,924 ---- if (argc < 2) return 0; ! libirc_pong(argv[1]); timeq_del(0, timed_send_ping, 0, TIMEQ_IGNORE_WHEN|TIMEQ_IGNORE_DATA); *************** *** 1118,1122 **** if (argc < 4) return 0; un = GetUser(argv[0]); ! if (un && !strcmp(argv[2], "u")) irc_uptime(un); return 1; } --- 1118,1122 ---- if (argc < 4) return 0; un = GetUser(argv[0]); ! if (un && !strcmp(argv[2], "u")) libirc_uptime(un); return 1; } *************** *** 1136,1140 **** return 0; } ! irc_whois(from, who); return 1; } --- 1136,1140 ---- return 0; } ! libirc_whois(from, who); return 1; } *************** *** 1186,1190 **** /* This doesn't get called by AddUser if uplink == self */ bahamut_new_user(uNode); ! if (uplink == self) irc_user(uNode); } else { char kill[MAXLEN]; --- 1186,1190 ---- /* This doesn't get called by AddUser if uplink == self */ bahamut_new_user(uNode); ! if (uplink == self) libirc_user(uNode); } else { char kill[MAXLEN]; *************** *** 1194,1198 **** * screwed up. */ sprintf(kill, "%s KILL %s :%s (Nick collision.)", self->name, nick, self->name); ! irc_raw(kill); } return uNode; --- 1194,1198 ---- * screwed up. */ sprintf(kill, "%s KILL %s :%s (Nick collision.)", self->name, nick, self->name); ! libirc_raw(kill); } return uNode; *************** *** 1200,1204 **** struct user * ! add_local_user(const char *nick, const char *ident, const char *hostname, const char *modes, const char *userinfo, time_t timestamp) { return bahamut_add_user(self, nick, ident, hostname, modes, userinfo, timestamp); --- 1200,1204 ---- struct user * ! libadd_local_user(const char *nick, const char *ident, const char *hostname, const char *modes, const char *userinfo, time_t timestamp) { return bahamut_add_user(self, nick, ident, hostname, modes, userinfo, timestamp); *************** *** 1458,1462 **** int ! parse_line(unsigned char *line) { static unsigned char *argv[MAXNUMPARAMS]; --- 1458,1462 ---- int ! libparse_line(unsigned char *line) { static unsigned char *argv[MAXNUMPARAMS]; *************** *** 1477,1481 **** void ! reg_privmsg_func(struct user *user, privmsg_func_t handler) { if (!user->proto) user->proto = calloc(1, sizeof(*user->proto)); --- 1477,1481 ---- void ! libreg_privmsg_func(struct user *user, privmsg_func_t handler) { if (!user->proto) user->proto = calloc(1, sizeof(*user->proto)); *************** *** 1484,1488 **** void ! reg_notice_func(struct user *user, privmsg_func_t handler) { if (!user->proto) user->proto = calloc(1, sizeof(*user->proto)); --- 1484,1488 ---- void ! libreg_notice_func(struct user *user, privmsg_func_t handler) { if (!user->proto) user->proto = calloc(1, sizeof(*user->proto)); *************** *** 1491,1495 **** void ! reg_chanmsg_func(unsigned char prefix, struct user *service, chanmsg_func_t handler) { if (chanmsg_funcs[prefix].func) { --- 1491,1495 ---- void ! libreg_chanmsg_func(unsigned char prefix, struct user *service, chanmsg_func_t handler) { if (chanmsg_funcs[prefix].func) { Index: proto_ircu_p10.c =================================================================== RCS file: /cvsroot/srvx/services/src/proto_ircu_p10.c,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** proto_ircu_p10.c 2001/10/14 19:45:40 1.29 --- proto_ircu_p10.c 2001/10/15 14:35:16 1.30 *************** *** 31,35 **** #include "hash.h" #include "log.h" ! #define PROTO_FUNC(retval, name, arglist) retval name arglist; #define PROTO_VARIABLE(type, name) extern type name; #include "proto.h" --- 31,35 ---- #include "hash.h" #include "log.h" ! #define PROTO_FUNC(retval, name, arglist) retval lib##name arglist; #define PROTO_VARIABLE(type, name) extern type name; #include "proto.h" *************** *** 43,46 **** --- 43,50 ---- /************************************/ + extern time_t boot_time; + extern time_t burst_begin; + extern unsigned long burst_length; + #define SERVER_NUMERIC_LEN 1 #define USER_NUMERIC_LEN 2 *************** *** 272,276 **** void ! irc_server(struct server *srv) { putsock("%s %s %d %li %li %c10 %s]] :%s", --- 276,280 ---- void ! libirc_server(struct server *srv) { putsock("%s %s %d %li %li %c10 %s]] :%s", *************** *** 279,286 **** static void ! irc_uptime(struct user *user) { char uptime[INTERVALLEN]; - extern time_t boot_time; intervalString(uptime, now-boot_time); --- 283,289 ---- static void ! libirc_uptime(struct user *user) { char uptime[INTERVALLEN]; intervalString(uptime, now-boot_time); *************** *** 290,294 **** static void ! irc_whois(struct user *from, struct user *who) { putsock(":%s 311 %s %s %s %s * :%s", self->name, from->nick, who->nick, who->username, who->hostname, who->info); --- 293,297 ---- static void ! libirc_whois(struct user *from, struct user *who) { putsock(":%s 311 %s %s %s %s * :%s", self->name, from->nick, who->nick, who->username, who->hostname, who->info); *************** *** 300,304 **** void ! irc_user(struct user *user) { char b64ip[7]; --- 303,307 ---- void ! libirc_user(struct user *user) { char b64ip[7]; *************** *** 317,321 **** void ! irc_nick(struct user *user) { putsock("%s %s %s "FMT_TIME_T, UPROTO(user)->numeric, CMD_NICK, user->nick, now); --- 320,324 ---- void ! libirc_nick(struct user *user) { putsock("%s %s %s "FMT_TIME_T, UPROTO(user)->numeric, CMD_NICK, user->nick, now); *************** *** 323,327 **** void ! irc_fetchtopic(struct user *from, struct channel *target) { putsock("%s TOPIC %s", from->nick, target->name); --- 326,330 ---- void ! libirc_fetchtopic(struct user *from, struct channel *target) { putsock("%s TOPIC %s", from->nick, target->name); *************** *** 329,333 **** void ! irc_squit(struct server *srv, const char *message) { /* If we're squitting our uplink, services is leaving the network. */ --- 332,336 ---- void ! libirc_squit(struct server *srv, const char *message) { /* If we're squitting our uplink, services is leaving the network. */ *************** *** 338,342 **** for (i = 0; i < ArrayLength(SPROTO(self)->users); i++) { if (!SPROTO(self)->users[i]) continue; ! irc_quit(SPROTO(self)->users[i], message); } } --- 341,345 ---- for (i = 0; i < ArrayLength(SPROTO(self)->users); i++) { if (!SPROTO(self)->users[i]) continue; ! libirc_quit(SPROTO(self)->users[i], message); } } *************** *** 350,354 **** void ! irc_notice(struct user *from, const char *to, const char *message) { putsock("%s %s %s :%s", UPROTO(from)->numeric, CMD_NOTICE, to, message); --- 353,357 ---- void ! libirc_notice(struct user *from, const char *to, const char *message) { putsock("%s %s %s :%s", UPROTO(from)->numeric, CMD_NOTICE, to, message); *************** *** 356,360 **** void ! irc_privmsg(struct user *from, const char *to, const char *message) { if (IsChannelName(to)) { --- 359,363 ---- void ! libirc_privmsg(struct user *from, const char *to, const char *message) { if (IsChannelName(to)) { *************** *** 367,371 **** static void ! irc_eob(void) { putsock("%s %s", SPROTO(self)->numeric, CMD_EOB); --- 370,374 ---- static void ! libirc_eob(void) { putsock("%s %s", SPROTO(self)->numeric, CMD_EOB); *************** *** 373,377 **** static void ! irc_eob_ack(void) { putsock("%s %s", SPROTO(self)->numeric, CMD_EOB_ACK); --- 376,380 ---- static void ! libirc_eob_ack(void) { putsock("%s %s", SPROTO(self)->numeric, CMD_EOB_ACK); *************** *** 379,383 **** static void ! irc_ping(const char *something) { putsock("%s %s :%s", SPROTO(self)->numeric, CMD_PING, something); --- 382,386 ---- static void ! libirc_ping(const char *something) { putsock("%s %s :%s", SPROTO(self)->numeric, CMD_PING, something); *************** *** 385,389 **** static void ! irc_pong(const char *data) { putsock("%s %s %s :%s", SPROTO(self)->numeric, CMD_PONG, self->name, data); --- 388,392 ---- static void ! libirc_pong(const char *data) { putsock("%s %s %s :%s", SPROTO(self)->numeric, CMD_PONG, self->name, data); *************** *** 391,395 **** static void ! irc_pass(const char *passwd) { putsock("PASS :%s", passwd); --- 394,398 ---- static void ! libirc_pass(const char *passwd) { putsock("PASS :%s", passwd); *************** *** 397,416 **** void ! irc_introduce(const char *passwd) { ! extern int ping_freq; ! extern time_t burst_begin; ! extern unsigned long burst_length; ! ! irc_pass(passwd); self->in_burst = 1; burst_begin = now; burst_length = 0; ! irc_server(self); timeq_add(now + ping_freq, timed_send_ping, 0); } void ! irc_gline(const char *mask, unsigned long duration, const char *message) { putsock("%s %s * +%s %lu :%s", SPROTO(self)->numeric, CMD_GLINE, mask, duration, message); --- 400,415 ---- void ! libirc_introduce(const char *passwd) { ! libirc_pass(passwd); self->in_burst = 1; burst_begin = now; burst_length = 0; ! libirc_server(self); timeq_add(now + ping_freq, timed_send_ping, 0); } void ! libirc_gline(const char *mask, unsigned long duration, const char *message) { putsock("%s %s * +%s %lu :%s", SPROTO(self)->numeric, CMD_GLINE, mask, duration, message); *************** *** 418,422 **** void ! irc_ungline(const char *mask) { putsock("%s %s * -%s", SPROTO(self)->numeric, CMD_GLINE, mask); --- 417,421 ---- void ! libirc_ungline(const char *mask) { putsock("%s %s * -%s", SPROTO(self)->numeric, CMD_GLINE, mask); *************** *** 424,428 **** void ! irc_jupe(const char *server, unsigned long duration, const char *reason) { putsock("%s %s * +%s %lu "FMT_TIME_T" :%s", SPROTO(self)->numeric, CMD_JUPE, server, duration, now, reason); --- 423,427 ---- void ! libirc_jupe(const char *server, unsigned long duration, const char *reason) { putsock("%s %s * +%s %lu "FMT_TIME_T" :%s", SPROTO(self)->numeric, CMD_JUPE, server, duration, now, reason); *************** *** 430,434 **** void ! irc_unjupe(const char *server) { putsock("%s %s * -%s 0 "FMT_TIME_T" :Unjuping.", SPROTO(self)->numeric, CMD_JUPE, server, now); --- 429,433 ---- void ! libirc_unjupe(const char *server) { putsock("%s %s * -%s 0 "FMT_TIME_T" :Unjuping.", SPROTO(self)->numeric, CMD_JUPE, server, now); *************** *** 436,440 **** static void ! irc_burst(struct channel *chan) { char burst_line[510]; --- 435,439 ---- static void ! libirc_burst(struct channel *chan) { char burst_line[510]; *************** *** 498,502 **** void ! irc_quit(struct user *user, const char *message) { putsock("%s %s :%s", UPROTO(user)->numeric, CMD_QUIT, message); --- 497,501 ---- void ! libirc_quit(struct user *user, const char *message) { putsock("%s %s :%s", UPROTO(user)->numeric, CMD_QUIT, message); *************** *** 504,508 **** void ! irc_error(const char *to, const char *message) { if (to) { --- 503,507 ---- void ! libirc_error(const char *to, const char *message) { if (to) { *************** *** 514,518 **** void ! irc_kill(struct user *from, struct user *target, const char *message) { if (from) { --- 513,517 ---- void ! libirc_kill(struct user *from, struct user *target, const char *message) { if (from) { *************** *** 524,528 **** void ! irc_mode(struct user *from, struct channel *target, const char *modes) { struct mode *mn; --- 523,527 ---- void ! libirc_mode(struct user *from, struct channel *target, const char *modes) { struct mode *mn; *************** *** 537,541 **** void ! irc_invite(struct user *from, struct user *who, struct channel *to) { putsock("%s %s %s %s", from->nick, CMD_INVITE, who->nick, to->name); --- 536,540 ---- void ! libirc_invite(struct user *from, struct user *who, struct channel *to) { putsock("%s %s %s %s", from->nick, CMD_INVITE, who->nick, to->name); *************** *** 543,547 **** void ! irc_join(struct user *who, struct channel *what) { if (what->members.used == 1) { --- 542,546 ---- void ! libirc_join(struct user *who, struct channel *what) { if (what->members.used == 1) { *************** *** 553,557 **** void ! irc_kick(struct user *actor, struct user *who, struct channel *from, const char *msg) { putsock("%s %s %s %s :%s", UPROTO(actor)->numeric, CMD_KICK, from->name, UPROTO(who)->numeric, msg); --- 552,556 ---- void ! libirc_kick(struct user *actor, struct user *who, struct channel *from, const char *msg) { putsock("%s %s %s %s :%s", UPROTO(actor)->numeric, CMD_KICK, from->name, UPROTO(who)->numeric, msg); *************** *** 559,563 **** void ! irc_raw(const char *what) { putsock("%s", what); --- 558,562 ---- void ! libirc_raw(const char *what) { putsock("%s", what); *************** *** 565,569 **** void ! irc_stats(struct user *from, struct server *target, char type) { putsock("%s STATS %c :%s", UPROTO(from)->numeric, type, SPROTO(target)->numeric); --- 564,568 ---- void ! libirc_stats(struct user *from, struct server *target, char type) { putsock("%s STATS %c :%s", UPROTO(from)->numeric, type, SPROTO(target)->numeric); *************** *** 571,575 **** void ! irc_part(struct user *who, struct channel *what, const char *reason) { putsock("%s %s %s :%s", UPROTO(who)->numeric, CMD_PART, what->name, reason); --- 570,574 ---- void ! libirc_part(struct user *who, struct channel *what, const char *reason) { putsock("%s %s %s :%s", UPROTO(who)->numeric, CMD_PART, what->name, reason); *************** *** 577,581 **** void ! irc_topic(struct user *who, struct channel *what, const char *topic) { putsock(":%s %s %s :%s", who->nick, CMD_TOPIC, what->name, topic); --- 576,580 ---- void ! libirc_topic(struct user *who, struct channel *what, const char *topic) { putsock(":%s %s %s :%s", who->nick, CMD_TOPIC, what->name, topic); *************** *** 583,587 **** void ! chan_apply_bans(struct user *who, struct channel *channel, char *what, unsigned int count, char **list) { char buffer[400]; --- 582,586 ---- void ! libchan_apply_bans(struct user *who, struct channel *channel, char *what, unsigned int count, char **list) { char buffer[400]; *************** *** 599,603 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 598,602 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 613,617 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 612,616 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 619,623 **** void ! chan_apply_mode(struct user *who, struct channel *channel, char *what, unsigned int count, struct user **list) { char buffer[400]; --- 618,622 ---- void ! libchan_apply_mode(struct user *who, struct channel *channel, char *what, unsigned int count, struct user **list) { char buffer[400]; *************** *** 635,639 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 634,638 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 649,653 **** } buffer[--start] = what[0]; ! irc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } --- 648,652 ---- } buffer[--start] = what[0]; ! libirc_mode(who, channel, buffer+start); start = sizeof(buffer)-1; } *************** *** 655,659 **** void ! irc_change_channel_modes(struct channel *channel, struct user *source, const unsigned char *modes, va_list args) { char modebuf[200]; --- 654,658 ---- void ! libirc_change_channel_modes(struct channel *channel, struct user *source, const unsigned char *modes, va_list args) { char modebuf[200]; *************** *** 742,746 **** (void)data; ! irc_ping(self->name); timeq_add(now + ping_timeout, timed_ping_timeout, 0); } --- 741,745 ---- (void)data; ! libirc_ping(self->name); timeq_add(now + ping_timeout, timed_ping_timeout, 0); } *************** *** 755,759 **** timeouts per time period exceeds some amount, the uplink could be marked as unavalable.*/ ! irc_squit(self->uplink, "Ping timeout."); } --- 754,758 ---- timeouts per time period exceeds some amount, the uplink could be marked as unavalable.*/ ! libirc_squit(self->uplink, "Ping timeout."); } *************** *** 799,803 **** { (void)key; (void)extra; ! irc_burst(data); return 0; } --- 798,802 ---- { (void)key; (void)extra; ! libirc_burst(data); return 0; } *************** *** 819,823 **** if (servers_num[i]->hops == hop) ! irc_server(servers_num[i]); } } --- 818,822 ---- if (servers_num[i]->hops == hop) ! libirc_server(servers_num[i]); } } *************** *** 826,830 **** for (i=0; i<ArrayLength(SPROTO(self)->users); i++) { if (!SPROTO(self)->users[i]) continue; ! irc_user(SPROTO(self)->users[i]); } --- 825,829 ---- for (i=0; i<ArrayLength(SPROTO(self)->users); i++) { if (!SPROTO(self)->users[i]) continue; ! libirc_user(SPROTO(self)->users[i]); } *************** *** 832,836 **** dict_foreach(channels, foreach_burst_helper, NULL); ! irc_eob(); } --- 831,835 ---- dict_foreach(channels, foreach_burst_helper, NULL); ! libirc_eob(); } *************** *** 846,850 **** this happens, though there should be a way of resetting the flag. */ ! irc_squit(self->uplink, "Incorrect password received."); } return 1; --- 845,849 ---- this happens, though there should be a way of resetting the flag. */ ! libirc_squit(self->uplink, "Incorrect password received."); } return 1; *************** *** 886,890 **** new_server = AddServer(uplink, name, hops, boot, link, description); servers_num[base64toint(numeric, SERVER_NUMERIC_LEN)] = new_server; ! sproto = uplink->proto = calloc(1, sizeof(*sproto)); safestrncpy(sproto->numeric, numeric, sizeof(sproto->numeric)); return new_server; --- 885,889 ---- new_server = AddServer(uplink, name, hops, boot, link, description); servers_num[base64toint(numeric, SERVER_NUMERIC_LEN)] = new_server; ! sproto = new_server->proto = calloc(1, sizeof(*sproto)); safestrncpy(sproto->numeric, numeric, sizeof(sproto->numeric)); return new_server; *************** *** 934,938 **** if (argc < 4) return 0; ! if (un && !strcmp(argv[2], "u")) irc_uptime(un); return 1; } --- 933,937 ---- if (argc < 4) return 0; ! if (un && !strcmp(argv[2], "u")) libirc_uptime(un); return 1; } *************** *** 952,956 **** return 0; } ! irc_whois(from, who); return 1; } --- 951,955 ---- return 0; } ! libirc_whois(from, who); return 1; } *************** *** 965,969 **** if (sender == self->uplink) { uplink_set_state(CONNECTED); ! irc_eob_ack(); } return 1; --- 964,968 ---- if (sender == self->uplink) { uplink_set_state(CONNECTED); ! libirc_eob_ack(); } return 1; *************** *** 972,977 **** static CMD_FUNC(cmd_eob_ack) { - extern unsigned long burst_length; - extern time_t burst_begin; (void)argc;(void)argv; /* we don't care about these */ --- 971,974 ---- *************** *** 989,993 **** if (argc < 3) return 0; ! irc_pong(argv[2]); timeq_del(0, timed_send_ping, 0, TIMEQ_IGNORE_WHEN|TIMEQ_IGNORE_DATA); --- 986,990 ---- if (argc < 3) return 0; ! libirc_pong(argv[2]); timeq_del(0, timed_send_ping, 0, TIMEQ_IGNORE_WHEN|TIMEQ_IGNORE_DATA); *************** *** 1071,1075 **** num_local = base64toint(numeric+SERVER_NUMERIC_LEN, USER_NUMERIC_LEN); SPROTO(GetServerN(numeric))->users[num_local] = uNode; ! if (uplink == self) irc_user(uNode); } else { char kill[MAXLEN]; --- 1068,1072 ---- num_local = base64toint(numeric+SERVER_NUMERIC_LEN, USER_NUMERIC_LEN); SPROTO(GetServerN(numeric))->users[num_local] = uNode; ! if (uplink == self) libirc_user(uNode); } else { char kill[MAXLEN]; *************** *** 1079,1083 **** * screwed up. */ sprintf(kill, "%s KILL %s :%s (Nick collision.)", SPROTO(self)->numeric, numeric, self->name); ! irc_raw(kill); } return uNode; --- 1076,1080 ---- * screwed up. */ sprintf(kill, "%s KILL %s :%s (Nick collision.)", SPROTO(self)->numeric, numeric, self->name); ! libirc_raw(kill); } return uNode; *************** *** 1101,1105 **** struct user * ! add_local_user(const char *nick, const char *ident, const char *hostname, const char *modes, const char *userinfo, time_t timestamp) { char numeric[COMBO_NUMERIC_LEN+1], ip_num[7]; --- 1098,1102 ---- struct user * ! libadd_local_user(const char *nick, const char *ident, const char *hostname, const char *modes, const char *userinfo, time_t timestamp) { char numeric[COMBO_NUMERIC_LEN+1], ip_num[7]; *************** *** 1231,1235 **** void ! reg_mode_change_func(mode_change_func_t handler) { if (mcf_used == mcf_size) { --- 1228,1232 ---- void ! libreg_mode_change_func(mode_change_func_t handler) { if (mcf_used == mcf_size) { *************** *** 1657,1661 **** LIB_LOAD_FUNC(mod_init) { - extern time_t boot_time; unsigned int i; char numer[COMBO_NUMERIC_LEN+1]; --- 1654,1657 ---- *************** *** 1794,1798 **** int ! parse_line(unsigned char *line) { static unsigned char *argv[MAXNUMPARAMS]; --- 1790,1794 ---- int ! libparse_line(unsigned char *line) { static unsigned char *argv[MAXNUMPARAMS]; *************** *** 1812,1816 **** void ! reg_privmsg_func(struct user *user, privmsg_func_t handler) { unsigned long numeric = base64toint(UPROTO(user)->numeric+SERVER_NUMERIC_LEN, USER_NUMERIC_LEN); --- 1808,1812 ---- void ! libreg_privmsg_func(struct user *user, privmsg_func_t handler) { unsigned long numeric = base64toint(UPROTO(user)->numeric+SERVER_NUMERIC_LEN, USER_NUMERIC_LEN); *************** *** 1828,1832 **** void ! reg_notice_func(struct user *user, privmsg_func_t handler) { unsigned int numeric = base64toint(UPROTO(user)->numeric+SERVER_NUMERIC_LEN, USER_NUMERIC_LEN); --- 1824,1828 ---- void ! libreg_notice_func(struct user *user, privmsg_func_t handler) { unsigned int numeric = base64toint(UPROTO(user)->numeric+SERVER_NUMERIC_LEN, USER_NUMERIC_LEN); *************** *** 1844,1848 **** void ! reg_chanmsg_func(unsigned char prefix, struct user *service, chanmsg_func_t handler) { if (chanmsg_funcs[prefix].func) { --- 1840,1844 ---- void ! libreg_chanmsg_func(unsigned char prefix, struct user *service, chanmsg_func_t handler) { if (chanmsg_funcs[prefix].func) { |