various tools, coding examples, and no longer supported IRCd protocols
chanstats
- deprecated_protocols
glines
pie_chart
tools
chnanstats : coding example for how to read the chanstats table and display information.
-deprecated_protocols : IRCd's with lack of support from users and developers have been moved here
- if your IRCd is in here and want us to move it back to active please contact
- the developers so we know its wanted
-
glines : print out of glines set by the IRCd
pie_chart : Display Denora's data in a pie chart format
whois : Get whois data back on a user
xmlrpc : PHP coding example of getting XMLRPC data from Denora
+
+
+Legacy IRCD Protocols for IRCd's that once worked with Denora can not be found at
+
+ https://github.com/denora/protocol-legacy
+
+++ /dev/null
-This directory contains deprecated IRCd protocol modules for IRCds that
-are old or no longer maintained.
-You may use them and tweak them as you wish, but we can't guarantee
-that they will work and we won't give support!
-
-NO SUPPORT!!!
+++ /dev/null
-/*************************************************************************/
-/* Asuka P10 ircd Protocol */
-/* (c) 2004-2013 Denora Team */
-/* Contact us at info@denorastats.org */
-/* */
-/* Please read COPYING and README for furhter details. */
-/* */
-/* Based on the original code of Anope by Anope Team. */
-/* Based on the original code of Thales by Lucas. */
-/* */
-/* */
-/* */
-/*************************************************************************/
-
-#include "denora.h"
-#include "asuka.h"
-
-int p10nickcnt = 0;
-
-IRCDVar myIrcd[] =
-{
- {
- "Asuka 1.2.1", /* ircd name */
- "+iok", /* StatServ mode */
- IRCD_DISABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- IRCD_DISABLE, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- IRCD_DISABLE, /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* Channel forwarding */
- IRCD_ENABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_ENABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- IRCD_DISABLE, /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- IRCD_DISABLE /* Persistent channel mode */
- },
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 1, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, /* CHANMODES */
- 0, /* sjb64 */
- 0, /* nickchar */
- }
-};
-
-/*************************************************************************/
-
-char *asuka_nickip(char *host)
-{
- struct in_addr addr;
- int decoded;
-
- decoded = base64toint(host);
- addr.s_addr = ntohl(decoded);
- return sstrdup(inet_ntoa(addr));
-}
-
-/*************************************************************************/
-
-/* On Services connect the modes are given */
-/* AB N Trystan` 1 1098031638 tslee comcast.net +i AYAmXj ABAAC : real */
-/* On user join they are not */
-/* AB N Trystan 1 1101443066 tslee comcast.net AYAmXj ABAAB : real */
-
-/*
-** NICK - new
-** source = Ownering Server Prefix
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = username
-** parv[4] = host
-** parv[5] = modes
-** parv[6] = base64 ip
-** parv[7] = uid
-** parv[8] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = timestamp
-*/
-/* AB N Trystan 1 1116184299 tslee 24.2.101.227 +oiwgr trystan AYAmXj ABAAA :Dreams are answers to questions not yet asked */
-/* 0 1 2 3 4 5 6 7 8 9 */
-/* AK N OpServ 2 1116184708 OpServ srvx.net +oik AAAAAA AKAAA :Oper Service Bot */
-/* 0 1 2 3 4 5 6 7 8 */
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- Server *s;
- char *temp;
- char *ipchar;
-
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
-
- /* do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes) */
-
- temp = sstrdup(source);
-
- if (ac != 2)
- {
- char *realname, *ip, *nick;
- char *ident, *host, *modes, *modes2;
- const char *uid = "";
- const char *account = "";
- const char *timestamp = "";
- char hhostbuf[255];
- int ishidden = 0, isaccount = 0;
-
- s = server_find(source);
- *source = '\0';
-
- realname = sstrdup(av[ac - 1]);
- uid = sstrdup(av[ac - 2]);
- ip = sstrdup(av[ac - 3]);
- nick = sstrdup(av[0]);
- ident = sstrdup(av[3]);
- host = sstrdup(av[4]);
- modes = sstrdup(av[5]);
- modes2 = sstrdup(av[5]);
- timestamp = sstrdup(av[2]);
-
- if (strpbrk(av[5], "+"))
- {
- while (*modes)
- {
- switch (*modes)
- {
- case 'r':
- isaccount = 1;
- account = sstrdup(av[6]);
- break;
- case 'x':
- ishidden = 1;
- break;
- default:
- break;
- }
- modes++;
- }
- modes = sstrdup(modes2);
- }
- else
- modes = NULL;
-
- ipchar = asuka_nickip(ip);
-
- if (isaccount && ishidden)
- {
- ircsnprintf(hhostbuf, sizeof(av[6]) + sizeof(hhostbuf) + 2,
- "%s%s%s", HiddenPrefix, av[6], HiddenSuffix);
- }
-
- user = do_nick(source, nick, ident, host, (s ? s->name : temp),
- realname, strtoul(timestamp, NULL, 10), 0, ipchar,
- (ishidden
- && isaccount) ? hhostbuf : NULL, (char *) uid,
- strtoul(av[1], NULL, 10), modes, (char *) account);
-
- free(ipchar);
- }
- else
- {
- user = find_byuid(source);
- do_nick((user ? user->nick : source), av[0], NULL, NULL, NULL,
- NULL, strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0,
- NULL, NULL);
- }
- free(temp);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- s = server_find(source);
- if (stricmp(s->name, denora->uplink) == 0)
- {
- send_cmd(NULL, "%s EA", p10id);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* <source> GL <targetservermask> [!]<+/-><identmask>@<hostmask> <duration> <timestamp> :<reason>
- * AVAAC GL * +*@something.fake 5 1214347529 :Some fake gline */
-int denora_event_gline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline((char *) "G", source, ac, av);
- return MOD_CONT;
-}
-
-/* <source> JU <targetservermask> [!]<+/-><jupedservername> <duration> <timestamp> :<reason>
- * AVAAC JU * +something.fake 5 1214347612 :Some fake jupe */
-int denora_event_jupe(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline((char *) "J", source, ac, av);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-void asuka_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- Server *s;
-
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "R %s :%s", letter,
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-/*************************************************************************/
-
-/* PART */
-/* ABAAA L #ircops */
-void asuka_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
- ud = find_uid(nick);
- if (buf)
- {
- send_cmd((ud ? ud->uid : nick), "L %s :%s", chan, buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : nick), "L %s", chan);
- }
-}
-
-/*************************************************************************/
-
-/* ABAAB J #ircops 1098031328 */
-/* AB B #opserv 1116184708 +smtin AKAAA:o */
-void asuka_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
-
- ud = find_uid(user);
-
- if (started)
- {
- send_cmd((ud ? ud->uid : user), "J %s %ld", channel,
- (long int) chantime);
- }
- else
- {
- send_cmd(p10id, "B %s %ld %s:o", channel,
- (long int) time(NULL), (ud ? ud->uid : user));
- }
-}
-
-/*************************************************************************/
-
-void asuka_cmd_squit(char *servname, char *message)
-{
- alog(LOG_PROTOCOL, "Servername %s Message %s", servname, message);
- send_cmd(p10id, "SQ %s :%s", p10id, message);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_connect(void)
-{
- if (!BadPtr(Numeric))
- {
- inttobase64(p10id, atoi(Numeric), 2);
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, p10id);
- asuka_cmd_pass(RemotePassword);
- asuka_cmd_server(ServerName, 1, ServerDesc);
- }
- else
- {
- alog(LOG_NORMAL, "Numeric is required for P10 ircds");
- exit(1);
- }
-}
-
-/*************************************************************************/
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* PASS */
-void asuka_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-/*************************************************************************/
-
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] :[DESCRIPTION] */
-/* SERVER irc.undernet.org 1 933022556 947908144 J10 AA]]] :[127.0.0.1] A Undernet Server */
-void asuka_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d %ld %lu J10 %s]]] +s :%s", servname, hop,
- (long int) denora->start_time, (long int) time(NULL), p10id,
- descript);
-}
-
-/*************************************************************************/
-
-/* GLOBOPS */
-void asuka_cmd_global(char *source, char *buf)
-{
- Uid *id;
-
- id = find_uid(source);
-
- send_cmd((id ? id->uid : ServerName), "WA :%s", buf);
-}
-
-/*************************************************************************/
-
-/* ABAAC A :I go away */
-/* ABAAC A */
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- User *u;
- Server *s;
- char *newav[5];
-
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
-
- if (ac < 4)
- return MOD_CONT;
-
- u = user_find(source);
- if (!u)
- s = server_find(source);
-
- newav[0] = av[0];
-
- if (u)
- newav[1] = u->nick;
- else if (s)
- newav[1] = s->name;
- else
- newav[1] = source;
-
- newav[2] = av[ac - 2];
- newav[3] = av[ac - 1];
- newav[4] = '\0';
-
- do_topic(4, newav);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- {
- return MOD_CONT;
- }
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* ABAAB Q :Quit */
-int denora_event_quit(char *source, int ac, char **av)
-{
- char *killer = NULL;
- char *msg = NULL;
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 1)
- return MOD_CONT;
-
- if (asuka_parse_lkill(av[0]) == 0)
- {
- do_quit(source, ac, av);
- }
- else
- {
- killer = asuka_lkill_killer(av[0]);
- msg = asuka_lkill_msg(av[0]);
- u = find_byuid(source);
-
- if (killer)
- m_kill(killer, (u ? u->nick : source), msg);
- else
- m_kill((u ? u->nick : source), (u ? u->nick : source), msg);
- }
-
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* User modes */
-/* ABAAA M Trystan +wg */
-
-/* Channel modes */
-/* ABAAA M #ircops +v ABAAB */
-int denora_event_mode(char *source, int ac, char **av)
-{
- User *u;
- Server *s;
- char *sender;
-
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
-
- if (ac < 2)
- return MOD_CONT;
-
- u = find_byuid(source);
-
- if (!u)
- {
- sender = source;
- }
- else
- {
- sender = u->nick;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- s = server_find(source);
- if (s)
- sender = av[0];
- do_umode(sender, ac, av);
- }
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- User *u, *k;
-
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
-
- if (ac != 2)
- return MOD_CONT;
-
- u = find_byuid(source);
- k = find_byuid(av[0]);
- m_kill((u ? u->nick : source), (k ? k->nick : av[0]), av[1]);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* ABAAA K #ircops ABAAC :Trystan` */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_p10_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* JOIN - is the same syntax */
-/* ABAAB J #ircops 1098031328 */
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* CREATE - p10 don't join empty channels the CREATE them */
-/* ABAAA C #ircops 1098031328 */
-int denora_event_create(char *source, int ac, char **av)
-{
- char *newav[3];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_join(source, ac, av);
-
- newav[0] = av[0];
- newav[1] = (char *) "+o";
- newav[2] = source;
-
- do_cmode(source, 3, newav);
-
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* BURST joins simlar to SJOIN */
-/* AB B #denora 1113091975 +tn ABAAB,ABAAA:o :%*!*@*.aol.com */
-/* s c 0 1 2 3 4 */
-/* AB B #test23 1115788230 ABAAB,ABAAA:o */
-/* s c 0 1 2 */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_p10_burst(source, ac, av);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* ABAAA MO AG */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-void asuka_cmd_mode(char *source, char *dest, char *buf)
-{
- Channel *c;
- alog(LOG_PROTOCOL, "MODE Source %s, dest %s, buf %s", source, dest,
- buf);
- if ((c = findchan(dest)))
- send_cmd(p10id, "M %s %s %ld", dest, buf, (long int) c->creation_time);
- else
- send_cmd(p10id, "M %s %s", dest, buf);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_notice(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "O %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_privmsg(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "P %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "O $%s :%s", dest, msg);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "P $%s :%s", dest, msg);
-}
-
-/*************************************************************************/
-
-/* QUIT */
-void asuka_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((ud ? ud->uid : source), "Q :%s", buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : source), "Q");
- }
-}
-
-/* Local kills handling - DrStein */
-int asuka_parse_lkill(char *message)
-{
- const char *localkillmsg = "Killed (";
-
- /* is it a Local kill message? */
- if ((strncmp(message, QuitPrefix, strlen(QuitPrefix)) != 0)
- && (strstr(message, localkillmsg) != NULL))
- return 1;
-
- return 0;
-}
-
-char *asuka_lkill_killer(char *message)
-{
- char *buf, *killer = NULL;
-
- /* Let's get the killer nickname */
- buf = sstrdup(message);
- killer = strtok(buf, " ");
- killer = strtok(NULL, " ");
- killer++;
-
- return killer;
-}
-
-/* Killed (*.beirut.com (KILL TESTING)) */
-char *asuka_lkill_msg(char *message)
-{
- char *msg = NULL;
-
- /* Let's get the kill message */
- msg = strchr(message, '(');
- msg = strchr(message, '(');
- msg[strlen(msg) - 2] = '\0';
- msg++; /* removes first character '(' */
-
- return msg;
-}
-
-/*************************************************************************/
-
-/* [NUMERIC PREFIX] N [NICK] [HOPCOUNT] [TIMESTAMP] [USERNAME] [HOST] <+modes> [BASE64 IP] [NUMERIC] :[USERINFO] */
-/* AF N Client1 1 947957573 User userhost.net +oiwg DAqAoB AFAAA :Generic Client. */
-void asuka_cmd_nick(char *nick, char *name, const char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, modes, p10id,
- (p10nickcnt + 'A'), name);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-/*************************************************************************/
-
-/* EVENT: SERVER */
-/* SERVER Auska.Nomadirc.net 1 1098025304 1098036331 J10 ABAP] + :Test Server */
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] [FLAGS] :[DESCRIPTION] */
-/* (AB S trystan.nomadirc.net 2 0 1106520454 P10 ACAP] +h :Test Server) */
-int denora_event_server(char *source, int ac, char **av)
-{
- Server *s;
- char uplinknum[3];
- *uplinknum = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- strlcpy(uplinknum, av[5], sizeof(uplinknum));
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- s = server_find(source);
- do_server((s ? s->name : source), av[0], av[1], av[7], uplinknum);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* ABAAA P ADAAB :help */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- Uid *id;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- id = find_nickuid(av[0]);
-
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, (id ? id->nick : av[0]), av[1]);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* ABAAA L #ircops */
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- m_whois(source, av[1]);
- }
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* AB G !1098031985.558075 services.nomadirc.net 1098031985.558075 */
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 1)
- return MOD_CONT;
-
- asuka_cmd_pong(p10id, av[0]);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-/* PONG */
-/* AB Z AB 1116103763 1116103763 0 1116103763.867010 */
-void asuka_cmd_pong(char *servname, char *who)
-{
- char *t, *s;
- uint32 ts, tsnow, value;
-
- SET_SEGV_LOCATION();
-
- t = myStrGetToken(who, '!', 1);
- s = myStrGetToken(t, '.', 0);
- if (!s)
- {
- ts = 0;
- alog(LOG_NORMAL,
- "This is an error, you should report this as a problem");
- alog(LOG_NORMAL, "Server Name %s : Who %s", servname, who);
- }
- else
- {
- ts = strtol(s, NULL, 10);
- }
- tsnow = time(NULL);
- value = tsnow - ts;
-
- SET_SEGV_LOCATION();
-
- if (denora->protocoldebug)
- {
- alog(LOG_PROTOCOL, "PONG: Server Name %s : Who %s", servname, who);
- }
- send_cmd(p10id, "Z %s %ld %ld %ld %s", p10id, (long int) ts,
- (long int) tsnow, (long int) value, militime_float(NULL));
-
- SET_SEGV_LOCATION();
-
- free(s);
- free(t);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), user, host, modes, p10id,
- (p10nickcnt + 'A'), real);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-/*************************************************************************/
-
-void asuka_cmd_eob(void)
-{
- send_cmd(p10id, "EB");
-}
-
-/*************************************************************************/
-
-void asuka_cmd_ping(char *server)
-{
- /* AB G !1115872042.64217 denora.nomadirc.net 1115872042.64217 */
- send_cmd(p10id, "G !%s %s %s", militime_float(NULL), server,
- militime_float(NULL));
-}
-
-/*************************************************************************/
-
-void asuka_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "O %s :\1%s \1", dest, buf);
-}
-
-/*************************************************************************/
-
-void asuka_cmd_version(char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(s_StatServ);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : s_StatServ), "V :%s",
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-/*************************************************************************/
-
-void asuka_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "MO :%s",
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-/*************************************************************************/
-int denora_event_notice(char *source, int ac, char **av)
-{
- User *user_s = NULL;
- User *user_r = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2 || *av[0] == '$' || strlen(source) == 2)
- {
- return MOD_CONT;
- }
-
- user_s = user_find(source);
- if (*av[0] == '#' && user_s)
- {
- m_notice(user_s->nick, av[0], av[1]);
- }
- else if (user_s)
- {
- user_r = user_find(av[0]);
- if (user_r)
- {
- m_notice(user_s->nick, user_r->nick, av[1]);
- }
- }
- return MOD_CONT;
-}
-
-int denora_event_clearmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- chan_clearmodes(source, ac, av);
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
- int status;
-
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD, m);
-
- m = createMessage("NOTICE", denora_event_null);
- addCoreMessage(IRCD, m);
-
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD, m);
-
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* let the p10 tokens begin */
-
- /* end of burst */
- m = createMessage("EB", denora_event_eob);
- status = addCoreMessage(IRCD, m);
- if (status != MOD_ERR_OK)
- {
- alog(LOG_DEBUG, "debug: unable to bind to EB error [%d]", status);
- }
-
- /* nick */
- m = createMessage("N", denora_event_nick);
- status = addCoreMessage(IRCD, m);
- if (status != MOD_ERR_OK)
- {
- alog(LOG_DEBUG, "debug: unable to bind to N error [%d]", status);
- }
-
- /* ping */
- m = createMessage("G", denora_event_ping);
- addCoreMessage(IRCD, m);
-
- /* pong */
- m = createMessage("Z", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* MODE */
- m = createMessage("M", denora_event_mode);
- addCoreMessage(IRCD, m);
-
- /* OPMODE */
- m = createMessage("OM", denora_event_mode);
- addCoreMessage(IRCD,m);
-
- /* CREATE */
- m = createMessage("C", denora_event_create);
- addCoreMessage(IRCD, m);
-
- /* JOIN */
- m = createMessage("J", denora_event_join);
- addCoreMessage(IRCD, m);
-
- /* QUIT */
- m = createMessage("Q", denora_event_quit);
- addCoreMessage(IRCD, m);
-
- /* TOPIC */
- m = createMessage("T", denora_event_topic);
- addCoreMessage(IRCD, m);
-
- /* MOTD */
- m = createMessage("MO", denora_event_motd);
- addCoreMessage(IRCD, m);
-
- /* KICK */
- m = createMessage("K", denora_event_kick);
- addCoreMessage(IRCD, m);
-
- /* AWAY */
- m = createMessage("A", denora_event_away);
- addCoreMessage(IRCD, m);
-
- /* ADMIN */
- m = createMessage("AD", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* PART */
- m = createMessage("L", denora_event_part);
- addCoreMessage(IRCD, m);
-
- /* BURST */
- m = createMessage("B", denora_event_sjoin);
- addCoreMessage(IRCD, m);
-
- /* PRIVMSG */
- m = createMessage("P", denora_event_privmsg);
- addCoreMessage(IRCD, m);
-
- /* NOTICE */
- m = createMessage("O", denora_event_notice);
- addCoreMessage(IRCD, m);
-
- /* SQUIT */
- m = createMessage("SQ", denora_event_squit);
- addCoreMessage(IRCD, m);
-
- /* INVITE */
- m = createMessage("I", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* DESYNCH */
- m = createMessage("DS", denora_event_error);
- addCoreMessage(IRCD, m);
-
- /* WALLOP */
- m = createMessage("WA", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* VERSION */
- m = createMessage("V", m_version);
- addCoreMessage(IRCD, m);
-
- /* WHOIS */
- m = createMessage("W", denora_event_whois);
- addCoreMessage(IRCD, m);
-
- /* SERVER */
- m = createMessage("S", denora_event_server);
- addCoreMessage(IRCD, m);
-
- /* PONG */
- m = createMessage("Z", denora_event_pong);
- addCoreMessage(IRCD, m);
-
- /* STATS */
- m = createMessage("R", m_stats);
- addCoreMessage(IRCD, m);
-
- /* ACCCOUNT */
- m = createMessage("AC", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* GLINE */
- m = createMessage("GL", denora_event_gline);
- addCoreMessage(IRCD, m);
-
- /* GLINE */
- m = createMessage("JU", denora_event_jupe);
- addCoreMessage(IRCD, m);
-
- /* INFO */
- m = createMessage("F", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* SETTIME */
- m = createMessage("SE", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* TIME */
- m = createMessage("TI", m_time);
- addCoreMessage(IRCD, m);
-
- /* TRACE */
- m = createMessage("TR", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* RPING */
- m = createMessage("RI", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* End of Burst Acknowledge */
- m = createMessage("EA", denora_event_null);
- addCoreMessage(IRCD, m);
-
- /* PRIVS */
- m = createMessage("PRIVS", denora_event_null);
- addCoreMessage(IRCD,m);
-
- /* CLEARMODE */
- m = createMessage("CM", denora_event_clearmode);
- addCoreMessage(IRCD,m);
-}
-
-/*************************************************************************/
-
-void moduleAddIRCDCmds(void)
-{
- pmodule_cmd_nick(asuka_cmd_nick);
- pmodule_cmd_mode(asuka_cmd_mode);
- pmodule_cmd_bot_nick(asuka_cmd_bot_nick);
- pmodule_cmd_notice(asuka_cmd_notice);
- pmodule_cmd_privmsg(asuka_cmd_privmsg);
- pmodule_cmd_serv_notice(asuka_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(asuka_cmd_serv_privmsg);
- pmodule_cmd_quit(asuka_cmd_quit);
- pmodule_cmd_pong(asuka_cmd_pong);
- pmodule_cmd_join(asuka_cmd_join);
- pmodule_cmd_part(asuka_cmd_part);
- pmodule_cmd_global(asuka_cmd_global);
- pmodule_cmd_squit(asuka_cmd_squit);
- pmodule_cmd_connect(asuka_cmd_connect);
- pmodule_cmd_eob(asuka_cmd_eob);
- pmodule_cmd_ctcp(asuka_cmd_ctcp);
- pmodule_cmd_version(asuka_cmd_version);
- pmodule_cmd_stats(asuka_cmd_stats);
- pmodule_cmd_motd(asuka_cmd_motd);
- pmodule_cmd_ping(asuka_cmd_ping);
-}
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- /* User Modes
- * o - oper
- * O - local op
- * i - invisible
- * w - receive wallops
- * s - servnotice
- * d - deaf
- * k - chserv
- * g - debug
- * r - account
- * x - hiddenhost
- * X - xtraop
- * n - no chan
- * I - noidle
- * R - accountonly
- * h - sethost
- */
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
-
- /* Channel Modes
- * p - private
- * s - secret
- * m - moderated
- * t - topic limit
- * i - invite only
- * n - no privmsgs
- * r - reg only
- * D - deljoins
- * d - wasdeljoin
- * c - no colour
- * C - no ctcp
- * N - no notice
- * u - no quit parts
- */
-
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_D, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_d, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_u, NULL, NULL);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleUpdateSQLChanMode();
-}
-
-/*************************************************************************/
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
- /* Actual module code stuff */
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
- /* protocol version and name that we support */
- pmodule_ircd_version("Asuka 1.2.1");
- /* set the flag of what ircd */
- pmodule_irc_var(IRC_ASUKA);
-
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
-
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
-
-/*************************************************************************/
-
-void DenoraFini(void)
-{
-}
+++ /dev/null
-/*************************************************************************/
-/* Asuka P10 ircd Protocol */
-/* (c) 2004-2013 Denora Team */
-/* Contact us at info@denorastats.org */
-/* */
-/* Please read COPYING and README for furhter details. */
-/* */
-/* Based on the original code of Anope by Anope Team. */
-/* Based on the original code of Thales by Lucas. */
-/* */
-/* */
-/* */
-/*************************************************************************/
-
-void asuka_cmd_nick(char *nick, char *name, const char *modes);
-void asuka_cmd_mode(char *source, char *dest, char *buf);
-void asuka_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void asuka_cmd_notice(char *source, char *dest, char *buf);
-void asuka_cmd_privmsg(char *source, char *dest, char *buf);
-void asuka_cmd_serv_notice(char *source, char *dest, char *msg);
-void asuka_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void asuka_cmd_quit(char *source, char *buf);
-void asuka_cmd_pong(char *servname, char *who);
-void asuka_cmd_join(char *user, char *channel, time_t chantime);
-void asuka_cmd_server(char *servname, int hop, char *descript);
-void asuka_cmd_part(char *nick, char *chan, char *buf);
-void asuka_cmd_global(char *source, char *buf);
-void asuka_cmd_squit(char *servname, char *message);
-void asuka_cmd_connect(void);
-void asuka_cmd_eob(void);
-void asuka_cmd_ctcp(char *source, char *dest, char *buf);
-void asuka_cmd_pass(char *pass);
-void asuka_cmd_version(char *server);
-void asuka_cmd_stats(char *sender, const char *letter, char *server);
-void asuka_cmd_motd(char *sender, char *server);
-void asuka_cmd_ping(char *server);
-
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_create(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_gline(char *source, int ac, char **av);
-int denora_event_jupe(char *source, int ac, char **av);
-int denora_event_clearmode(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *asuka_nickip(char *host);
-void IRCDModeInit(void);
-
-int asuka_parse_lkill(char *message);
-char *asuka_lkill_killer(char *message);
-char *asuka_lkill_msg(char *message);
+++ /dev/null
-/*************************************************************************/
-/* Beware IRCD P10 Protocol */
-/* (C) 2004-2013 Denora Team */
-/* Contact us at info@denorastats.org */
-/* */
-/* Please read COPYING and README for furhter details. */
-/* */
-/* Based on the original code of Anope by Anope Team. */
-/* Based on the original code of Thales by Lucas. */
-/* */
-/* */
-/* */
-/*************************************************************************/
-
-#include "denora.h"
-#include "beware.h"
-
-int p10nickcnt = 0;
-
-IRCDVar myIrcd[] =
-{
- {
- "Beware 1.5.7", /* ircd name */
- "+iok", /* StatServ mode */
- IRCD_DISABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- IRCD_DISABLE, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* Channel forwarding */
- IRCD_ENABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_ENABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- IRCD_DISABLE, /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- },
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, /* CHANMODES */
- 0, /* sjb64 */
- 0, /* nickchar */
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- /* User Modes
- * i - invisible. A user which has this mode is invisible to anyone who does not know his nick.
- * o - IRC Operator.
- * w - receive wallops
- * s - receive server notices
- * x - host mask. Your host will appear as something like "hidden-1234.domain.com" to other users.
- * d - deaf. Do not receive privmsg/notice messages in channels.
- * k - Service. can only be set by a server. cannot be kicked, deoped, killed.
- */
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
-
- /* Channel Modes
- * b (mask) - ban mask from channel.
- * i - invite only channel. Users cannot join the channel wihtout being invited by a chanop.
- * k (key) - channel key (password) needed to join.
- * l (number) - limit users in channel. If atleast this number of users is in the channel, no more users can join.
- * m - moderated. With this mode set, only chanops and users with voice can talk.
- * n - no external messages. If set, users which are not member of the channel cannot send messages.
- * o (nick) - Chanop. Prifixes a user's nick with @, allows setting channel modes and using /kick.
- * p - private. The channel will not be visible to those who don't know the name of the channel.
- * s - secret. the channel will not be listed at all.
- * t - only ops set topic.
- * v (nick) - voice. Prefixes a user's nick with +, allows users to talk in a moderated channel
- * c - no colors (must set qnetmodes in bircd.ini)
- * C - no CTCP to channel (must set qnetmodes in bircd.ini)
- * N - no notices to channel
- */
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleUpdateSQLChanMode();
-}
-
-/*************************************************************************/
-
-char *beware_nickip(char *host)
-{
- struct in_addr addr;
- int decoded;
-
- decoded = base64toIP(host);
- addr.s_addr = ntohl(decoded);
- return sstrdup(inet_ntoa(addr));
-}
-
-/* On Services connect the modes are given */
-/* AB N Trystan` 1 1098031638 tslee comcast.net +i AYAmXj ABAAC : real */
-/* On user join they are not */
-/* AB N Trystan 1 1101443066 tslee comcast.net AYAmXj ABAAB : real */
-
-/*
-** NICK - new
-** source = Ownering Server Prefix
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = username
-** parv[4] = host
-** parv[5] = modes
-** parv[6] = base64 ip
-** parv[7] = uid
-** parv[8] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = timestamp
-*/
-/* AB N Trystan 1 1116184299 tslee 24.2.101.227 +oiwgr trystan AYAmXj ABAAA :Dreams are answers to questions not yet asked */
-/* 0 1 2 3 4 5 6 7 8 9 */
-/* AK N OpServ 2 1116184708 OpServ srvx.net +oik AAAAAA AKAAA :Oper Service Bot */
-/* 0 1 2 3 4 5 6 7 8 */
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- Server *s;
- char *temp;
- char *ipchar;
-
- /* do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- char *ip, char *vhost, char *uid, int hopcount, char *modes) */
-
- temp = sstrdup(source);
-
- if (ac != 2)
- {
- s = server_find(source);
- *source = '\0';
- if (ac == 10)
- {
- ipchar = beware_nickip(av[7]);
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : temp),
- av[9], strtoul(av[2], NULL, 10), 0, ipchar, NULL,
- av[8], strtoul(av[1], NULL, 10), av[5], NULL);
- free(ipchar);
- }
- if (ac == 9)
- {
- /* server sending is not important for this */
- ipchar = beware_nickip(av[6]);
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : temp),
- av[8], strtoul(av[2], NULL, 10), 0, 0, NULL, av[7],
- strtoul(av[1], NULL, 10), av[5], NULL);
- free(ipchar);
- }
- }
- else
- {
- user = find_byuid(source);
- do_nick(user->nick, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- free(temp);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- {
- return MOD_CONT;
- }
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- s = server_find(source);
- if (stricmp(s->name, denora->uplink) == 0)
- {
- send_cmd(NULL, "%s EA", p10id);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
-
- /* let the p10 tokens begin */
-
- /* end of burst */
- m = createMessage("EB", denora_event_eob);
- addCoreMessage(IRCD,m);
- /* nick */
- m = createMessage("N", denora_event_nick);
- addCoreMessage(IRCD,m);
- /* ping */
- m = createMessage("G", denora_event_ping);
- addCoreMessage(IRCD,m);
- /* pong */
- m = createMessage("Z", denora_event_null);
- addCoreMessage(IRCD,m);
- /* MODE */
- m = createMessage("M", denora_event_mode);
- addCoreMessage(IRCD,m);
- /* CREATE */
- m = createMessage("C", denora_event_create);
- addCoreMessage(IRCD,m);
- /* JOIN */
- m = createMessage("J", denora_event_join);
- addCoreMessage(IRCD,m);
- /* QUIT */
- m = createMessage("Q", denora_event_quit);
- addCoreMessage(IRCD,m);
- /* TOPIC */
- m = createMessage("T", denora_event_topic);
- addCoreMessage(IRCD,m);
- /* MOTD */
- m = createMessage("MO", denora_event_motd);
- addCoreMessage(IRCD,m);
- /* KICK */
- m = createMessage("K", denora_event_kick);
- addCoreMessage(IRCD,m);
- /* AWAY */
- m = createMessage("A", denora_event_away);
- addCoreMessage(IRCD,m);
- /* ADMIN */
- m = createMessage("AD", denora_event_null);
- addCoreMessage(IRCD,m);
- /* PART */
- m = createMessage("L", denora_event_part);
- addCoreMessage(IRCD,m);
- /* BURST */
- m = createMessage("B", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- /* PRIVMSG */
- m = createMessage("P", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- /* NOTICE */
- m = createMessage("O", denora_event_notice);
- addCoreMessage(IRCD,m);
- /* SQUIT */
- m = createMessage("SQ", denora_event_squit);
- addCoreMessage(IRCD,m);
- /* INVITE */
- m = createMessage("I", denora_event_null);
- addCoreMessage(IRCD,m);
- /* DESYNCH */
- m = createMessage("DS", denora_event_error);
- addCoreMessage(IRCD,m);
- /* WALLOP */
- m = createMessage("WA", denora_event_null);
- addCoreMessage(IRCD,m);
- /* VERSION */
- m = createMessage("V", m_version);
- addCoreMessage(IRCD,m);
- /* WHOIS */
- m = createMessage("W", denora_event_whois);
- addCoreMessage(IRCD,m);
- /* SERVER */
- m = createMessage("S", denora_event_server);
- addCoreMessage(IRCD,m);
- /* PONG */
- m = createMessage("Z", denora_event_pong);
- addCoreMessage(IRCD,m);
- /* STATS */
- m = createMessage("R", m_stats);
- addCoreMessage(IRCD,m);
- /* ACCCOUNT */
- m = createMessage("AC", denora_event_null);
- addCoreMessage(IRCD,m);
- /* GLINE */
- m = createMessage("GL", denora_event_sgline);
- addCoreMessage(IRCD,m);
- /* INFO */
- m = createMessage("F", denora_event_null);
- addCoreMessage(IRCD,m);
- /* SETTIME */
- m = createMessage("SE", denora_event_null);
- addCoreMessage(IRCD,m);
- /* TIME */
- m = createMessage("TI", m_time);
- addCoreMessage(IRCD,m);
- /* TRACE */
- m = createMessage("TR", denora_event_null);
- addCoreMessage(IRCD,m);
- /* RPING */
- m = createMessage("RI", denora_event_null);
- addCoreMessage(IRCD,m);
- /* End of Burst Acknowledge */
- m = createMessage("EA", denora_event_null);
- addCoreMessage(IRCD,m);
-
-}
-
-/* *INDENT-ON* */
-
-/* AK GL * +*!*@*.aol.com 864000 :testing */
-int denora_event_sgline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline(source, ac, av);
- return MOD_CONT;
-}
-
-void beware_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- Server *s;
-
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "R %s %s", letter,
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-/* PART */
-void beware_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
- ud = find_uid(nick);
- if (buf)
- {
- send_cmd((ud ? ud->uid : nick), "L %s :%s", chan, buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : nick), "L %s", chan);
- }
-}
-
-/* ABAAB J #ircops 1098031328 */
-/* AB B #opserv 1116184708 +smtin AKAAA:o */
-void beware_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
-
- ud = find_uid(user);
-
- if (started)
- {
- send_cmd((ud ? ud->uid : user), "J %s %ld", channel,
- (long int) chantime);
- }
- else
- {
- send_cmd(p10id, "B %s %ld %s:o", channel,
- (long int) time(NULL), (ud ? ud->uid : user));
- }
-}
-
-void beware_cmd_squit(char *servname, char *message)
-{
- alog(LOG_PROTOCOL, "Servername %s Message %s", servname, message);
- send_cmd(p10id, "SQ %s :%s", p10id, message);
-}
-
-void beware_cmd_connect(void)
-{
- if (!BadPtr(Numeric))
- {
- inttobase64(p10id, atoi(Numeric), 2);
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, p10id);
- beware_cmd_pass(RemotePassword);
- beware_cmd_server(ServerName, 1, ServerDesc);
- }
- else
- {
- alog(LOG_NORMAL, "Numeric is required for P10 ircds");
- exit(1);
- }
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* PASS */
-void beware_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] :[DESCRIPTION] */
-/* SERVER irc.undernet.org 1 933022556 947908144 J10 AA]]] :[127.0.0.1] A Undernet Server */
-void beware_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d %ld %lu J10 %s]]] +s :%s", servname, hop,
- (long int) denora->start_time, (long int) time(NULL), p10id,
- descript);
-}
-
-/* GLOBOPS */
-void beware_cmd_global(char *source, char *buf)
-{
- Uid *id;
-
- id = find_uid(source);
-
- send_cmd((id ? id->uid : ServerName), "WA :%s", buf);
-}
-
-/* ABAAC A :I go away */
-/* ABAAC A */
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *newav[4];
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- u = user_find(source);
- newav[0] = av[0];
- newav[1] = u->nick;
- newav[2] = (ac == 2) ? itostr(time(NULL)) : av[ac - 2];
- newav[3] = av[ac - 1];
-
- do_topic(4, newav);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-/* ABAAB Q :Quit */
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/* User modes */
-/* ABAAA M Trystan +wg */
-
-/* Channel modes */
-/* ABAAA M #ircops +v ABAAB */
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* ABAAA K #ircops ABAAC :Trystan` */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_p10_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/* JOIN - is the same syntax */
-/* ABAAB J #ircops 1098031328 */
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/* CREATE - p10 don't join empty channels the CREATE them */
-/* ABAAA C #ircops 1098031328 */
-int denora_event_create(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/* BURST joins simlar to SJOIN */
-/* AB B #denora 1113091975 +tn ABAAB,ABAAA:o :%*!*@*.aol.com */
-/* s c 0 1 2 3 4 */
-/* AB B #test23 1115788230 ABAAB,ABAAA:o */
-/* s c 0 1 2 */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_p10_burst(source, ac, av);
- return MOD_CONT;
-}
-
-/* ABAAA MO AG */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void beware_cmd_mode(char *source, char *dest, char *buf)
-{
- alog(LOG_PROTOCOL, "MODE Source %s, dest %s, buf %s", source, dest,
- buf);
- send_cmd(p10id, "M %s %s %ld", dest, buf, (long int) time(NULL));
-}
-
-void beware_cmd_notice(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "O %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-void beware_cmd_privmsg(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "P %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-void beware_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void beware_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void beware_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((ud ? ud->uid : source), "QUIT :%s", buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : source), "QUIT");
- }
-}
-
-/* [NUMERIC PREFIX] N [NICK] [HOPCOUNT] [TIMESTAMP] [USERNAME] [HOST] <+modes> [BASE64 IP] [NUMERIC] :[USERINFO] */
-/* AF N Client1 1 947957573 User userhost.net +oiwg DAqAoB AFAAA :Generic Client. */
-void beware_cmd_nick(char *nick, char *name, const char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, modes, p10id,
- (p10nickcnt + 'A'), name);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-/* EVENT: SERVER */
-/* SERVER Auska.Nomadirc.net 1 1098025304 1098036331 J10 ABAP] + :Test Server */
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] [FLAGS] :[DESCRIPTION] */
-/* (AB S trystan.nomadirc.net 2 0 1106520454 P10 ACAP] +h :Test Server) */
-int denora_event_server(char *source, int ac, char **av)
-{
- Server *s;
- char uplinknum[2];
- *uplinknum = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- strncpy(uplinknum, av[5], 2);
- uplinknum[2] = '\0';
-
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[7], uplinknum);
- }
- else
- {
- s = server_find(source);
- do_server((s ? s->name : source), av[0], av[1], av[7], uplinknum);
- }
- return MOD_CONT;
-}
-
-/* ABAAA P ADAAB :help */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- Uid *id;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- id = find_nickuid(av[0]);
-
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, (id ? id->nick : av[0]), av[1]);
- return MOD_CONT;
-}
-
-/* ABAAA L #ircops */
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- m_whois(source, av[1]);
- }
- return MOD_CONT;
-}
-
-/* AB G !1098031985.558075 services.nomadirc.net 1098031985.558075 */
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- beware_cmd_pong(p10id, av[0]);
- return MOD_CONT;
-}
-
-/* PONG */
-/* AB Z AB 1116103763 1116103763 0 1116103763.867010 */
-void beware_cmd_pong(char *servname, char *who)
-{
- char *t, *s;
- uint32 ts, tsnow, value;
- t = myStrGetToken(who, '!', 1);
- s = myStrGetToken(t, '.', 0);
- if (!s)
- {
- ts = 0;
- }
- else
- {
- ts = strtol(s, NULL, 10);
- }
- tsnow = time(NULL);
- value = tsnow - ts;
- if (denora->protocoldebug)
- {
- alog(LOG_PROTOCOL, "PONG: Server Name %s : Who %s", servname, who);
- }
- send_cmd(p10id, "Z %s %ld %ld %ld %s", p10id, (long int) ts,
- (long int) tsnow, (long int) value, militime_float(NULL));
- free(s);
- free(t);
-}
-
-void beware_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), user, host, modes, p10id,
- (p10nickcnt + 'A'), real);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-void beware_cmd_eob(void)
-{
- send_cmd(p10id, "EB");
-}
-
-void beware_cmd_ping(char *server)
-{
- /* AB G !1115872042.64217 denora.nomadirc.net 1115872042.64217 */
- send_cmd(p10id, "G !%s %s %s", militime_float(NULL), server,
- militime_float(NULL));
-}
-
-void beware_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void beware_cmd_version(char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(s_StatServ);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : s_StatServ), "V %s",
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-void beware_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "MO %s",
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds(void)
-{
- pmodule_cmd_nick(beware_cmd_nick);
- pmodule_cmd_mode(beware_cmd_mode);
- pmodule_cmd_bot_nick(beware_cmd_bot_nick);
- pmodule_cmd_notice(beware_cmd_notice);
- pmodule_cmd_privmsg(beware_cmd_privmsg);
- pmodule_cmd_serv_notice(beware_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(beware_cmd_serv_privmsg);
- pmodule_cmd_quit(beware_cmd_quit);
- pmodule_cmd_pong(beware_cmd_pong);
- pmodule_cmd_join(beware_cmd_join);
- pmodule_cmd_part(beware_cmd_part);
- pmodule_cmd_global(beware_cmd_global);
- pmodule_cmd_squit(beware_cmd_squit);
- pmodule_cmd_connect(beware_cmd_connect);
- pmodule_cmd_eob(beware_cmd_eob);
- pmodule_cmd_ctcp(beware_cmd_ctcp);
- pmodule_cmd_version(beware_cmd_version);
- pmodule_cmd_stats(beware_cmd_stats);
- pmodule_cmd_motd(beware_cmd_motd);
- pmodule_cmd_ping(beware_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("Beware 1.5.7");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_BEWARE);
-
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/*************************************************************************/
-/* Beware IRCD P10 Protocol */
-/* (C) 2004-2013 Denora Team */
-/* Contact us at info@denorastats.org */
-/* */
-/* Please read COPYING and README for furhter details. */
-/* */
-/* Based on the original code of Anope by Anope Team. */
-/* Based on the original code of Thales by Lucas. */
-/* */
-/* */
-/* */
-/*************************************************************************/
-
-void beware_cmd_nick(char *nick, char *name, const char *modes);
-void beware_cmd_mode(char *source, char *dest, char *buf);
-void beware_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void beware_cmd_notice(char *source, char *dest, char *buf);
-void beware_cmd_privmsg(char *source, char *dest, char *buf);
-void beware_cmd_serv_notice(char *source, char *dest, char *msg);
-void beware_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void beware_cmd_quit(char *source, char *buf);
-void beware_cmd_pong(char *servname, char *who);
-void beware_cmd_join(char *user, char *channel, time_t chantime);
-void beware_cmd_server(char *servname, int hop, char *descript);
-void beware_cmd_part(char *nick, char *chan, char *buf);
-void beware_cmd_global(char *source, char *buf);
-void beware_cmd_squit(char *servname, char *message);
-void beware_cmd_connect(void);
-void beware_cmd_eob(void);
-void beware_cmd_ctcp(char *source, char *dest, char *buf);
-void beware_cmd_pass(char *pass);
-void beware_cmd_version(char *server);
-void beware_cmd_stats(char *sender, const char *letter, char *server);
-void beware_cmd_motd(char *sender, char *server);
-void beware_cmd_ping(char *server);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_create(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *beware_nickip(char *host);
-
+++ /dev/null
-/* DreamForge IRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "dreamforge.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "DreamForge 4.6.7", /* ircd name */
- "+io", /* StatServ mode */
- IRCD_DISABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_ENABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- IRCD_DISABLE, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL, /* User Modes */
- NULL, /* Channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* Channel forwarding */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_DISABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- IRCD_DISABLE, /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_DISABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- CAPAB_TOKEN, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
-
- /* Channel Modes */
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-}
-
-
-/*
- 1 : const char *source
- 2 : char *nick
- 3 : char *username
- 4 : char *host,
- 5 : char *server
- 6 : char *realname
- 7 : time_t ts
- 8 : uint32 svid
- 9 : uint32 ip
- 10 : char *vhost
- 11 : char *uid
- 12 : int hopcount
- 13 : char *modes
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = host_resolve(av[5]);
- do_nick(source, av[0], av[3], av[4], av[5], av[7],
- strtoul(av[2], NULL, 10), strtoul(av[6], NULL, 0), ipchar,
- NULL, NULL, strtoul(av[1], NULL, 10), NULL, NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PROTOCTL", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/* PART */
-void dreamforge_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-void dreamforge_cmd_join(char *user, char *channel, time_t chantime)
-{
- alog(LOG_PROTOCOL, "User %s joins %s at %ld", user, channel,
- (long int) chantime);
- send_cmd(user, "JOIN %s", channel);
-}
-
-void dreamforge_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PASS */
-void dreamforge_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-void dreamforge_cmd_capab(void)
-{
- send_cmd(NULL, "PROTOCTL NOQUIT");
-}
-
-/* SERVER name hop descript */
-void dreamforge_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-void dreamforge_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- dreamforge_cmd_capab();
- dreamforge_cmd_pass(RemotePassword);
- dreamforge_cmd_server(ServerName, 1, ServerDesc);
-}
-
-/* GLOBOPS */
-void dreamforge_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void dreamforge_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void dreamforge_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void dreamforge_cmd_notice2(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE %s :%s", dest, msg);
-}
-
-void dreamforge_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void dreamforge_cmd_privmsg2(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, msg);
-}
-
-void dreamforge_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void dreamforge_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void dreamforge_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-void dreamforge_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
- name);
- denora_cmd_mode(nick, nick, "%s", modes);
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- dreamforge_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-/* PONG */
-void dreamforge_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void dreamforge_cmd_bot_nick(char *nick, char *user, char *host,
- char *real, char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
- (long int) time(NULL), user, host, ServerName, real);
- denora_cmd_mode(nick, nick, "MODE %s", modes);
-}
-
-void dreamforge_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void dreamforge_cmd_eob(void)
-{
-}
-
-void moduleAddIRCDCmds(void)
-{
- pmodule_cmd_eob(dreamforge_cmd_eob);
- pmodule_cmd_nick(dreamforge_cmd_nick);
- pmodule_cmd_mode(dreamforge_cmd_mode);
- pmodule_cmd_bot_nick(dreamforge_cmd_bot_nick);
- pmodule_cmd_notice(dreamforge_cmd_notice);
- pmodule_cmd_privmsg(dreamforge_cmd_privmsg);
- pmodule_cmd_serv_notice(dreamforge_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(dreamforge_cmd_serv_privmsg);
- pmodule_cmd_quit(dreamforge_cmd_quit);
- pmodule_cmd_pong(dreamforge_cmd_pong);
- pmodule_cmd_join(dreamforge_cmd_join);
- pmodule_cmd_part(dreamforge_cmd_part);
- pmodule_cmd_global(dreamforge_cmd_global);
- pmodule_cmd_squit(dreamforge_cmd_squit);
- pmodule_cmd_connect(dreamforge_cmd_connect);
- pmodule_cmd_ctcp(dreamforge_cmd_ctcp);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion
- ("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("DreamForge 4.6.7");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_DREAMFORGE);
-
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- UplinkSynced = 1;
- return MOD_CONT;
-}
+++ /dev/null
-/* DreamForge IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- */
-
-void dreamforge_cmd_nick(char *nick, char *name, const char *modes);
-void dreamforge_cmd_mode(char *source, char *dest, char *buf);
-void dreamforge_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void dreamforge_cmd_kick(char *source, char *chan, char *user, char *buf);
-void dreamforge_cmd_notice_ops(char *source, char *dest, char *buf);
-void dreamforge_cmd_notice(char *source, char *dest, char *buf);
-void dreamforge_cmd_notice2(char *source, char *dest, char *msg);
-void dreamforge_cmd_privmsg(char *source, char *dest, char *buf);
-void dreamforge_cmd_privmsg2(char *source, char *dest, char *msg);
-void dreamforge_cmd_serv_notice(char *source, char *dest, char *msg);
-void dreamforge_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void dreamforge_cmd_bot_chan_mode(char *nick, char *chan);
-void dreamforge_cmd_quit(char *source, char *buf);
-void dreamforge_cmd_pong(char *servname, char *who);
-void dreamforge_cmd_join(char *user, char *channel, time_t chantime);
-void dreamforge_cmd_part(char *nick, char *chan, char *buf);
-void dreamforge_cmd_global(char *source, char *buf);
-void dreamforge_cmd_squit(char *servname, char *message);
-void dreamforge_cmd_connect(void);
-void dreamforge_cmd_ctcp(char *source, char *dest, char *buf);
-void dreamforge_cmd_server(char *servname, int hop, char *descript);
-void dreamforge_cmd_pass(char *pass);
-void dreamforge_cmd_capab(void);
-void dreamforge_cmd_eob(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-/* FreeQuest IRCd 2.1.*
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested against fqircd-2.1(134902769)
- *
- * Notes
- * 1 - fqircd doesn't have a "chghost" like command it does do vhosting
- * just as a mode.. till then "vhost" is disabled
- * [Dec 29 00:09:31.036865 2005] debug: Received: :Trystan MODE Trystan :+q
- */
-
-/*************************************************************************/
-
-#include "denora.h"
-#include "fqircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "FreeQuest IRCd 2.1.3*", /* ircd name */
- "+io", /* StatServ mode */
- IRCD_DISABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_ENABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- CMODE_j, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_q, /* umode for vhost */
- IRCD_DISABLE, /* channel owner */
- IRCD_DISABLE, /* channel mode protect */
- IRCD_DISABLE, /* channel mode halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- 'j', /* flood other */
- 'q', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 protocol */
- IRCD_DISABLE, /* ts6 protocol */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- CAPAB_TSMODE, /* TSMODE */
- CAPAB_UNCONNECT, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- CAPAB_BURST, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- CAPAB_DKEY, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- CAPAB_DOZIP, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_F, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_e, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_j, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_q, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
-
- /* Channel Modes */
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_j, set_flood_alt, get_flood_alt);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_q, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-void fqircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-void fqircd_cmd_mode(char *source, char *dest, char *buf)
-{
- if (ircdcap->tsmode)
- {
- if (denora->capab & ircdcap->tsmode)
- {
- send_cmd(source, "MODE %s 0 %s", dest, buf);
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-/* EVENT: SJOIN */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-char *fqircd_nickip(char *host)
-{
- struct in_addr addr;
-
- addr.s_addr = htonl(strtoul(host, NULL, 0));
- return sstrdup(inet_ntoa(addr));
-}
-
-/*
-** NICK - new
-** source = NULL
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = modes
-** parv[4] = username
-** parv[5] = hostname
-** parv[6] = server
-** parv[7] = servicestamp
-** parv[8] = IP
-** parv[9] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = hopcount
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- ipchar = fqircd_nickip(av[8]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 0), av[3],
- NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-/* EVENT : CAPAB */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("HS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("MS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("OS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("SZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("LUSERSLOCK",denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_burst);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RESYNCH", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* PART */
-void fqircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* JOIN - SJOIN */
-void fqircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- if (started)
- {
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
- }
- else
- {
- send_cmd(ServerName, "SJOIN %ld %s +nt :%s", (long int) chantime,
- channel, user);
- }
-}
-
-void fqircd_cmd_burst(void)
-{
- send_cmd(NULL, "BURST");
-}
-
-/* SQUIT */
-/*
- * parv[0] = sender prefix
- * parv[1] = server name
- * parv[2] = comment
-*/
-void fqircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PONG */
-void fqircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void fqircd_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 3 1 0 :%ld", (long int) time(NULL));
-}
-
-/* PASS */
-void fqircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER */
-void fqircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* CAPAB */
-void fqircd_cmd_capab(void)
-{
- send_cmd(NULL,
- "CAPAB SSJOIN NOQUIT BURST UNCONNECT NICKIP TSMODE TS3");
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-void fqircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- fqircd_cmd_pass(RemotePassword);
- fqircd_cmd_capab();
- fqircd_cmd_server(ServerName, 1, ServerDesc);
- fqircd_cmd_svinfo();
- fqircd_cmd_burst();
-}
-
-/* EVENT : SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
-
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-/* EVENT : PRIVMSG */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT : SVINFO */
-/*
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: MODE */
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* EVENT: KILL */
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT: KICK */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: JOIN */
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: MOTD */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* NOTICE */
-void fqircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void fqircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void fqircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void fqircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* GLOBOPS */
-void fqircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-void fqircd_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-/* QUIT */
-void fqircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- fqircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-void fqircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-void fqircd_cmd_eob(void)
-{
- send_cmd(NULL, "BURST 0");
-}
-
-void fqircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_burst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac)
- {
- update_sync_state(source, SYNC_COMPLETE);
- }
- return MOD_CONT;
-}
-
-void fqircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void fqircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void fqircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(fqircd_cmd_nick);
- pmodule_cmd_mode(fqircd_cmd_mode);
- pmodule_cmd_bot_nick(fqircd_cmd_bot_nick);
- pmodule_cmd_notice(fqircd_cmd_notice);
- pmodule_cmd_privmsg(fqircd_cmd_privmsg);
- pmodule_cmd_serv_notice(fqircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(fqircd_cmd_serv_privmsg);
- pmodule_cmd_quit(fqircd_cmd_quit);
- pmodule_cmd_pong(fqircd_cmd_pong);
- pmodule_cmd_join(fqircd_cmd_join);
- pmodule_cmd_part(fqircd_cmd_part);
- pmodule_cmd_global(fqircd_cmd_global);
- pmodule_cmd_squit(fqircd_cmd_squit);
- pmodule_cmd_connect(fqircd_cmd_connect);
- pmodule_cmd_eob(fqircd_cmd_eob);
- pmodule_cmd_ctcp(fqircd_cmd_ctcp);
- pmodule_cmd_version(fqircd_cmd_version);
- pmodule_cmd_stats(fqircd_cmd_stats);
- pmodule_cmd_motd(fqircd_cmd_motd);
- pmodule_cmd_ping(fqircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
- pmodule_ircd_version("FreeQuest IRCd 2.1.3*");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_FQIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* FreeQuest IRCd 2.1.*
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested against fqircd-2.1(134902769)
- */
-
-/*************************************************************************/
-
-void fqircd_cmd_nick(char *nick, char *name, const char *modes);
-void fqircd_cmd_mode(char *source, char *dest, char *buf);
-void fqircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void fqircd_cmd_notice(char *source, char *dest, char *buf);
-void fqircd_cmd_privmsg(char *source, char *dest, char *buf);
-void fqircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void fqircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void fqircd_cmd_quit(char *source, char *buf);
-void fqircd_cmd_pong(char *servname, char *who);
-void fqircd_cmd_join(char *user, char *channel, time_t chantime);
-void fqircd_cmd_part(char *nick, char *chan, char *buf);
-void fqircd_cmd_global(char *source, char *buf);
-void fqircd_cmd_squit(char *servname, char *message);
-void fqircd_cmd_connect(void);
-void fqircd_cmd_eob(void);
-void fqircd_cmd_ctcp(char *source, char *dest, char *buf);
-void fqircd_cmd_version(char *server);
-void fqircd_cmd_stats(char *sender, const char *letter, char *server);
-void fqircd_cmd_motd(char *sender, char *server);
-void fqircd_cmd_ping(char *server);
-void fqircd_cmd_pass(char *pass);
-void fqircd_cmd_server(char *servname, int hop, char *descript);
-void fqircd_cmd_capab(void);
-void fqircd_cmd_svinfo(void);
-void fqircd_cmd_burst(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *fqircd_nickip(char *host);
+++ /dev/null
-/* Hyperion functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "hyperion.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "Hyperion IRCD", /* ircd name */
- "+FohmipeBS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL,
- NULL, /* Channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* TS6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- IRCD_DISABLE /* Persistent channel mode */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- CAPAB_QS, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_U, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_v, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_V, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_Y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_Z, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_0, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_1, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_2, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_3, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_4, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_5, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_9, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_F, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_l, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_u, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_e, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_B, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_H, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_K, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_T, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
-
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_I, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_a, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('!', 'a', STATUS_PROTECTED);
-
- ModuleUpdateSQLChanMode();
-}
-
-void hyperion_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void hyperion_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void hyperion_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void hyperion_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void hyperion_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "SMO 8388609 2 :%s", buf);
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- 1 : const char *source
- 2 : char *nick
- 3 : char *username
- 4 : char *host,
- 5 : char *server
- 6 : char *realname
- 7 : time_t ts
- 8 : uint32 svid
- 9 : uint32 ip
- 10 : char *vhost
- 11 : char *uid
- 12 : int hopcount
- 13 : char *modes
-
-Source
-ac[0] = Trystan
-ac[1] = 1
-ac[2] = 1120404345
-ac[3] = +AcdDfFGhHkKloRsSTuUvVWXyYzZ0123459
-ac[4] = ~trystan
-ac[5] = hyperion.nomadirc.net <-- host
-ac[6] = hyperion.nomadirc.net <-- server
-ac[7] = 127.0.0.1 <-- nickip
-ac[8] = Trystan Scott Lee
-
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- user = do_nick(source, av[0], av[4], av[5], av[6], av[8],
- strtoul(av[2], NULL, 10), 0, av[7], NULL, NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 5)
- return MOD_CONT;
-
- av[0] = av[1];
- av[1] = av[3];
- av[3] = av[4];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_pass);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("EOB", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("OPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SETNAME", denora_event_setname);
- addCoreMessage(IRCD,m);
- m = createMessage("SETIDENT", denora_event_setident);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-void hyperion_cmd_join(char *user, char *channel, time_t chantime)
-{
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
-}
-
-void hyperion_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void hyperion_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void hyperion_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 4 4 0 :%ld", (long int) time(NULL));
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EOB - Can do EOB message
- HUB - This server is a HUB
- UID - Can do UIDs
- PARA - supports invite broadcasting for +p
-*/
-void hyperion_cmd_capab(void)
-{
- send_cmd(NULL, "CAPAB :QS KLN UNKLN QU DNCR SRV CHW");
-}
-
-void hyperion_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/* PASS */
-void hyperion_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER name hop descript */
-void hyperion_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d 0 :%s", servname, hop, descript);
-}
-
-void hyperion_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- hyperion_cmd_pass(RemotePassword);
- hyperion_cmd_capab();
- hyperion_cmd_server(ServerName, 1, ServerDesc);
- hyperion_cmd_svinfo();
-}
-
-void hyperion_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0.0.0.0 :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-void hyperion_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* PONG */
-void hyperion_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- hyperion_cmd_pong((ac > 1 ? av[1] : ServerName), av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-void hyperion_cmd_eob(void)
-{
- send_cmd(ServerName, "EOB");
-}
-
-void hyperion_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void hyperion_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void hyperion_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0.0.0.0 :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-/* QUIT */
-void hyperion_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_pass(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* SQUIT */
-void hyperion_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 2)
- {
- return MOD_CONT;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void hyperion_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(hyperion_cmd_nick);
- pmodule_cmd_mode(hyperion_cmd_mode);
- pmodule_cmd_bot_nick(hyperion_cmd_bot_nick);
- pmodule_cmd_notice(hyperion_cmd_notice);
- pmodule_cmd_privmsg(hyperion_cmd_privmsg);
- pmodule_cmd_serv_notice(hyperion_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(hyperion_cmd_serv_privmsg);
- pmodule_cmd_quit(hyperion_cmd_quit);
- pmodule_cmd_pong(hyperion_cmd_pong);
- pmodule_cmd_join(hyperion_cmd_join);
- pmodule_cmd_part(hyperion_cmd_part);
- pmodule_cmd_global(hyperion_cmd_global);
- pmodule_cmd_squit(hyperion_cmd_squit);
- pmodule_cmd_connect(hyperion_cmd_connect);
- pmodule_cmd_eob(hyperion_cmd_eob);
- pmodule_cmd_ctcp(hyperion_cmd_ctcp);
- pmodule_cmd_version(hyperion_cmd_version);
- pmodule_cmd_stats(hyperion_cmd_stats);
- pmodule_cmd_motd(hyperion_cmd_motd);
- pmodule_cmd_ping(hyperion_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("Hyperion IRCD");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_HYPERION);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* Hyperion
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void hyperion_cmd_nick(char *nick, char *name, const char *modes);
-void hyperion_cmd_mode(char *source, char *dest, char *buf);
-void hyperion_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void hyperion_cmd_notice(char *source, char *dest, char *buf);
-void hyperion_cmd_privmsg(char *source, char *dest, char *buf);
-void hyperion_cmd_serv_notice(char *source, char *dest, char *msg);
-void hyperion_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void hyperion_cmd_quit(char *source, char *buf);
-void hyperion_cmd_pong(char *servname, char *who);
-void hyperion_cmd_join(char *user, char *channel, time_t chantime);
-void hyperion_cmd_part(char *nick, char *chan, char *buf);
-void hyperion_cmd_global(char *source, char *buf);
-void hyperion_cmd_squit(char *servname, char *message);
-void hyperion_cmd_connect(void);
-void hyperion_cmd_eob(void);
-void hyperion_cmd_ctcp(char *source, char *dest, char *buf);
-void hyperion_cmd_version(char *server);
-void hyperion_cmd_stats(char *sender, const char *letter, char *server);
-void hyperion_cmd_motd(char *sender, char *server);
-void hyperion_cmd_ping(char *server);
-void hyperion_cmd_pass(char *pass);
-void hyperion_cmd_server(char *servname, int hop, char *descript);
-void hyperion_cmd_capab(void);
-void hyperion_cmd_svinfo(void);
-void IRCDModeInit(void);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-
-/* InspIRCd 1.0 Beta 6 functions
- *
- * (C) 2005-2006 Craig Edwards <brain@inspircd.org>
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * Following modules loaded during testing
- * <module name="m_chanprotect.so">
- * <module name="m_globops.so">
- * <module name="m_noinvite.so">
- * <module name="m_services.so">
- * <module name="m_chghost.so">
- * <module name="m_nokicks.so">
- * <module name="m_sethost.so">
- * <module name="m_cloaking.so">
- * <module name="m_nonicks.so">
- * <module name="m_sajoin.so">
- * <module name="m_setidle.so">
- * <module name="m_blockcolor.so">
- * <module name="m_nonotice.so">
- * <module name="m_samode.so">
- * <module name="m_park.so">
- * <module name="m_setname.so">
- * <module name="m_botmode.so">
- * <module name="m_knock.so">
- * <module name="m_operchans.so">
- * <module name="m_showwhois.so">
- * <module name="m_stripcolor.so">
- * <module name="m_censor.so">
- * <module name="m_redirect.so">
- * <module name="m_chanfilter.so">
- * <module name="m_noctcp.so">
- *
- */
-
-/*************************************************************************/
-
-/* ***** WARNING ******
- *
- * While InspIRCd beta 6 is relatively stable, it is very picky
- * about the sources commands come from. If i've made commands
- * come from nicks or servers here, where it looks odd to you,
- * this is NORMAL and the way it should be done.
- *
- * Also, some commands arent implemented yet (like remote MOTD
- * and some work differently (VERSION) but its now a proper
- * protocol that links to a proper network (none of this mesh bs).
- */
-
-#include "denora.h"
-#include "inspircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "InspIRCd 1.0 Beta 6", /* ircd name */
- "+io", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_ENABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_ENABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- CMODE_L, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_ENABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_ENABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- '&', /* SJOIN ban char */
- '\"', /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_ENABLE, /* channel owner */
- IRCD_ENABLE, /* channel mode protect */
- IRCD_ENABLE, /* channel mode halfop */
- NULL,
- NULL,
- 'f', /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- 't', /* vhost other */
- 'L', /* channek linking */
- IRCD_DISABLE, /* p10 protocol */
- IRCD_DISABLE, /* ts6 protocol */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- CAPAB_SSJ3, /* SSJ3 */
- CAPAB_NICK2, /* NICK2 */
- CAPAB_UMODE2, /* UMODE2 */
- CAPAB_VL, /* VL */
- CAPAB_TLKEXT, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0,
- 0,
- 0,
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_B, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
-
- /* Channel Modes */
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_G, NULL, NULL);
- CreateChanMode(CMODE_J, NULL, NULL);
- CreateChanMode(CMODE_K, NULL, NULL);
- CreateChanMode(CMODE_L, set_redirect, get_redirect);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_P, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_T, NULL, NULL);
- CreateChanMode(CMODE_V, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_g, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_j, set_flood_alt, get_flood_alt);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('~', 'a', STATUS_PROTECTED);
- ModuleSetChanUMode('*', 'q', STATUS_OWNER);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("FJOIN", denora_event_fjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("IDLE", denora_event_idle);
- addCoreMessage(IRCD,m);
-
- m = createMessage("FHOST", denora_event_fhost);
- addCoreMessage(IRCD,m);
- m = createMessage("FNAME", denora_event_fname);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("METADATA", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("FMODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("FTOPIC", denora_event_ftopic);
- addCoreMessage(IRCD,m);
- m = createMessage("VERSION", denora_event_version);
- addCoreMessage(IRCD,m);
- m = createMessage("OPERTYPE", denora_event_opertype);
- addCoreMessage(IRCD,m);
- m = createMessage("ADDLINE", denora_event_addline);
- addCoreMessage(IRCD,m);
- m = createMessage("GLINE", denora_event_gline);
- addCoreMessage(IRCD,m);
- m = createMessage("ZLINE", denora_event_zline);
- addCoreMessage(IRCD,m);
- m = createMessage("QLINE", denora_event_qline);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ELINE", denora_event_eline);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ENDBURST", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("AES", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_svsnick);
- addCoreMessage(IRCD,m);
- m = createMessage("SANICK", denora_event_sanick);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SAMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSJOIN", denora_event_svsjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SAJOIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SAPART", denora_event_null);
- addCoreMessage(IRCD,m);
-
-}
-
-/* *INDENT-ON* */
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- update_sync_state(denora->uplink, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-
-int denora_event_svsnick(char *source, int ac, char **av)
-{
- do_nick(av[0], av[1], NULL, NULL, NULL,
- NULL, strtoul(av[2], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- return MOD_CONT;
-}
-
-int denora_event_sanick(char *source, int ac, char **av)
-{
- do_nick(av[0], av[1], NULL, NULL, NULL,
- NULL, (int) time(NULL), 0, NULL, NULL, NULL, 0, NULL, NULL);
- return MOD_CONT;
-}
-
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- denora_event_mode(av[0], 2, av);
- return MOD_CONT;
-}
-
-/*
-[Dec 30 16:03:09.300934 2005] Source inspircd.nomadirc.net
-[Dec 30 16:03:09.300990 2005] av[0] = Q
-[Dec 30 16:03:09.301046 2005] av[1] = ChanServ
-[Dec 30 16:03:09.301102 2005] av[2] = <Config>
-[Dec 30 16:03:09.301158 2005] av[3] = 1135968312
-[Dec 30 16:03:09.301214 2005] av[4] = 0
-[Dec 30 16:03:09.301270 2005] av[5] = Reserved For Services
-
-*/
-int denora_event_addline(char *source, int ac, char **av)
-{
- char *user, *host;
- int checkdur;
- char buf[BUFSIZE];
- checkdur = atoi(av[4]);
-
- if (checkdur != 0)
- {
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) checkdur + time(NULL));
- }
- else
- {
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) checkdur);
- }
-
- if (!stricmp(av[0], "G") || !stricmp(av[0], "E"))
- {
- user = myStrGetToken(av[1], '@', 0);
- host = myStrGetToken(av[1], '@', 1);
- sql_do_server_bans_add(av[0], user, host, av[2], av[3], buf,
- av[5]);
- }
- else if (!stricmp(av[0], "Q"))
- {
- sql_do_server_bans_add(av[0], (char *) "*", av[1], av[2], av[3],
- buf, av[5]);
- }
- else
- {
- sql_do_server_bans_add(av[0], (char *) "", av[1], av[2], av[3],
- buf, av[5]);
- }
- return MOD_CONT;
-}
-
-/* :<source nickname> GLINE <user@host> <duration> :<reason> */
-
-int denora_event_gline(char *source, int ac, char **av)
-{
- char *user, *host;
- int checkdur;
- char buf[BUFSIZE];
- char buf2[BUFSIZE];
-
- user = myStrGetToken(av[0], '@', 0);
- host = myStrGetToken(av[0], '@', 1);
-
- if (ac >= 3)
- {
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- checkdur = atoi(av[1]);
- if (checkdur != 0)
- {
- ircsnprintf(buf2, BUFSIZE, "%ld",
- (long int) checkdur + time(NULL));
- }
- else
- {
- ircsnprintf(buf2, BUFSIZE, "%ld", (long int) checkdur);
- }
- sql_do_server_bans_add((char *) "G", user, host, source, buf, buf2,
- av[2]);
- }
- else
- {
- sql_do_server_bans_remove((char *) "G", user, host);
- }
- return MOD_CONT;
-}
-
-int denora_event_eline(char *source, int ac, char **av)
-{
- char *user, *host;
- int checkdur;
- char buf[BUFSIZE];
- char buf2[BUFSIZE];
-
- user = myStrGetToken(av[0], '@', 0);
- host = myStrGetToken(av[0], '@', 1);
-
- if (ac >= 3)
- {
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- checkdur = atoi(av[1]);
- if (checkdur != 0)
- {
- ircsnprintf(buf2, BUFSIZE, "%ld",
- (long int) checkdur + time(NULL));
- }
- else
- {
- ircsnprintf(buf2, BUFSIZE, "%ld", (long int) checkdur);
- }
- sql_do_server_bans_add((char *) "E", user, host, source, buf, buf2,
- av[2]);
- }
- else
- {
- sql_do_server_bans_remove((char *) "E", user, host);
- }
- return MOD_CONT;
-}
-
-int denora_event_zline(char *source, int ac, char **av)
-{
- int checkdur;
- char buf[BUFSIZE];
- char buf2[BUFSIZE];
-
- if (ac >= 3)
- {
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- checkdur = atoi(av[1]);
- if (checkdur != 0)
- {
- ircsnprintf(buf2, BUFSIZE, "%ld",
- (long int) checkdur + time(NULL));
- }
- else
- {
- ircsnprintf(buf2, BUFSIZE, "%ld", (long int) checkdur);
- }
- sql_do_server_bans_add((char *) "Z", (char *) "", av[0], source,
- buf, buf2, av[2]);
- }
- else
- {
- sql_do_server_bans_remove((char *) "Z", (char *) "", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_qline(char *source, int ac, char **av)
-{
- int checkdur;
- char buf[BUFSIZE];
- char buf2[BUFSIZE];
-
- if (ac >= 3)
- {
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- checkdur = atoi(av[1]);
- if (checkdur != 0)
- {
- ircsnprintf(buf2, BUFSIZE, "%ld",
- (long int) checkdur + time(NULL));
- }
- else
- {
- ircsnprintf(buf2, BUFSIZE, "%ld", (long int) checkdur);
- }
- sql_do_server_bans_add((char *) "Q", (char *) "*", av[0], source,
- buf, buf2, av[2]);
- }
- else
- {
- sql_do_server_bans_remove((char *) "Q", (char *) "*", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_ftopic(char *source, int ac, char **av)
-{
- /* :source FTOPIC channel ts setby :topic */
- char *temp;
- if (ac < 4)
- return MOD_CONT;
- temp = av[1]; /* temp now holds ts */
- av[1] = av[2]; /* av[1] now holds set by */
- av[2] = temp; /* av[2] now holds ts */
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_version(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_version(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_opertype(char *source, int ac, char **av)
-{
- /* opertype is equivalent to mode +o because servers
- dont do this directly */
- char *newav[2];
- newav[0] = source;
- newav[1] = (char *) "+o";
- return denora_event_mode(source, 2, newav);
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- return MOD_CONT;
-}
-
-void inspircd_cmd_nick(char *nick, char *name, const char *modes)
-{
- /* :test.chatspike.net NICK 1133519355 Brain synapse.brainbox.winbot.co.uk netadmin.chatspike.net ~brain +xwsioS 10.0.0.2 :Craig Edwards */
- send_cmd(ServerName, "NICK %ld %s %s %s %s +%s 0.0.0.0 :%s",
- (long int) time(NULL), nick, ServiceHost, ServiceHost,
- ServiceUser, modes, name);
- send_cmd(ServerName, "OPERTYPE Service");
-}
-
-void inspircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(ServerName, "NICK %ld %s %s %s %s +%s 0.0.0.0 :%s",
- (long int) time(NULL), nick, host, host, user, modes, real);
- send_cmd(ServerName, "OPERTYPE Bot");
-}
-
-void inspircd_cmd_notice(char *source, char *dest, char *buf)
-{
- if (!buf)
- {
- return;
- }
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void inspircd_cmd_stats(char *sender, const char *letter, char *server)
-{
-}
-
-void inspircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void inspircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void inspircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void inspircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT :Leaving");
- }
-}
-
-/* PROTOCTL */
-void inspircd_cmd_capab()
-{
-}
-
-static char currentpass[1024];
-
-/* PASS */
-void inspircd_cmd_pass(char *pass)
-{
- strncpy(currentpass, pass, 1024);
-}
-
-/* SERVER name hop descript */
-void inspircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(ServerName, "SERVER %s %s %d :%s", servname, currentpass,
- hop + 1, descript);
-}
-
-/* PONG */
-void inspircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/* JOIN */
-void inspircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- alog(LOG_PROTOCOL, "User %s joins %s at %ld", user, channel,
- (long int) chantime);
- send_cmd(user, "JOIN %s", channel);
-}
-
-/* PART */
-void inspircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s :Leaving", chan);
- }
-}
-
-/* GLOBOPS */
-void inspircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-/* SQUIT */
-void inspircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(ServerName, "SQUIT %s :%s", servname, message);
-}
-
-void inspircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- inspircd_cmd_capab();
- send_cmd(NULL, "SERVER %s %s %d :%s", ServerName, RemotePassword, 0,
- ServerDesc);
- send_cmd(NULL, "BURST");
- send_cmd(ServerName, "VERSION :Denora");
-}
-
-/* Events */
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- inspircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* Normal RFC style topic: :source TOPIC chan :topic */
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *newav[127];
-
- if (ac < 2)
- {
- return MOD_CONT;
- }
-
- newav[0] = sstrdup(av[0]);
- newav[1] = sstrdup(source);
- newav[2] = itostr(time(NULL));
- newav[3] = sstrdup(av[1]);
- do_topic(4, newav);
- free(newav[0]);
- free(newav[1]);
- free(newav[3]);
- return MOD_CONT;
-}
-
-/* :source SQUIT dest :reason */
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/* Both FMODE (which can only come from a server)
- * and MODE (which can only come from a user) are
- * both routed to this handler as denora can handle
- * them both as the same thing.
- */
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_svsjoin(char *source, int ac, char **av)
-{
- char *newav[127];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
-
- newav[0] = av[1];
- do_join(av[0], 1, newav);
- return MOD_CONT;
-}
-
-/* We implement this, but for now, InspIRCd doesnt
- * support remote MOTD.
- */
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* FHOST and FNAME are equivalent to SETHOST and SETNAME,
- * CHGHOST and CHGNAME generate FHOST and FNAME commands
- * and are therefore redundant
- */
-
-int denora_event_fname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_fhost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(source, av[0]);
- return MOD_CONT;
-}
-
-
-/* FJOIN is like SJOIN, but not quite. It doesnt sync
- * simple-modes, or bans/excepts.
- */
-int denora_event_fjoin(char *source, int ac, char **av)
-{
-
- char *newav[127];
- char people[1024];
- int i = 0;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 3)
- return MOD_CONT;
-
- newav[0] = av[1];
- newav[1] = av[0];
- newav[2] = (char *) "+";
- newav[3] = people;
-
- *people = '\0';
-
- for (i = 2; i < ac; i++)
- {
- if (i > 2)
- strncat(people, " ", 1024);
- strncat(people, av[i], 1024);
- }
- do_sjoin(source, 4, newav);
-
- return MOD_CONT;
-}
-
-char *inspircd_nickip(char *host)
-{
- struct in_addr addy;
- struct in_addr addr;
-
- uint32 *ad = (uint32 *) & addy;
- inet_aton(host, &addy);
-
- addr.s_addr = htonl(*ad);
- return sstrdup(inet_ntoa(addr));
-}
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 1)
- {
- if (ac == 8)
- {
- user = do_nick("", av[1], /* nick */
- av[4], /* username */
- av[2], /* realhost */
- source, /* server */
- av[7], /* realname */
- strtoul(av[0], NULL, 10),
- 0, inspircd_nickip(av[6]), av[3], NULL, 1,
- av[5], NULL);
- }
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- 0, 0, NULL, NULL, NULL, 0, NULL, NULL);
- }
-
- return MOD_CONT;
-}
-
-
-/* EVENT: SERVER */
-/*
- av[0] = inspircd.nomadirc.net
- av[1] = linkpass
- av[2] = 0
- av[3] = Waddle World
-*/
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[2], "0"))
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[2], av[3], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-/* In InspIRCd, instead of sending back the entire WHOIS reply
- * as numerics on remote WHOIS, the remote server sends back
- * a reply to the IDLE command, which returns the users signon
- * and idle times, as these are the only different pieces of
- * information given between remote and local whois
- */
-int denora_event_idle(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac == 1)
- {
- send_cmd(av[0], "IDLE %s %ld 0", source, (long int) time(NULL));
- }
-
- return MOD_CONT;
-}
-
-void inspircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-void inspircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void inspircd_cmd_version(char *server)
-{
- /* TODO: InspIRCd sends you all servers version strings as they burst.
- * These can be cached, rather than having to request them.
- */
-}
-
-void inspircd_cmd_motd(char *sender, char *server)
-{
- /* Remote MOTD not implemented in beta 6 */
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void inspircd_cmd_mode(char *source, char *dest, char *buf)
-{
- if (!stricmp(source, ServerName))
- {
- send_cmd(source, "FMODE %s %s", dest, buf);
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-void inspircd_cmd_eob(void)
-{
- send_cmd(NULL, "ENDBURST");
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_eob(inspircd_cmd_eob);
- pmodule_cmd_nick(inspircd_cmd_nick);
- pmodule_cmd_mode(inspircd_cmd_mode);
- pmodule_cmd_bot_nick(inspircd_cmd_bot_nick);
- pmodule_cmd_notice(inspircd_cmd_notice);
- pmodule_cmd_privmsg(inspircd_cmd_privmsg);
- pmodule_cmd_serv_notice(inspircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(inspircd_cmd_serv_privmsg);
- pmodule_cmd_quit(inspircd_cmd_quit);
- pmodule_cmd_pong(inspircd_cmd_pong);
- pmodule_cmd_join(inspircd_cmd_join);
- pmodule_cmd_part(inspircd_cmd_part);
- pmodule_cmd_global(inspircd_cmd_global);
- pmodule_cmd_squit(inspircd_cmd_squit);
- pmodule_cmd_connect(inspircd_cmd_connect);
- pmodule_cmd_ctcp(inspircd_cmd_ctcp);
- pmodule_cmd_version(inspircd_cmd_version);
- pmodule_cmd_stats(inspircd_cmd_stats);
- pmodule_cmd_motd(inspircd_cmd_motd);
- pmodule_cmd_ping(inspircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("InspIRCd 1.0 Beta 6+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_INSPIRCD);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* InspIRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*************************************************************************/
-
-void inspircd_cmd_nick(char *nick, char *name, const char *modes);
-void inspircd_cmd_mode(char *source, char *dest, char *buf);
-void inspircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void inspircd_cmd_notice(char *source, char *dest, char *buf);
-void inspircd_cmd_privmsg(char *source, char *dest, char *buf);
-void inspircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void inspircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void inspircd_cmd_quit(char *source, char *buf);
-void inspircd_cmd_pong(char *servname, char *who);
-void inspircd_cmd_join(char *user, char *channel, time_t chantime);
-void inspircd_cmd_part(char *nick, char *chan, char *buf);
-void inspircd_cmd_global(char *source, char *buf);
-void inspircd_cmd_squit(char *servname, char *message);
-void inspircd_cmd_connect(void);
-void inspircd_cmd_eob(void);
-void inspircd_cmd_capab(void);
-void inspircd_cmd_ctcp(char *source, char *dest, char *buf);
-void inspircd_cmd_stats(char *sender, const char *letter, char *server);
-void inspircd_cmd_motd(char *sender, char *servr);
-void inspircd_cmd_ping(char *server);
-void inspircd_cmd_pass(char *pass);
-void inspircd_cmd_server(char *servname, int hop, char *descript);
-void inspircd_cmd_version(char *server);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int denora_event_fjoin(char *source, int ac, char **av);
-int denora_event_idle(char *source, int ac, char **av);
-int denora_event_fhost(char *source, int ac, char **av);
-int denora_event_fname(char *source, int ac, char **av);
-int denora_event_ftopic(char *source, int ac, char **av);
-int denora_event_version(char *source, int ac, char **av);
-int denora_event_opertype(char *source, int ac, char **av);
-
-int denora_event_addline(char *source, int ac, char **av);
-int denora_event_gline(char *source, int ac, char **av);
-int denora_event_eline(char *source, int ac, char **av);
-int denora_event_qline(char *source, int ac, char **av);
-int denora_event_zline(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_svsnick(char *source, int ac, char **av);
-int denora_event_sanick(char *source, int ac, char **av);
-int denora_event_svsjoin(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *inspircd_nickip(char *host);
-void IRCDModeInit(void);
-
+++ /dev/null
-/* IrcDreams P10 IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "ircdreams.h"
-
-int p10nickcnt = 0;
-
-IRCDVar myIrcd[] =
-{
- {
- "IrcDreams 2.20", /* ircd name */
- "+iok", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_H, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- 'H', /* vhost */
- IRCD_DISABLE,
- IRCD_DISABLE, /* channek linking */
- IRCD_ENABLE, /* p10 */
- IRCD_DISABLE,
- IRCD_ENABLE,
- IRCD_ENABLE,
- IRCD_DISABLE,
- 'b',
- IRCD_DISABLE,
- IRCD_DISABLE,
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE,
- IRCD_DISABLE,
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- },
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0,
- 0,
- 0,
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_H, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_P, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_Z, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
-
- /* Channel Modes */
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_D, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_P, NULL, NULL);
- CreateChanMode(CMODE_T, NULL, NULL);
- CreateChanMode(CMODE_W, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-char *ircdreams_nickip(char *host)
-{
- struct in_addr addr;
- int decoded;
-
- decoded = base64toIP(host);
- addr.s_addr = ntohl(decoded);
- return sstrdup(inet_ntoa(addr));
-}
-
-/* On Services connect the modes are given */
-/* AB N Trystan` 1 1098031638 tslee comcast.net +i AYAmXj ABAAC : real */
-/* On user join they are not */
-/* AB N Trystan 1 1101443066 tslee comcast.net AYAmXj ABAAB : real */
-
-/*
-** NICK - new
-** source = Ownering Server Prefix
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = username
-** parv[4] = host
-** parv[5] = modes
-** parv[6] = base64 ip
-** parv[7] = uid
-** parv[8] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = timestamp
-*/
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- Server *s;
- char *temp;
- char *ipchar;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- /* do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes) */
-
- temp = sstrdup(source);
-
- if (ac != 2)
- {
- s = server_find(source);
- *source = '\0';
- if (ac == 11)
- {
- ipchar = ircdreams_nickip(av[8]);
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : temp),
- av[10], strtoul(av[2], NULL, 10), 0,
- ipchar, NULL, av[9], strtoul(av[1],
- NULL, 10), av[5],
- NULL);
- free(ipchar);
- }
- else if (ac == 10)
- {
- ipchar = ircdreams_nickip(av[7]);
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : temp),
- av[9], strtoul(av[2], NULL, 10), 0,
- ipchar, NULL, av[8], strtoul(av[1],
- NULL, 10), av[5],
- NULL);
- free(ipchar);
- }
- else if (ac == 9)
- {
- ipchar = ircdreams_nickip(av[6]);
- /* server sending is not important for this */
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : temp),
- av[8], strtoul(av[2], NULL, 10), 0,
- ipchar, NULL, av[7], strtoul(av[1],
- NULL, 10), av[5],
- NULL);
- free(ipchar);
- }
- else if (ac == 8)
- {
- ipchar = ircdreams_nickip(av[6]);
- do_nick(source, av[0], av[3], av[4], (s ? s->name : temp),
- av[7], strtoul(av[2], NULL, 10), 0, ipchar,
- NULL, av[6], strtoul(av[1], NULL, 10), NULL, NULL);
- free(ipchar);
- }
- else
- {
- alog(LOG_DEBUG,
- "Unknown NICK formatted message please report the following");
- protocol_debug(temp, ac, av);
- }
- }
- else
- {
- user = find_byuid(source);
- do_nick(user->nick, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- free(temp);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- s = server_find(source);
- if (stricmp(s->name, denora->uplink) == 0)
- {
- send_cmd(NULL, "%s EA", p10id);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
-
- /* let the p10 tokens begin */
-
- /* end of burst */
- m = createMessage("EB", denora_event_eob);
- addCoreMessage(IRCD,m);
- /* nick */
- m = createMessage("N", denora_event_nick);
- addCoreMessage(IRCD,m);
- /* ping */
- m = createMessage("G", denora_event_ping);
- addCoreMessage(IRCD,m);
- /* pong */
- m = createMessage("Z", denora_event_null);
- addCoreMessage(IRCD,m);
- /* MODE */
- m = createMessage("M", denora_event_mode);
- addCoreMessage(IRCD,m);
- /* CREATE */
- m = createMessage("C", denora_event_create);
- addCoreMessage(IRCD,m);
- /* JOIN */
- m = createMessage("J", denora_event_join);
- addCoreMessage(IRCD,m);
- /* QUIT */
- m = createMessage("Q", denora_event_quit);
- addCoreMessage(IRCD,m);
- /* TOPIC */
- m = createMessage("T", denora_event_topic);
- addCoreMessage(IRCD,m);
- /* MOTD */
- m = createMessage("MO", denora_event_motd);
- addCoreMessage(IRCD,m);
- /* KICK */
- m = createMessage("K", denora_event_kick);
- addCoreMessage(IRCD,m);
- /* AWAY */
- m = createMessage("A", denora_event_away);
- addCoreMessage(IRCD,m);
- /* ADMIN */
- m = createMessage("AD", denora_event_null);
- addCoreMessage(IRCD,m);
- /* PART */
- m = createMessage("L", denora_event_part);
- addCoreMessage(IRCD,m);
- /* BURST */
- m = createMessage("B", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- /* PRIVMSG */
- m = createMessage("P", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- /* NOTICE */
- m = createMessage("O", denora_event_notice);
- addCoreMessage(IRCD,m);
- /* SQUIT */
- m = createMessage("SQ", denora_event_squit);
- addCoreMessage(IRCD,m);
- /* INVITE */
- m = createMessage("I", denora_event_null);
- addCoreMessage(IRCD,m);
- /* DESYNCH */
- m = createMessage("DS", denora_event_error);
- addCoreMessage(IRCD,m);
- /* WALLOP */
- m = createMessage("WA", denora_event_null);
- addCoreMessage(IRCD,m);
- /* VERSION */
- m = createMessage("V", m_version);
- addCoreMessage(IRCD,m);
- /* WHOIS */
- m = createMessage("W", denora_event_whois);
- addCoreMessage(IRCD,m);
- /* SERVER */
- m = createMessage("S", denora_event_server);
- addCoreMessage(IRCD,m);
- /* PONG */
- m = createMessage("Z", denora_event_pong);
- addCoreMessage(IRCD,m);
- /* STATS */
- m = createMessage("R", m_stats);
- addCoreMessage(IRCD,m);
- /* ACCCOUNT */
- m = createMessage("AC", denora_event_null);
- addCoreMessage(IRCD,m);
- /* GLINE */
- m = createMessage("GL", denora_event_sgline);
- addCoreMessage(IRCD,m);
- /* INFO */
- m = createMessage("F", denora_event_null);
- addCoreMessage(IRCD,m);
- /* SETTIME */
- m = createMessage("SE", denora_event_null);
- addCoreMessage(IRCD,m);
- /* TIME */
- m = createMessage("TI", m_time);
- addCoreMessage(IRCD,m);
- /* TRACE */
- m = createMessage("TR", denora_event_null);
- addCoreMessage(IRCD,m);
- /* RPING */
- m = createMessage("RI", denora_event_null);
- addCoreMessage(IRCD,m);
- /* End of Burst Acknowledge */
- m = createMessage("EA", denora_event_null);
- addCoreMessage(IRCD,m);
-
- /* Server Notice */
- m = createMessage("SNO", denora_event_null);
- addCoreMessage(IRCD,m);
- /* Vhost */
- m = createMessage("SA", denora_event_chghost);
- addCoreMessage(IRCD,m);
- /* Rules */
- m = createMessage("RL", denora_event_null);
- addCoreMessage(IRCD,m);
-
-}
-
-/* *INDENT-ON* */
-
-/* ACAAA VH ACAAA Je.Suis.Le.BiG.Boss.Du.NetWork */
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* GLINE : AK GL * +*!*@*.aol.com 864000 :testing */
-/* UNGLINE : AK GL * -*!*@*.aol.com */
-int denora_event_sgline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline(source, ac, av);
- return MOD_CONT;
-}
-
-void ircdreams_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- Server *s;
-
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "STATS %s :%s", letter,
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-/* PART */
-void ircdreams_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
- ud = find_uid(nick);
- if (buf)
- {
- send_cmd((ud ? ud->uid : nick), "L %s :%s", chan, buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : nick), "L %s", chan);
- }
-}
-
-/* ABAAB J #ircops 1098031328 */
-void ircdreams_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
-
- ud = find_uid(user);
-
- send_cmd((ud ? ud->uid : user), "J %s %ld", channel,
- (long int) chantime);
-}
-
-void ircdreams_cmd_squit(char *servname, char *message)
-{
- alog(LOG_PROTOCOL, "Servername %s Message %s", servname, message);
- send_cmd(p10id, "SQ %s :%s", p10id, message);
-}
-
-void ircdreams_cmd_connect(void)
-{
- if (!BadPtr(Numeric))
- {
- inttobase64(p10id, atoi(Numeric), 2);
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, p10id);
- ircdreams_cmd_pass(RemotePassword);
- ircdreams_cmd_server(ServerName, 1, ServerDesc);
- }
- else
- {
- alog(LOG_NORMAL, "Numeric is required for P10 ircds");
- exit(1);
- }
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* PASS */
-void ircdreams_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-void ircdreams_cmd_capab()
-{
- /* not used by p10 */
-}
-
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] :[DESCRIPTION] */
-/* SERVER irc.undernet.org 1 933022556 947908144 J10 AA]]] :[127.0.0.1] A Undernet Server */
-void ircdreams_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d %ld %lu J10 %s]]] +s :%s", servname, hop,
- (long int) denora->start_time, (long int) time(NULL), p10id,
- descript);
-}
-
-/* GLOBOPS */
-void ircdreams_cmd_global(char *source, char *buf)
-{
- Uid *id;
-
- id = find_uid(source);
-
- send_cmd((id ? id->uid : ServerName), "WA :%s", buf);
-}
-
-/* ABAAC A :I go away */
-/* ABAAC A */
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *newav[4];
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- u = user_find(source);
- newav[0] = av[0];
- newav[1] = u->nick;
- newav[2] = (ac == 2) ? itostr(time(NULL)) : av[ac - 2];
- newav[3] = av[ac - 1];
-
- do_topic(4, newav);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-/* ABAAB Q :Quit */
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/* User modes */
-/* ABAAA M Trystan +wg */
-
-/* Channel modes */
-/* ABAAA M #ircops +v ABAAB */
-int denora_event_mode(char *source, int ac, char **av)
-{
- User *u;
- char *sender;
- u = find_byuid(source);
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (!u)
- {
- sender = source;
- }
- else
- {
- sender = u->nick;
- }
-
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(sender, ac, av);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* ABAAA K #ircops ABAAC :Trystan` */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_p10_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/* JOIN - is the same syntax */
-/* ABAAB J #ircops 1098031328 */
-int denora_event_join(char *source, int ac, char **av)
-{
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- u = find_byuid(source);
-
- if (ac != 2)
- {
- return MOD_CONT;
- }
-
- do_join((u ? u->nick : source), ac, av);
- return MOD_CONT;
-}
-
-/* CREATE - p10 don't join empty channels the CREATE them */
-/* ABAAA C #ircops 1098031328 */
-int denora_event_create(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/* BURST joins simlar to SJOIN */
-/* AB B #denora 1113091975 +tn ABAAB,ABAAA:o :%*!*@*.aol.com */
-/* s c 0 1 2 3 4 */
-/* AB B #test23 1115788230 ABAAB,ABAAA:o */
-/* s c 0 1 2 */
-/* AC B #IrcDreams 1119807576 +tn ACAAB:h,ACAAA:o */
-/* s c 0 1 2 3 */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_p10_burst(source, ac, av);
- return MOD_CONT;
-}
-
-/* ABAAA MO AG */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void ircdreams_cmd_mode(char *source, char *dest, char *buf)
-{
- alog(LOG_PROTOCOL, "MODE Source %s, dest %s, buf %s", source, dest,
- buf);
- send_cmd(p10id, "M %s %s %ld", dest, buf, (long int) time(NULL));
-}
-
-void ircdreams_cmd_notice(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "O %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-void ircdreams_cmd_privmsg(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "P %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-void ircdreams_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void ircdreams_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void ircdreams_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((ud ? ud->uid : source), "QUIT :%s", buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : source), "QUIT");
- }
-}
-
-/* [NUMERIC PREFIX] N [NICK] [HOPCOUNT] [TIMESTAMP] [USERNAME] [HOST] <+modes> [BASE64 IP] [NUMERIC] :[USERINFO] */
-/* AF N Client1 1 947957573 User userhost.net +oiwg DAqAoB AFAAA :Generic Client. */
-void ircdreams_cmd_nick(char *nick, char *name, const char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, modes, p10id,
- (p10nickcnt + 'A'), name);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-/* EVENT: SERVER */
-/* SERVER Auska.Nomadirc.net 1 1098025304 1098036331 J10 ABAP] + :Test Server */
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] [FLAGS] :[DESCRIPTION] */
-/* (AB S trystan.nomadirc.net 2 0 1106520454 P10 ACAP] +h :Test Server) */
-int denora_event_server(char *source, int ac, char **av)
-{
- Server *s;
- char uplinknum[3];
- *uplinknum = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- strlcpy(uplinknum, av[5], sizeof(uplinknum));
-
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[7], uplinknum);
- }
- else
- {
- s = server_find(source);
- do_server((s ? s->name : source), av[0], av[1], av[7], uplinknum);
- }
- return MOD_CONT;
-}
-
-/* ABAAA P ADAAB :help */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- User *u;
- Uid *id;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- u = find_byuid(source);
- id = find_nickuid(av[0]);
-
- if (ac != 2)
- return MOD_CONT;
- m_privmsg((u ? u->nick : source), (id ? id->nick : av[0]), av[1]);
- return MOD_CONT;
-}
-
-/* ABAAA L #ircops */
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[1]);
- }
- return MOD_CONT;
-}
-
-/* AB G !1098031985.558075 services.nomadirc.net 1098031985.558075 */
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 1)
- return MOD_CONT;
- ircdreams_cmd_pong(p10id, av[0]);
- return MOD_CONT;
-}
-
-/* PONG */
-void ircdreams_cmd_pong(char *servname, char *who)
-{
- char *t, *s;
- uint32 ts, tsnow, value;
- t = myStrGetToken(who, '!', 1);
- s = myStrGetToken(t, '.', 0);
- if (!s)
- {
- ts = 0;
- }
- else
- {
- ts = strtol(s, NULL, 10);
- }
- tsnow = time(NULL);
- value = tsnow - ts;
- if (denora->protocoldebug)
- {
- alog(LOG_PROTOCOL, "PONG: Server Name %s : Who %s", servname, who);
- }
- send_cmd(p10id, "Z %s %ld %ld %ld %s", p10id, (long int) ts,
- (long int) tsnow, (long int) value, militime_float(NULL));
- free(s);
- free(t);
-}
-
-void ircdreams_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), user, host, modes, p10id,
- (p10nickcnt + 'A'), real);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-void ircdreams_cmd_eob(void)
-{
- send_cmd(p10id, "EB");
-}
-
-void ircdreams_cmd_ping(char *server)
-{
- /* AB G !1115872042.64217 denora.nomadirc.net 1115872042.64217 */
- send_cmd(p10id, "G !%s %s %s", militime_float(NULL), server,
- militime_float(NULL));
-}
-
-void ircdreams_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void ircdreams_cmd_version(char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(s_StatServ);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : s_StatServ), "V :%s",
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-void ircdreams_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "MO %s",
- (s ? (s->suid ? s->suid : server) : server));
-
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(ircdreams_cmd_nick);
- pmodule_cmd_mode(ircdreams_cmd_mode);
- pmodule_cmd_bot_nick(ircdreams_cmd_bot_nick);
- pmodule_cmd_notice(ircdreams_cmd_notice);
- pmodule_cmd_privmsg(ircdreams_cmd_privmsg);
- pmodule_cmd_serv_notice(ircdreams_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(ircdreams_cmd_serv_privmsg);
- pmodule_cmd_quit(ircdreams_cmd_quit);
- pmodule_cmd_pong(ircdreams_cmd_pong);
- pmodule_cmd_join(ircdreams_cmd_join);
- pmodule_cmd_part(ircdreams_cmd_part);
- pmodule_cmd_global(ircdreams_cmd_global);
- pmodule_cmd_squit(ircdreams_cmd_squit);
- pmodule_cmd_connect(ircdreams_cmd_connect);
- pmodule_cmd_eob(ircdreams_cmd_eob);
- pmodule_cmd_ctcp(ircdreams_cmd_ctcp);
- pmodule_cmd_version(ircdreams_cmd_version);
- pmodule_cmd_stats(ircdreams_cmd_stats);
- pmodule_cmd_motd(ircdreams_cmd_motd);
- pmodule_cmd_ping(ircdreams_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
-
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("IrcDreams 2.20");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_IRCDREAMS);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* IrcDreams P10 IRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void ircdreams_cmd_nick(char *nick, char *name, const char *modes);
-void ircdreams_cmd_mode(char *source, char *dest, char *buf);
-void ircdreams_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void ircdreams_cmd_notice(char *source, char *dest, char *buf);
-void ircdreams_cmd_privmsg(char *source, char *dest, char *buf);
-void ircdreams_cmd_serv_notice(char *source, char *dest, char *msg);
-void ircdreams_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void ircdreams_cmd_quit(char *source, char *buf);
-void ircdreams_cmd_pong(char *servname, char *who);
-void ircdreams_cmd_join(char *user, char *channel, time_t chantime);
-void ircdreams_cmd_server(char *servname, int hop, char *descript);
-void ircdreams_cmd_part(char *nick, char *chan, char *buf);
-void ircdreams_cmd_global(char *source, char *buf);
-void ircdreams_cmd_squit(char *servname, char *message);
-void ircdreams_cmd_connect(void);
-void ircdreams_cmd_eob(void);
-void ircdreams_cmd_capab(void);
-void ircdreams_cmd_ctcp(char *source, char *dest, char *buf);
-void ircdreams_cmd_pass(char *pass);
-void ircdreams_cmd_version(char *server);
-void ircdreams_cmd_stats(char *sender, const char *letter, char *server);
-void ircdreams_cmd_motd(char *sender, char *server);
-void ircdreams_cmd_ping(char *server);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_gnotice(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_create(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-void IRCDModeInit(void);
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *ircdreams_nickip(char *host);
-
+++ /dev/null
-/* ircd-rizon 3 IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested against hybrid-7.2.3+plexus-3.0.1(20081028_0-520)
- *
- */
-
-#include "denora.h"
-#include "ircdrizon.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "ircd-rizon-3.0.1+", /* ircd name */
- "+oai", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_ENABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel Modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_ENABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_ENABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- CMODE_z /* Persistent channel mode */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- CAPAB_TS5, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- CAPAB_QS, /* QS */
- CAPAB_UID, /* UID */
- CAPAB_KNOCK, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_l, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_q, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_u, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_B, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_Z, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('&', 'a', STATUS_PROTECTED);
- ModuleSetChanUMode('~', 'q', STATUS_OWNER);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-
-void rizon_cmd_notice(char *source, char *dest, char *buf)
-{
- Uid *ud;
- User *u;
-
- ud = find_uid(source);
- u = finduser(dest);
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source),
- "NOTICE %s :%s", (UseTS6 ? (u ? u->uid : dest) : dest), buf);
-}
-
-void rizon_cmd_privmsg(char *source, char *dest, char *buf)
-{
- Uid *ud, *ud2;
-
- ud = find_uid(source);
- ud2 = find_uid(dest);
-
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "PRIVMSG %s :%s",
- (UseTS6 ? (ud2 ? ud2->uid : dest) : dest), buf);
-}
-
-void rizon_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void rizon_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void rizon_cmd_global(char *source, char *buf)
-{
- Uid *u;
-
- if (source)
- {
- u = find_uid(source);
- if (u)
- {
- send_cmd((UseTS6 ? u->uid : source), "OPERWALL :%s", buf);
- }
- else
- {
- send_cmd((UseTS6 ? TS6SID : ServerName), "OPERWALL :%s", buf);
- }
- }
- else
- {
- send_cmd((UseTS6 ? TS6SID : ServerName), "OPERWALL :%s", buf);
- }
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!strcmp(av[2], "0"))
- av[2] = sstrdup("+");
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes, char *account)
- NICK Trystan 1 1148214497 +aiow tslee is.my.vhost plexus3.nomadirc.net 0 c-67-186-230-12.hsd1.ut.comcast.net :Dreams are answers to questions not yet asked
- 0 1 2 3 4 5 6 7 8 9
- 666 UID asdasd 1 1234817435 +ix Nesstest 566C206.B53EDE66.1DF57482.IP 66.63.160.250 666AAAAAD 0 66.63.160.250 :JasonX
- 0 1 2 3 4 5 6 7 8 9 10
-
-[Feb 19 04:24:22.531142 2009] debug: Received: :57CAAEV6D NICK Miu :1235017456
-[Feb 19 04:24:22.536789 2009] Source 57CAAEV6D
-[Feb 19 04:24:22.537026 2009] av[0] = Miu
-[Feb 19 04:24:22.537233 2009] av[1] = 1235017456
-[Feb 19 04:24:22.537422 2009] Unknown NICK formatted message please report the following
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- Server *s;
- User *user;
- char *temp;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- temp = sstrdup(source);
-
- if (UseTS6 && ac == 11)
- {
- s = server_find(source);
- /* Source is always the server */
- *source = '\0';
- user = do_nick(source, av[0], av[4], av[9], s->name, av[10],
- strtoul(av[2], NULL, 10), 0, av[6], av[5],
- av[7], strtoul(av[1], NULL, 10), av[3], NULL);
- }
- else if (ac == 10)
- {
- ipchar = host_resolve(av[8]);
- user = do_nick(source, av[0], av[4], av[8], av[6], av[9],
- strtoul(av[2], NULL, 10),
- strtoul(av[7], NULL, 0), ipchar, av[5], NULL,
- strtoul(av[1], NULL, 0), av[3], NULL);
- free(ipchar);
- }
- else if (ac == 2)
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0,
- NULL, NULL);
- }
- else
- {
- alog(LOG_DEBUG,
- "Unknown NICK formatted message please report the following");
- protocol_debug(temp, ac, av);
- }
- free(temp);
- return MOD_CONT;
-}
-
-/* :42XAAAAAB TOPIC #testchan :test test test */
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *newav[5];
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac == 2)
- {
- u = user_find(source);
- if (u)
- {
- newav[0] = sstrdup(av[0]);
- newav[1] = sstrdup(u->nick);
- newav[2] = itostr(time(NULL));
- newav[3] = sstrdup(av[1]);
- do_topic(4, newav);
- free(newav[0]);
- free(newav[1]);
- free(newav[3]);
- }
-
- }
- else
- {
- do_topic(ac, av);
- }
- return MOD_CONT;
-}
-
-/* irc.dev.cccp-project.net TBURST 1218474093 #oper 1212613221 Celestin :Main L2Thorn Channel */
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
- if (ac != 5)
- return MOD_CONT;
-
- av[0] = av[1];
- av[1] = av[3];
- av[3] = av[4];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- if (UseTS6)
- {
- if (!BadPtr(Numeric))
- {
- TS6SID = sstrdup(Numeric);
- UseTSMODE = 1; /* TMODE */
- }
- else
- {
- alog(LOG_NORMAL, "TS6 requires the use of Numeric - exiting");
- exit(1);
- }
- }
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("439", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("TMODE", denora_event_tmode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_pass);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("TBURST", denora_event_tburst);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("EOB", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSID", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("XLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSTOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("ENCAP", denora_event_encap);
- addCoreMessage(IRCD,m);
- m = createMessage("BMASK", denora_event_bmask);
- addCoreMessage(IRCD,m);
- m = createMessage("SID", denora_event_sid);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("RKLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNRKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("XLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("RXLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNRXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("UID", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("OPERWALL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RESV", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-
-/* :42X BMASK 1106409026 #ircops b :*!*@*.aol.com */
-int denora_event_bmask(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_bmask(av);
- return MOD_CONT;
-}
-
-int denora_event_pass(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (UseTS6)
- {
- if (av[3])
- {
- TS6UPLINK = sstrdup(av[3]);
- }
- }
- return MOD_CONT;
-}
-
-int denora_event_encap(char *source, int ac, char **av)
-{
- char *newav[3];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "CHGNAME"))
- {
- change_user_realname(av[2], av[3]);
- }
- if (!stricmp(av[1], "CHGHOST"))
- {
- change_user_host(av[2], av[3]);
- }
- if (!stricmp(av[1], "CHGIDENT"))
- {
- change_user_username(av[2], av[3]);
- }
- if (!stricmp(av[1], "XLINE"))
- {
- sql_do_xline(av[3], av[5]);
- }
- if (!stricmp(av[1], "SVSNICK"))
- {
- do_nick(av[2], av[3], NULL, NULL, NULL, NULL,
- time(NULL), 0, NULL, NULL, NULL, 0, NULL, NULL);
- }
- if (!stricmp(av[1], "SVSMODE"))
- {
- newav[0] = av[2];
- newav[1] = av[4];
- newav[2] = av[3];
- denora_event_svsmode(source, 3, newav);
- }
- return MOD_CONT;
-}
-
-/* SVSMODE - forwarded */
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] != '#')
- {
- do_svsumode(ac, av);
- }
- else
- {
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kline(char *source, int ac, char **av)
-{
- char buf[BUFSIZE];
- *buf = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- sql_do_server_bans_add(NULL, av[2], av[3], source, buf, av[1], av[4]);
- return MOD_CONT;
-}
-
-int denora_event_unkline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_bans_remove(NULL, av[1], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_xline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_xline(av[1], av[3]);
- return MOD_CONT;
-}
-
-int denora_event_unxline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_unxline(av[1]);
- return MOD_CONT;
-}
-
-void rizon_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
-
- ud = find_uid(user);
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, (UseTS6 ? (ud ? ud->uid : user) : user));
- if (AutoOp && AutoMode && LogChannel == channel)
- denora_automode(channel);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void rizon_cmd_svinfo()
-{
- if (UseTS6)
- {
- send_cmd(NULL, "SVINFO 6 3 0 :%ld", (long int) time(NULL));
- }
- else
- {
- send_cmd(NULL, "SVINFO 5 5 0 :%ld", (long int) time(NULL));
- }
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EX - Can do channel +e exemptions
- CHW - Can do channel wall @#
- LL - Can do lazy links
- IE - Can do invite exceptions
- EOB - Can do EOB message
- KLN - Can do KLINE message
- GLN - Can do GLINE message
- HOPS - can do half ops (+h)
- HUB - This server is a HUB
- AOPS - Can do anon ops (+a)
- UID - Can do UIDs
- ZIP - Can do ZIPlinks
- ENC - Can do ENCrypted links
- KNOCK - supports KNOCK
- TBURST - supports TBURST
- PARA - supports invite broadcasting for +p
- ENCAP - ?
-*/
-void rizon_cmd_capab()
-{
- /*send_cmd(NULL, "CAPAB :TBURST TB KNOCK UNKLN KLN GLN ENCAP CHW IE EX CLUSTER EOB LL QS HUB"); */
- send_cmd(NULL,
- "CAPAB :TBURST TB KNOCK UNKLN KLN GLN CHW IE EX CLUSTER EOB LL QS HUB ENCAP");
-}
-
-
-void rizon_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- ud = find_uid(sender);
-
- send_cmd((ud ? ud->uid : sender), "STATS %s %s", letter, server);
-}
-
-/* PASS */
-void rizon_cmd_pass(char *pass)
-{
- if (UseTS6)
- {
- send_cmd(NULL, "PASS %s TS 6 :%s", pass, TS6SID);
- }
- else
- {
- send_cmd(NULL, "PASS %s :TS", pass);
- }
-}
-
-/* SERVER name hop descript */
-void rizon_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-void rizon_cmd_connect(void)
-{
- /* Make myself known to myself in the serverlist */
- if (UseTS6 && Numeric)
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, TS6SID);
- }
- else
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
- }
-
- rizon_cmd_pass(RemotePassword);
- rizon_cmd_capab();
- rizon_cmd_server(ServerName, 1, ServerDesc);
- rizon_cmd_svinfo();
-}
-
-void rizon_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char *nicknumbuf = ts6_uid_retrieve();
-
- if (UseTS6)
- {
- send_cmd(TS6SID, "UID %s 1 %ld %s %s %s 0 %s :%s", nick,
- (long int) time(NULL), modes, user, host, nicknumbuf,
- real);
-
- new_uid(nick, nicknumbuf);
- }
- else
- {
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName,
- real);
- }
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-void rizon_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
-
- ud = find_uid(nick);
-
- if (buf)
- {
- send_cmd((UseTS6 ? ud->uid : nick), "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd((UseTS6 ? ud->uid : nick), "PART %s", chan);
- }
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- rizon_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-/* 97H KILL 69CAABOR8 :geo.rizon.net!geo.rizon.net!GeoServ!GeoServ (4 joins/parts in #DontJoinItsATrap within 6 seconds.) */
-int denora_event_kill(char *source, int ac, char **av)
-{
- User *u = NULL;
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- u = find_byuid(av[0]);
- m_kill(source, u ? u->nick : av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-void rizon_cmd_eob(void)
-{
- send_cmd(UseTS6 ? TS6SID : ServerName, "EOB");
-}
-
-void rizon_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_sjoin(source, ac > 1 ? 2 : ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- User *u = NULL;
- Uid *ud = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
-
- if (UseTS6)
- {
- u = find_byuid(source);
- ud = find_nickuid(av[0]);
- }
- m_privmsg((UseTS6 ? (u ? u->nick : source) : source),
- (UseTS6 ? (ud ? ud->nick : av[0]) : av[0]), av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- Uid *ud;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- ud = find_nickuid(av[0]);
- m_whois(source, (UseTS6 ? (ud ? ud->nick : av[0]) : av[0]));
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], (!stricmp(av[1], "1") && UseTS6 && TS6UPLINK ? TS6UPLINK : NULL));
- return MOD_CONT;
-}
-
-int denora_event_sid(char *source, int ac, char **av)
-{
- Server *s;
-
- /* :42X SID trystan.nomadirc.net 2 43X :ircd-ratbox test server */
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- s = server_find(source);
-
- do_server(s->name, av[0], av[1], av[3], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void rizon_cmd_mode(char *source, char *dest, char *buf)
-{
- Uid *ud;
-
- if (source)
- {
- ud = find_uid(source);
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "MODE %s %s",
- dest, buf);
- }
- else
-{
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-void rizon_cmd_nick(char *nick, char *name, const char *mode)
-{
- char *ipaddr;
- char *nicknumbuf = ts6_uid_retrieve();
-
- if (UseTS6)
- {
- ipaddr = host_resolve(ServiceHost);
- send_cmd(TS6SID, "UID %s 1 %ld %s %s %s %s %s 0 %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ipaddr, nicknumbuf, ServiceHost, name);
-
- new_uid(nick, nicknumbuf);
- free(ipaddr);
- }
- else
- {
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ServerName, name);
- }
-}
-
-/* QUIT */
-void rizon_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "QUIT :%s",
- buf);
- }
- else
-{
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "QUIT");
- }
-}
-
-/* PONG */
-void rizon_cmd_pong(char *servname, char *who)
-{
- if (UseTS6)
- {
- send_cmd(TS6SID, "PONG %s", who);
- }
- else
- {
- send_cmd(servname, "PONG %s", who);
- }
-}
-
-/* SQUIT */
-void rizon_cmd_squit(char *servname, char *message)
-{
- send_cmd(ServerName, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- Server *s;
- s = server_find(source);
-
- if (s && *av[0])
- {
- do_umode(av[0], ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- }
- return MOD_CONT;
-}
-
-/* 00HAAAAAJ TMODE 1218474093 #oper +a 669AAAAAB */
-int denora_event_tmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac > 2 && (*av[1] == '#' || *av[1] == '&'))
- {
- ac--;
- av++;
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void rizon_cmd_version(char *server)
-{
- Uid *ud;
- ud = find_uid(s_StatServ);
-
- send_cmd((ud ? ud->uid : s_StatServ), "VERSION %s", server);
-}
-
-void rizon_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- ud = find_uid(sender);
-
- send_cmd((ud ? ud->uid : sender), "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void rizon_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(rizon_cmd_nick);
- pmodule_cmd_mode(rizon_cmd_mode);
- pmodule_cmd_bot_nick(rizon_cmd_bot_nick);
- pmodule_cmd_notice(rizon_cmd_notice);
- pmodule_cmd_privmsg(rizon_cmd_privmsg);
- pmodule_cmd_serv_notice(rizon_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(rizon_cmd_serv_privmsg);
- pmodule_cmd_quit(rizon_cmd_quit);
- pmodule_cmd_pong(rizon_cmd_pong);
- pmodule_cmd_join(rizon_cmd_join);
- pmodule_cmd_part(rizon_cmd_part);
- pmodule_cmd_global(rizon_cmd_global);
- pmodule_cmd_squit(rizon_cmd_squit);
- pmodule_cmd_connect(rizon_cmd_connect);
- pmodule_cmd_eob(rizon_cmd_eob);
- pmodule_cmd_ctcp(rizon_cmd_ctcp);
- pmodule_cmd_version(rizon_cmd_version);
- pmodule_cmd_stats(rizon_cmd_stats);
- pmodule_cmd_motd(rizon_cmd_motd);
- pmodule_cmd_ping(rizon_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("ircd-rizon 3.0+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_IRCDRIZON);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* ircd-rizon 3
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void rizon_cmd_nick(char *nick, char *name, const char *modes);
-void rizon_cmd_mode(char *source, char *dest, char *buf);
-void rizon_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void rizon_cmd_notice(char *source, char *dest, char *buf);
-void rizon_cmd_privmsg(char *source, char *dest, char *buf);
-void rizon_cmd_serv_notice(char *source, char *dest, char *msg);
-void rizon_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void rizon_cmd_quit(char *source, char *buf);
-void rizon_cmd_pong(char *servname, char *who);
-void rizon_cmd_join(char *user, char *channel, time_t chantime);
-void rizon_cmd_part(char *nick, char *chan, char *buf);
-void rizon_cmd_global(char *source, char *buf);
-void rizon_cmd_squit(char *servname, char *message);
-void rizon_cmd_connect(void);
-void rizon_cmd_eob(void);
-void rizon_cmd_ctcp(char *source, char *dest, char *buf);
-void rizon_cmd_version(char *server);
-void rizon_cmd_stats(char *sender, const char *letter, char *server);
-void rizon_cmd_motd(char *sender, char *server);
-void rizon_cmd_ping(char *server);
-void rizon_cmd_pass(char *pass);
-void rizon_cmd_server(char *servname, int hop, char *descript);
-void rizon_cmd_svsinfo(void);
-void rizon_cmd_svinfo(void);
-void rizon_cmd_capab(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_tmode(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_bmask(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_smo(char *source, int ac, char **av);
-int denora_event_myid(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_svsnick(char *source, int ac, char **av);
-int denora_event_encap(char *source, int ac, char **av);
-int denora_event_kline(char *source, int ac, char **av);
-int denora_event_unkline(char *source, int ac, char **av);
-int denora_event_xline(char *source, int ac, char **av);
-int denora_event_unxline(char *source, int ac, char **av);
-int denora_event_sid(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-
+++ /dev/null
-/* LiquidIRCd Protocol Module
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*************************************************************************/
-
-#include "denora.h"
-#include "liquidircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "LiquidIRCd 1.0.4+", /* ircd name */
- "+io", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_ENABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- CMODE_j, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_z, /* umode for vhost */
- IRCD_ENABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel Modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- 'z', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- IRCD_DISABLE, /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- CAPAB_TSMODE, /* TSMODE */
- CAPAB_UNCONNECT, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- CAPAB_BURST, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- CAPAB_DKEY, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- CAPAB_DOZIP, /* DOZIP */
- 0,
- 0,
- 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_E, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_F, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_K, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_T, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_e, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_j, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
-
- /* Channel Modes */
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_j, set_flood_alt, get_flood_alt);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-}
-
-/*************************************************************************/
-
-void liquidircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-void liquidircd_cmd_mode(char *source, char *dest, char *buf)
-{
- if (ircdcap->tsmode)
- {
- if (denora->capab & ircdcap->tsmode)
- {
- send_cmd(source, "MODE %s 0 %s", dest, buf);
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-/* EVENT: SJOIN */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-char *liquidircd_nickip(char *host)
-{
- struct in_addr addr;
-
- addr.s_addr = htonl(strtoul(host, NULL, 0));
- return sstrdup(inet_ntoa(addr));
-}
-
-/*
-** NICK - new
-** source = NULL
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = modes
-** parv[4] = username
-** parv[5] = hostname
-** parv[6] = server
-** parv[7] = servicestamp
-** parv[8] = IP
-** parv[9] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = hopcount
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = liquidircd_nickip(av[8]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 0), av[3],
- NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-/* EVENT : CAPAB */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("HS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("MS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("OS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("LUSERSLOCK",denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_burst);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RESYNCH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSCHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* SVSMODE - forwarded */
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] != '#')
- do_svsumode(ac, av);
- else
- do_cmode(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* PART */
-void liquidircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* JOIN - SJOIN */
-void liquidircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- if (started)
- {
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
- }
- else
- {
- send_cmd(ServerName, "SJOIN %ld %s +nt :%s", (long int) chantime,
- channel, user);
- }
-}
-
-void liquidircd_cmd_burst(void)
-{
- send_cmd(NULL, "BURST");
-}
-
-void liquidircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-/* SQUIT */
-/*
- * parv[0] = sender prefix
- * parv[1] = server name
- * parv[2] = comment
-*/
-void liquidircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PONG */
-void liquidircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void liquidircd_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 :%ld", (long int) time(NULL));
-}
-
-/* PASS */
-void liquidircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER */
-void liquidircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* CAPAB */
-/* TS3 NOQUIT SSJOIN BURST UNCONNECT ZIP NICKIP TSMODE */
-void liquidircd_cmd_capab(void)
-{
- send_cmd(NULL, "CAPAB NOQUIT SSJOIN BURST UNCONNECT NICKIP TSMODE");
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-void liquidircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- liquidircd_cmd_pass(RemotePassword);
- liquidircd_cmd_capab();
- liquidircd_cmd_server(ServerName, 1, ServerDesc);
- liquidircd_cmd_svinfo();
- liquidircd_cmd_burst();
-}
-
-/* EVENT : SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-/* EVENT : PRIVMSG */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: MODE */
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* EVENT: KILL */
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT: KICK */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: JOIN */
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: MOTD */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* NOTICE */
-void liquidircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void liquidircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void liquidircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void liquidircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* GLOBOPS */
-void liquidircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-void liquidircd_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-/* QUIT */
-void liquidircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- liquidircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-void liquidircd_cmd_bot_nick(char *nick, char *user, char *host,
- char *real, char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-void liquidircd_cmd_eob(void)
-{
- send_cmd(NULL, "BURST 0");
-}
-
-int denora_event_burst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac)
- {
- update_sync_state(source, SYNC_COMPLETE);
- }
- return MOD_CONT;
-}
-
-void liquidircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void liquidircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void liquidircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(liquidircd_cmd_nick);
- pmodule_cmd_mode(liquidircd_cmd_mode);
- pmodule_cmd_bot_nick(liquidircd_cmd_bot_nick);
- pmodule_cmd_notice(liquidircd_cmd_notice);
- pmodule_cmd_privmsg(liquidircd_cmd_privmsg);
- pmodule_cmd_serv_notice(liquidircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(liquidircd_cmd_serv_privmsg);
- pmodule_cmd_quit(liquidircd_cmd_quit);
- pmodule_cmd_pong(liquidircd_cmd_pong);
- pmodule_cmd_join(liquidircd_cmd_join);
- pmodule_cmd_part(liquidircd_cmd_part);
- pmodule_cmd_global(liquidircd_cmd_global);
- pmodule_cmd_squit(liquidircd_cmd_squit);
- pmodule_cmd_connect(liquidircd_cmd_connect);
- pmodule_cmd_eob(liquidircd_cmd_eob);
- pmodule_cmd_ctcp(liquidircd_cmd_ctcp);
- pmodule_cmd_version(liquidircd_cmd_version);
- pmodule_cmd_stats(liquidircd_cmd_stats);
- pmodule_cmd_motd(liquidircd_cmd_motd);
- pmodule_cmd_ping(liquidircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion
- ("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("LiquidIRCd 1.0.4+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_oper_umode(UMODE_o);
- IRCDModeInit();
- pmodule_irc_var(IRC_LIQUIDIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* LiquidIRCd Protocol Module
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*************************************************************************/
-
-void liquidircd_cmd_nick(char *nick, char *name, const char *modes);
-void liquidircd_cmd_mode(char *source, char *dest, char *buf);
-void liquidircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void liquidircd_cmd_notice(char *source, char *dest, char *buf);
-void liquidircd_cmd_privmsg(char *source, char *dest, char *buf);
-void liquidircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void liquidircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void liquidircd_cmd_quit(char *source, char *buf);
-void liquidircd_cmd_pong(char *servname, char *who);
-void liquidircd_cmd_join(char *user, char *channel, time_t chantime);
-void liquidircd_cmd_part(char *nick, char *chan, char *buf);
-void liquidircd_cmd_global(char *source, char *buf);
-void liquidircd_cmd_squit(char *servname, char *message);
-void liquidircd_cmd_connect(void);
-void liquidircd_cmd_eob(void);
-void liquidircd_cmd_ctcp(char *source, char *dest, char *buf);
-void liquidircd_cmd_version(char *server);
-void liquidircd_cmd_stats(char *sender, const char *letter, char *server);
-void liquidircd_cmd_motd(char *sender, char *server);
-void liquidircd_cmd_ping(char *server);
-void liquidircd_cmd_svinfo(void);
-void liquidircd_cmd_capab(void);
-void liquidircd_cmd_pass(char *pass);
-void liquidircd_cmd_server(char *servname, int hop, char *descript);
-void liquidircd_cmd_burst(void);
-void IRCDModeInit(void);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *liquidircd_nickip(char *host);
-
+++ /dev/null
-/* MusIRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested with MusIRCd-2.0.2-beta1
- *
- */
-
-#include "denora.h"
-#include "musircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "MusIRCD 2.0x", /* ircd name */
- "+oS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- IRCD_DISABLE, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* TS6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- CAPAB_QS, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_l, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_u, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-void musircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void musircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void musircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void musircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void musircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "SMO 8388609 2 :%s", buf);
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- 1 : const char *source
- 2 : char *nick
- 3 : char *username
- 4 : char *host,
- 5 : char *server
- 6 : char *realname
- 7 : time_t ts
- 8 : uint32 svid
- 9 : uint32 ip
- 10 : char *vhost
- 11 : char *uid
- 12 : int hopcount
- 13 : char *modes
-
-[Jul 06 22:41:58.066397 2005] ac[0] = Trystan
-[Jul 06 22:41:58.066441 2005] ac[1] = 1
-[Jul 06 22:41:58.066485 2005] ac[2] = 1120703355
-[Jul 06 22:41:58.066529 2005] ac[3] = +i
-[Jul 06 22:41:58.066573 2005] ac[4] = tslee
-[Jul 06 22:41:58.066631 2005] ac[5] = c-24-2-101-227.hsd1.ut.comcast.net
-[Jul 06 22:41:58.066677 2005] ac[6] = musircd.nomadirc.net
-[Jul 06 22:41:58.066721 2005] ac[7] = Dreams are answers to questions not yet asked
-
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[7],
- strtoul(av[2], NULL, 10), 0, ipchar, NULL, NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 5)
- return MOD_CONT;
-
- av[0] = av[1];
- av[1] = av[3];
- av[3] = av[4];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_pass);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("EOB", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("TBURST", denora_event_tburst);
- addCoreMessage(IRCD,m);
- m = createMessage("RESV", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNRESV", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("DLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNDLINE", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-void musircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
-}
-
-void musircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void musircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void musircd_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 :%ld", (long int) time(NULL));
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EOB - Can do EOB message
- HUB - This server is a HUB
- UID - Can do UIDs
- PARA - supports invite broadcasting for +p
-*/
-void musircd_cmd_capab(void)
-{
- send_cmd(NULL, "CAPAB :QS");
-}
-
-void musircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/* PASS */
-void musircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER name hop descript */
-void musircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d 0 :%s", servname, hop, descript);
-}
-
-void musircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- musircd_cmd_pass(RemotePassword);
- musircd_cmd_capab();
- musircd_cmd_server(ServerName, 1, ServerDesc);
- musircd_cmd_svinfo();
-}
-
-void musircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-void musircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- musircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac)
- {
- update_sync_state(source, SYNC_COMPLETE);
- }
- return MOD_CONT;
-}
-
-void musircd_cmd_eob(void)
-{
- send_cmd(ServerName, "EOB");
-}
-
-void musircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- }
- else
- {
- do_server(source, av[0], av[1], av[2], NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void musircd_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void musircd_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-/* QUIT */
-void musircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_pass(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* PONG */
-void musircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/* SQUIT */
-void musircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 2)
- {
- return MOD_CONT;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void musircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(musircd_cmd_nick);
- pmodule_cmd_mode(musircd_cmd_mode);
- pmodule_cmd_bot_nick(musircd_cmd_bot_nick);
- pmodule_cmd_notice(musircd_cmd_notice);
- pmodule_cmd_privmsg(musircd_cmd_privmsg);
- pmodule_cmd_serv_notice(musircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(musircd_cmd_serv_privmsg);
- pmodule_cmd_quit(musircd_cmd_quit);
- pmodule_cmd_pong(musircd_cmd_pong);
- pmodule_cmd_join(musircd_cmd_join);
- pmodule_cmd_part(musircd_cmd_part);
- pmodule_cmd_global(musircd_cmd_global);
- pmodule_cmd_squit(musircd_cmd_squit);
- pmodule_cmd_connect(musircd_cmd_connect);
- pmodule_cmd_eob(musircd_cmd_eob);
- pmodule_cmd_ctcp(musircd_cmd_ctcp);
- pmodule_cmd_version(musircd_cmd_version);
- pmodule_cmd_stats(musircd_cmd_stats);
- pmodule_cmd_motd(musircd_cmd_motd);
- pmodule_cmd_ping(musircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("MusIRCD 2.0x");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_MUSIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* MusIRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void musircd_cmd_nick(char *nick, char *name, const char *modes);
-void musircd_cmd_mode(char *source, char *dest, char *buf);
-void musircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void musircd_cmd_notice(char *source, char *dest, char *buf);
-void musircd_cmd_privmsg(char *source, char *dest, char *buf);
-void musircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void musircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void musircd_cmd_quit(char *source, char *buf);
-void musircd_cmd_pong(char *servname, char *who);
-void musircd_cmd_join(char *user, char *channel, time_t chantime);
-void musircd_cmd_part(char *nick, char *chan, char *buf);
-void musircd_cmd_global(char *source, char *buf);
-void musircd_cmd_squit(char *servname, char *message);
-void musircd_cmd_connect(void);
-void musircd_cmd_eob(void);
-void musircd_cmd_ctcp(char *source, char *dest, char *buf);
-void musircd_cmd_version(char *server);
-void musircd_cmd_stats(char *sender, const char *letter, char *server);
-void musircd_cmd_motd(char *sender, char *server);
-void musircd_cmd_ping(char *server);
-void musircd_cmd_pass(char *pass);
-void musircd_cmd_server(char *servname, int hop, char *descript);
-void musircd_cmd_capab(void);
-void musircd_cmd_svinfo(void);
-void IRCDModeInit(void);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-/* Nefarious ircu P10 IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "nefarious.h"
-
-int p10nickcnt = 0;
-
-IRCDVar myIrcd[] =
-{
- {
- "Nefarious IRCu 1.0-1.2", /* ircd name */
- "+iok", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- 's', /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channel linking */
- IRCD_ENABLE, /* p10 */
- IRCD_DISABLE, /* TS6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- 'z' /* Persistent channel mode */
- },
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 1, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, /* CHANMODES */
- 0, /* sjb64 */
- 0, /* nickchar */
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- /* User Modes
- * a - admin
- * h - set host
- * f - fake host
- * n - no chan
- * i - marks a users as invisible;
- * s - marks a user for receipt of server notices;
- * w - user receives wallops;
- * o - operator flag.
- * d - Deaf & Dumb. This user will not get any channel traffic. Used for bots.
- * k - This user cannot be kicked, deop'd or /kill'd. This usermode may only
- * be set by a server, it may not be set by a user. This is used by
- * undernet service bots (X/W/UWorld etc)
- * g - List channel HACK:'s
- * O - local op
- * R - account only
- * B - bot
- * X - xtra op
- * I - no idle
- * W - whois
- * z - SSL
- */
-
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_B, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
-
- /* Channel Modes
- * o - give/take channel operator privileges;
- * h - halfop
- * p - private channel flag;
- * s - secret channel flag;
- * i - invite-only channel flag;
- * t - topic settable by channel operator only flag;
- * n - no messages to channel from clients on the outside;
- * m - moderated channel;
- * l - set the user limit to channel;
- * b - set a ban mask to keep users out;
- * v - give/take the ability to speak on a moderated channel;
- * k - set a channel key (password).
- * r - registered
- * e - ban excepts
- * c - no colour
- * S - strip colour
- * C - no ctcp
- * M - acconly
- * N - no notice
- * O - oper only
- * a - admin only
- * Q - no quit parts
- * Z - ssl only
- * T - no amsg
- * L - no list modes
- * z - persist
- */
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanMode(CMODE_a, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_L, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_T, NULL, NULL);
- CreateChanMode(CMODE_Z, NULL, NULL);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleUpdateSQLChanMode();
-}
-
-
-char *nefarious_nickip(char *host)
-{
- struct in_addr addr;
- int decoded;
-
- decoded = base64toint(host);
- addr.s_addr = ntohl(decoded);
- return sstrdup(inet_ntoa(addr));
-}
-
-/* On Services connect the modes are given */
-/* AB N Trystan` 1 1098031638 tslee comcast.net +i AYAmXj ABAAC : real */
-/* On user join they are not */
-/* AB N Trystan 1 1101443066 tslee comcast.net AYAmXj ABAAB : real */
-
-/*
-** NICK - new
-** source = Ownering Server Prefix
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = username
-** parv[4] = host
-** parv[5] = modes
-** parv[6] = base64 ip
-** parv[7] = uid
-** parv[8] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = timestamp
-*/
-/*
- AB N Trystan 1 1117327797 tslee c-24-2-101-227.hsd1.ut.comcast.net +i AYAmXj ABAAB :Dreams are answers to questions not yet asked
- 0 1 2 2 3 4 5 6 7
- */
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- Server *s;
- char *temp;
- char *ipchar;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- temp = sstrdup(source);
-
- if (ac != 2)
- {
- char *realname, *ip, *nick;
- char *ident, *host, *modes, *modes2;
- const char *uid = "";
- const char *account = "";
- char *fakehost = NULL;
- char *sethost = NULL;
- char *hiddenhost = NULL;
- char *hiddenip = NULL;
- const char *timestamp = "";
- char hhostbuf[255] = "";
- int ishidden = 0, isaccount = 0;
-
- s = server_find(source);
- *source = '\0';
-
- realname = sstrdup(av[ac - 1]);
- uid = sstrdup(av[ac - 2]);
- ip = sstrdup(av[ac - 3]);
- nick = sstrdup(av[0]);
- ident = sstrdup(av[3]);
- host = sstrdup(av[4]);
- modes = sstrdup(av[5]);
- modes2 = sstrdup(av[5]);
-
- if (strpbrk(av[5], "+"))
- {
- int cnt = 6;
- int c = 1;
- char *uaccount = sstrdup("");
- char *acc = NULL;
-
- while (*modes)
- {
- switch (*modes)
- {
- case 'r':
- isaccount = 1;
- uaccount = av[cnt++];
- for (acc = strtok(uaccount, ":");
- acc; acc = strtok(NULL, ":"))
- {
- if (c == 1)
- account = sstrdup(acc);
- else if (c == 2)
- timestamp = sstrdup(acc);
- c++;
- }
- c = 1;
- break;
- case 'h':
- sethost = sstrdup(av[cnt++]);
- break;
- case 'f':
- fakehost = sstrdup(av[cnt++]);
- break;
- case 'c':
- hiddenip = sstrdup(av[cnt++]);
- break;
- case 'C':
- hiddenhost = sstrdup(av[cnt++]);
- break;
- case 'x':
- ishidden = 1;
- break;
- default:
- break;
- }
- modes++;
- }
- modes = sstrdup(modes2);
- }
- else
- modes = NULL;
-
- /* do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes, char *account) */
-
- ipchar = nefarious_nickip(ip);
-
- if (ishidden)
- {
- if (hiddenhost)
- {
- ircsnprintf(hhostbuf, sizeof(hhostbuf) + 3, "%s", hiddenhost);
- }
- else if (isaccount)
- {
- ircsnprintf(hhostbuf,
- sizeof(account) + sizeof(hhostbuf) + 2,
- "%s%s%s", HiddenPrefix, account, HiddenSuffix);
- }
- }
-
- user = do_nick(source, nick, ident, host, (s ? s->name : temp),
- realname, strtoul(av[2], NULL, 10), 0, ipchar,
- hhostbuf, (char *) uid, strtoul(av[1], NULL, 10),
- modes, (char *) account);
-
- if (user)
- {
- if (fakehost || sethost)
- {
- const char *vhost = "";
- if (sethost)
- {
- int h = 1;
- char *uh = NULL;
- const char *vident = "";
- for (uh = strtok(sethost, "@");
- uh; uh = strtok(NULL, "@"))
- {
- if (h == 1)
- vident = uh;
- else if (h == 2)
- vhost = uh;
- h++;
- }
- h = 1;
- change_user_username(user->nick, (char *) vident);
- }
- change_user_host(user->nick,
- sethost ? (char *) vhost : fakehost);
- /* set host as ip */
- }
- }
- free(ipchar);
- }
- else
- {
- /* Nick change */
- user = find_byuid(source);
- do_nick((user ? user->nick : source), av[0], NULL, NULL, NULL,
- NULL, strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0,
- NULL, NULL);
- }
- free(temp);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- s = server_find(source);
- if (stricmp(s->name, denora->uplink) == 0)
- {
- send_cmd(NULL, "%s EA", p10id);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-int denora_event_account(char *source, int ac, char **av)
-{
- Server *s;
- User *u;
-
- if ((ac < 2) || !source || !(s = server_find(source)))
- return 0; /* source must be server. */
-
- u = user_find(av[0]);
- if (!u)
- return 1; /* A QUIT probably passed the ACCOUNT. */
-
- if (!strcmp(av[1], "R")) /* Set */
- do_p10account(u, av[2], 0);
- else if (!strcmp(av[1], "M")) /* Rename */
- do_p10account(u, av[2], 2);
- else if (!strcmp(av[1], "U")) /* Remove */
- do_p10account(u, NULL, 1);
- else
- do_p10account(u, av[1], 0); /* For backward compatability */
-
- return MOD_CONT;
-}
-
-int denora_event_mark(char *source, int ac, char **av)
-{
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- u = user_find(av[0]);
- if (!u)
- return 1;
-
- if (!strcmp(av[1], "CVERSION") && strlen(av[2]))
- {
- handle_ctcp_version(u->nick, av[2]);
- }
-
- return MOD_CONT;
-}
-
-int denora_event_swhois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_swhois(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ALIST", denora_event_null);
- addCoreMessage(IRCD,m);
-
- /* let the p10 tokens begin */
-
- /* end of burst */
- m = createMessage("EB", denora_event_eob);
- addCoreMessage(IRCD,m);
- /* nick */
- m = createMessage("N", denora_event_nick);
- addCoreMessage(IRCD,m);
- /* ping */
- m = createMessage("G", denora_event_ping);
- addCoreMessage(IRCD,m);
- /* pong */
- m = createMessage("RO", denora_event_pong);
- addCoreMessage(IRCD,m);
- /* MODE */
- m = createMessage("M", denora_event_mode);
- addCoreMessage(IRCD,m);
- /* OPMODE */
- m = createMessage("OM", denora_event_mode);
- addCoreMessage(IRCD,m);
- /* CREATE */
- m = createMessage("C", denora_event_create);
- addCoreMessage(IRCD,m);
- /* JOIN */
- m = createMessage("J", denora_event_join);
- addCoreMessage(IRCD,m);
- /* QUIT */
- m = createMessage("Q", denora_event_quit);
- addCoreMessage(IRCD,m);
- /* TOPIC */
- m = createMessage("T", denora_event_topic);
- addCoreMessage(IRCD,m);
- /* MOTD */
- m = createMessage("MO", denora_event_motd);
- addCoreMessage(IRCD,m);
- /* KICK */
- m = createMessage("K", denora_event_kick);
- addCoreMessage(IRCD,m);
- /* AWAY */
- m = createMessage("A", denora_event_away);
- addCoreMessage(IRCD,m);
- /* ADMIN */
- m = createMessage("AD", denora_event_null);
- addCoreMessage(IRCD,m);
- /* PART */
- m = createMessage("L", denora_event_part);
- addCoreMessage(IRCD,m);
- /* BURST */
- m = createMessage("B", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- /* PRIVMSG */
- m = createMessage("P", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- /* NOTICE */
- m = createMessage("O", denora_event_notice);
- addCoreMessage(IRCD,m);
- /* SQUIT */
- m = createMessage("SQ", denora_event_squit);
- addCoreMessage(IRCD,m);
- /* INVITE */
- m = createMessage("I", denora_event_null);
- addCoreMessage(IRCD,m);
- /* DESYNCH */
- m = createMessage("DS", denora_event_error);
- addCoreMessage(IRCD,m);
- /* WALLOP */
- m = createMessage("WA", denora_event_null);
- addCoreMessage(IRCD,m);
- /* VERSION */
- m = createMessage("V", m_version);
- addCoreMessage(IRCD,m);
- /* WHOIS */
- m = createMessage("W", denora_event_whois);
- addCoreMessage(IRCD,m);
- /* SERVER */
- m = createMessage("S", denora_event_server);
- addCoreMessage(IRCD,m);
- /* STATS */
- m = createMessage("R", m_stats);
- addCoreMessage(IRCD,m);
- /* ACCCOUNT */
- m = createMessage("AC", denora_event_account);
- addCoreMessage(IRCD,m);
- /* KILL */
- m = createMessage("D", denora_event_kill);
- addCoreMessage(IRCD,m);
- /* GLINE */
- m = createMessage("GL", denora_event_gline);
- addCoreMessage(IRCD,m);
- /* SHUN */
- m = createMessage("SU", denora_event_shun);
- addCoreMessage(IRCD,m);
- /* ZLINE */
- m = createMessage("ZL", denora_event_zline);
- addCoreMessage(IRCD,m);
- /* JUPE */
- m = createMessage("JU", denora_event_jupe);
- addCoreMessage(IRCD,m);
- /* INFO */
- m = createMessage("F", denora_event_null);
- addCoreMessage(IRCD,m);
- /* SETTIME */
- m = createMessage("SE", denora_event_null);
- addCoreMessage(IRCD,m);
- /* TIME */
- m = createMessage("TI", m_time);
- addCoreMessage(IRCD,m);
- /* TRACE */
- m = createMessage("TR", denora_event_null);
- addCoreMessage(IRCD,m);
- /* RPING */
- m = createMessage("RI", denora_event_null);
- addCoreMessage(IRCD,m);
- /* SILENCE */
- m = createMessage("U", denora_event_null);
- addCoreMessage(IRCD,m);
- /* End of Burst Acknowledge */
- m = createMessage("EA", denora_event_null);
- addCoreMessage(IRCD,m);
- /* FAKEHOST */
- m = createMessage("FA", denora_event_fakehost);
- addCoreMessage(IRCD,m);
- /* SWHOIS */
- m = createMessage("SW", denora_event_swhois);
- addCoreMessage(IRCD,m);
- /* MARK */
- m = createMessage("MK", denora_event_mark);
- addCoreMessage(IRCD,m);
- /* SVSIDENT */
- m = createMessage("SID", denora_event_setident);
- addCoreMessage(IRCD,m);
- /* SVSINFO */
- m = createMessage("SI", denora_event_setname);
- addCoreMessage(IRCD,m);
- /* SNO */
- m = createMessage("SNO", denora_event_null);
- addCoreMessage(IRCD,m);
- /* PRIVS */
- m = createMessage("PRIVS", denora_event_null);
- addCoreMessage(IRCD,m);
- /* CLEARMODE */
- m = createMessage("CM", denora_event_clearmode);
- addCoreMessage(IRCD,m);
- /* STATS REPLY */
- m = createMessage("230", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* <source> GL <targetservermask> [!]<+/-><identmask>@<hostmask> <duration> <timestamp> :<reason>
- * AVAAC GL * +*@something.fake 5 1214347529 :Some fake gline */
-int denora_event_gline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline((char *) "G", source, ac, av);
- return MOD_CONT;
-}
-
-/* <source> SU <targetservermask> [!]<+/-><identmask>@<hostmask> <duration> <timestamp> :<reason>
- * AVAAC SU * +*@something.fake 5 1214347562 :Some fake shun */
-int denora_event_shun(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline((char *) "S", source, ac, av);
- return MOD_CONT;
-}
-
-/* <source> ZL <targetservermask> [!]<+/-><ipmask> <duration> <timestamp> :<reason>
- * AVAAC ZL * +69.69.69.69 5 1214347639 :Some fake zline */
-int denora_event_zline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline((char *) "Z", source, ac, av);
- return MOD_CONT;
-}
-
-/* <source> JU <targetservermask> [!]<+/-><jupedservername> <duration> <timestamp> :<reason>
- * AVAAC JU * +something.fake 5 1214347612 :Some fake jupe */
-int denora_event_jupe(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- p10_gline((char *) "J", source, ac, av);
- return MOD_CONT;
-}
-
-
-void nefarious_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- Server *s;
-
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "STATS %s :%s", letter,
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-/* PART */
-void nefarious_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
- ud = find_uid(nick);
- if (buf)
- {
- send_cmd((ud ? ud->uid : nick), "L %s :%s", chan, buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : nick), "L %s", chan);
- }
-}
-
-/* ABAAB J #ircops 1098031328 */
-void nefarious_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
- char *modes = NULL;
-
- ud = find_uid(user);
-
- if (started)
- {
- send_cmd((ud ? ud->uid : user), "J %s %ld", channel,
- (long int) chantime);
- }
- else
- {
- if (AutoOp && AutoMode)
- {
- modes = sstrdup(AutoMode);
- modes++; /* since the first char is +, we skip it */
- send_cmd(p10id, "B %s %ld %s:%s", channel,
- (long int) chantime, (ud ? ud->uid : user), modes);
- }
- else
- {
- send_cmd(p10id, "B %s %ld %s", channel,
- (long int) chantime, (ud ? ud->uid : user));
- }
- }
-}
-
-void nefarious_cmd_squit(char *servname, char *message)
-{
- alog(LOG_PROTOCOL, "Servername %s Message %s", servname, message);
- send_cmd(p10id, "SQ %s :%s", p10id, message);
-}
-
-void nefarious_cmd_connect(void)
-{
-
- if (!BadPtr(Numeric))
- {
- inttobase64(p10id, atoi(Numeric), 2);
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, p10id);
- nefarious_cmd_pass(RemotePassword);
- nefarious_cmd_server(ServerName, 1, ServerDesc);
- }
- else
- {
- alog(LOG_NORMAL, "Numeric is required for P10 ircds");
- exit(1);
- }
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* PASS */
-void nefarious_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-void nefarious_cmd_capab()
-{
- /* not used by p10 */
-}
-
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] :[DESCRIPTION] */
-/* SERVER irc.undernet.org 1 933022556 947908144 J10 AA]]] :[127.0.0.1] A Undernet Server */
-void nefarious_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d %ld %lu J10 %s]]] +s :%s", servname, hop,
- (long int) denora->start_time, (long int) time(NULL), p10id,
- descript);
-}
-
-/* GLOBOPS */
-void nefarious_cmd_global(char *source, char *buf)
-{
- Uid *id;
-
- id = find_uid(source);
-
- send_cmd((id ? id->uid : ServerName), "WA :%s", buf);
-}
-
-/* ABAAC A :I go away */
-/* ABAAC A */
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *newav[5];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 4)
- return MOD_CONT;
-
- newav[0] = av[0];
- newav[1] = av[1];
- newav[2] = av[ac - 2];
- newav[3] = av[ac - 1];
- newav[4] = '\0';
-
- do_topic(4, newav);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-/* ABAAB Q :Quit */
-int denora_event_quit(char *source, int ac, char **av)
-{
- char *killer = NULL;
- char *msg = NULL;
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
-
- if (nefarious_parse_lkill(av[0]) == 0)
- {
- do_quit(source, ac, av);
- }
- else
- {
- killer = nefarious_lkill_killer(av[0]);
- msg = nefarious_lkill_msg(av[0]);
- u = find_byuid(source);
-
- if (killer)
- m_kill(killer, (u ? u->nick : source), msg);
- else
- m_kill((u ? u->nick : source), (u ? u->nick : source), msg);
- }
-
- return MOD_CONT;
-}
-
-/* User modes */
-/* ABAAA M Trystan +wg */
-
-/* Channel modes */
-/* ABAAA M #ircops +v ABAAB */
-/* AKAAD M #street -o+b AxC3U *!*@`.users.beirut.com */
-int denora_event_mode(char *source, int ac, char **av)
-{
- User *u;
- Server *s;
- char *sender;
-
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
-
- if (ac < 2)
- return MOD_CONT;
-
- u = find_byuid(source);
-
- if (!u)
- {
- sender = source;
- }
- else
- {
- sender = u->nick;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- s = server_find(source);
- if (s)
- sender = av[0];
- do_umode(sender, ac, av);
- }
- return MOD_CONT;
-}
-
-/* 66AAA D AxC5i :defender.beirut.com!Defender (reason) */
-int denora_event_kill(char *source, int ac, char **av)
-{
- User *u, *k;
- char *msg = NULL;
-
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
- if (ac != 2)
- return MOD_CONT;
-
- msg = strchr(av[1], '(');
- msg[strlen(msg) - 1] = '\0';
- msg++;
-
- u = find_byuid(source);
- k = find_byuid(av[0]);
- m_kill((u ? u->nick : source), (k ? k->nick : av[0]), msg);
- return MOD_CONT;
-}
-
-/* ABAAA K #ircops ABAAC :Trystan` */
-/* ABAAA K #testchan ABAAB :test */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_p10_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/* JOIN - is the same syntax */
-/* ABAAB J #ircops 1098031328 */
-int denora_event_join(char *source, int ac, char **av)
-{
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- u = find_byuid(source);
-
- if (ac != 2)
- {
- return MOD_CONT;
- }
-
- do_join((u ? u->nick : source), ac, av);
- return MOD_CONT;
-}
-
-/* CREATE - p10 don't join empty channels the CREATE them */
-/* ABAAA C #ircops 1098031328 */
-int denora_event_create(char *source, int ac, char **av)
-{
- char *newav[3];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_join(source, ac, av);
-
- newav[0] = av[0];
- newav[1] = (char *) "+o";
- newav[2] = source;
-
- do_cmode(source, 3, newav);
-
- return MOD_CONT;
-}
-
-/* BURST joins simlar to SJOIN */
-/* AB B #denora 1113091975 +tn ABAAB,ABAAA:o :%*!*@*.aol.com */
-/* s c 0 1 2 3 4 */
-/* AB B #test23 1115788230 ABAAB,ABAAA:o */
-/* s c 0 1 2 */
-/* AB B #test23 1115788230 :%*!*@*.aol.com */
-/* s c 0 1 2 */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_p10_burst(source, ac, av);
- return MOD_CONT;
-}
-
-/* ABAAA MO AG */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void nefarious_cmd_mode(char *source, char *dest, char *buf)
-{
- Channel *c;
- alog(LOG_PROTOCOL, "MODE Source %s, dest %s, buf %s", source, dest,
- buf);
- if ((c = findchan(dest)))
- send_cmd(p10id, "M %s %s %ld", dest, buf, (long int) c->creation_time);
- else
- send_cmd(p10id, "M %s %s", dest, buf);
-}
-
-void nefarious_cmd_notice(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "O %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-void nefarious_cmd_privmsg(char *source, char *dest, char *buf)
-{
- User *u;
- Uid *ud;
-
- u = finduser(dest);
- ud = find_uid(source);
-
- send_cmd((ud ? ud->uid : source), "P %s :%s", (u ? u->uid : dest),
- buf);
-}
-
-void nefarious_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void nefarious_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void nefarious_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((ud ? ud->uid : source), "QUIT :%s", buf);
- }
- else
- {
- send_cmd((ud ? ud->uid : source), "QUIT");
- }
-}
-
-/* Local kills handling - DrStein */
-int nefarious_parse_lkill(char *message)
-{
- const char *localkillmsg = "Killed (";
-
- /* is it a Local kill message? */
- if ((strncmp(message, QuitPrefix, strlen(QuitPrefix)) != 0)
- && (strstr(message, localkillmsg) != NULL))
- return 1;
-
- return 0;
-}
-
-char *nefarious_lkill_killer(char *message)
-{
- char *buf, *killer = NULL;
-
- /* Let's get the killer nickname */
- buf = sstrdup(message);
- killer = strtok(buf, " ");
- killer = strtok(NULL, " ");
- killer++;
-
- return killer;
-}
-
-/* Killed (*.beirut.com (KILL TESTING)) */
-char *nefarious_lkill_msg(char *message)
-{
- char *msg = NULL;
-
- /* Let's get the kill message */
- msg = strchr(message, '(');
- msg++;
- msg = strchr(msg, '(');
- msg[strlen(msg) - 2] = '\0';
- msg++; /* removes first character '(' */
-
- return msg;
-}
-
-/* [NUMERIC PREFIX] N [NICK] [HOPCOUNT] [TIMESTAMP] [USERNAME] [HOST] <+modes> [BASE64 IP] [NUMERIC] :[USERINFO] */
-/* AF N Client1 1 947957573 User userhost.net +oiwg DAqAoB AFAAA :Generic Client. */
-void nefarious_cmd_nick(char *nick, char *name, const char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, modes, p10id,
- (p10nickcnt + 'A'), name);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-/* EVENT: SERVER */
-/* SERVER Auska.Nomadirc.net 1 1098025304 1098036331 J10 ABAP] + :Test Server */
-/* SERVER [SERVERNAME] [HOPCOUNT] [START TIME] [LINK TIME] [PROTOCOL] [NUMERIC/MAXCONN] [FLAGS] :[DESCRIPTION] */
-/* (AB S trystan.nomadirc.net 2 0 1106520454 P10 ACAP] +h :Test Server) */
-int denora_event_server(char *source, int ac, char **av)
-{
- Server *s;
- char uplinknum[3];
- *uplinknum = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- strlcpy(uplinknum, av[5], sizeof(uplinknum));
-
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- s = server_find(source);
- do_server((s ? s->name : source), av[0], av[1], av[7], uplinknum);
- return MOD_CONT;
-}
-
-/* ABAAA P ADAAB :help */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- User *u;
- Uid *id;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- u = find_byuid(source);
- id = find_nickuid(av[0]);
-
- if (ac != 2 || *av[0] == '$' || strlen(source) == 2)
- return MOD_CONT;
- m_privmsg((u ? u->nick : source), (id ? id->nick : av[0]), av[1]);
- return MOD_CONT;
-}
-
-/* ABAAA L #ircops */
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[1]);
- }
- return MOD_CONT;
-}
-
-/* AB G !1098031985.558075 services.nomadirc.net 1098031985.558075 */
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- nefarious_cmd_pong(p10id, av[0]);
- return MOD_CONT;
-}
-
-/* PONG */
-void nefarious_cmd_pong(char *servname, char *who)
-{
- char *t, *s;
- uint32 ts, tsnow, value;
- t = myStrGetToken(who, '!', 1);
- s = myStrGetToken(t, '.', 0);
- if (!s)
- {
- ts = 0;
- }
- else
- {
- ts = strtol(s, NULL, 10);
- }
- tsnow = time(NULL);
- value = tsnow - ts;
- if (denora->protocoldebug)
- {
- alog(LOG_PROTOCOL, "PONG: Server Name %s : Who %s", servname, who);
- }
- send_cmd(p10id, "Z %s %ld %ld %ld %s", p10id, (long int) ts,
- (long int) tsnow, (long int) value, militime_float(NULL));
- free(s);
- free(t);
-}
-
-void nefarious_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char nicknumbuf[6];
- send_cmd(p10id, "N %s 1 %ld %s %s %s B]AAAB %sAA%c :%s", nick,
- (long int) time(NULL), user, host, modes, p10id,
- (p10nickcnt + 'A'), real);
- ircsnprintf(nicknumbuf, 6, "%sAA%c", p10id, (p10nickcnt + 'A'));
- new_uid(nick, nicknumbuf);
- p10nickcnt++;
-}
-
-void nefarious_cmd_eob(void)
-{
- send_cmd(p10id, "EB");
-}
-
-void nefarious_cmd_ping(char *server)
-{
- /* AB G !1115872042.64217 denora.nomadirc.net 1115872042.64217
- * [OUT]: AB RI AL ABAAB 1165972073 45741 :<No client start time>
- * [IN ]: AL RO ScaryNet.Org ABAAB 1165972073 45741 :<No client start time>
- */
-
- Uid *ud;
- Server *s;
- struct timeval t;
- ud = find_uid(s_StatServ);
- s = server_find(server);
- gettimeofday(&t, NULL);
-
- send_cmd(p10id, "RI %s %s %ld %ld :<No client start time>",
- ((s
- && s->suid) ? s->suid : server),
- (ud ? ud->uid : s_StatServ), t.tv_sec, t.tv_usec);
-}
-
-void nefarious_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void nefarious_cmd_version(char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(s_StatServ);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : s_StatServ), "V :%s",
- (s ? (s->suid ? s->suid : server) : server));
-}
-
-void nefarious_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- Server *s;
- ud = find_uid(sender);
- s = server_find(server);
-
- send_cmd((ud ? ud->uid : sender), "MO :%s",
- (s ? (s->suid ? s->suid : server) : server));
-
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- User *user_s = NULL;
- User *user_r = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2 || *av[0] == '$' || strlen(source) == 2)
- {
- return MOD_CONT;
- }
-
- user_s = user_find(source);
- if ((*av[0] == '#' || *av[0] == '&') && (user_s))
- {
- m_notice(user_s->nick, av[0], av[1]);
- }
- else if (user_s)
- {
- user_r = user_find(av[0]);
- if (user_r)
- {
- m_notice(user_s->nick, user_r->nick, av[1]);
- }
- }
- return MOD_CONT;
-}
-
-int denora_event_fakehost(char *source, int ac, char **av)
-{
- User *ud;
- char *parv[2];
-
- ud = user_find(av[0]);
-
- if (ud)
- {
- parv[0] = (char *) ud->nick;
- parv[1] = (char *) "+f";
- do_umode(ud->nick, 2, parv);
- }
-
- change_user_host(ud->nick, av[1]);
- return MOD_CONT;
-}
-
-int denora_event_clearmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- chan_clearmodes(source, ac, av);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(nefarious_cmd_nick);
- pmodule_cmd_mode(nefarious_cmd_mode);
- pmodule_cmd_bot_nick(nefarious_cmd_bot_nick);
- pmodule_cmd_notice(nefarious_cmd_notice);
- pmodule_cmd_privmsg(nefarious_cmd_privmsg);
- pmodule_cmd_serv_notice(nefarious_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(nefarious_cmd_serv_privmsg);
- pmodule_cmd_quit(nefarious_cmd_quit);
- pmodule_cmd_pong(nefarious_cmd_pong);
- pmodule_cmd_join(nefarious_cmd_join);
- pmodule_cmd_part(nefarious_cmd_part);
- pmodule_cmd_global(nefarious_cmd_global);
- pmodule_cmd_squit(nefarious_cmd_squit);
- pmodule_cmd_connect(nefarious_cmd_connect);
- pmodule_cmd_eob(nefarious_cmd_eob);
- pmodule_cmd_ctcp(nefarious_cmd_ctcp);
- pmodule_cmd_version(nefarious_cmd_version);
- pmodule_cmd_stats(nefarious_cmd_stats);
- pmodule_cmd_motd(nefarious_cmd_motd);
- pmodule_cmd_ping(nefarious_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion
- ("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("Nefarious IRCu 1.0-1.2");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_NEFARIOUS);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* Nefarious ircu IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void nefarious_cmd_nick(char *nick, char *name, const char *modes);
-void nefarious_cmd_mode(char *source, char *dest, char *buf);
-void nefarious_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void nefarious_cmd_notice(char *source, char *dest, char *buf);
-void nefarious_cmd_privmsg(char *source, char *dest, char *buf);
-void nefarious_cmd_serv_notice(char *source, char *dest, char *msg);
-void nefarious_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void nefarious_cmd_quit(char *source, char *buf);
-void nefarious_cmd_pong(char *servname, char *who);
-void nefarious_cmd_join(char *user, char *channel, time_t chantime);
-void nefarious_cmd_server(char *servname, int hop, char *descript);
-void nefarious_cmd_part(char *nick, char *chan, char *buf);
-void nefarious_cmd_global(char *source, char *buf);
-void nefarious_cmd_squit(char *servname, char *message);
-void nefarious_cmd_connect(void);
-void nefarious_cmd_eob(void);
-void nefarious_cmd_capab(void);
-void nefarious_cmd_ctcp(char *source, char *dest, char *buf);
-void nefarious_cmd_pass(char *pass);
-void nefarious_cmd_version(char *server);
-void nefarious_cmd_stats(char *sender, const char *letter, char *server);
-void nefarious_cmd_motd(char *sender, char *server);
-void nefarious_cmd_ping(char *server);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_account(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_mark(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_gnotice(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_create(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_gline(char *source, int ac, char **av);
-int denora_event_shun(char *source, int ac, char **av);
-int denora_event_zline(char *source, int ac, char **av);
-int denora_event_jupe(char *source, int ac, char **av);
-int denora_event_fakehost(char *source, int ac, char **av);
-int denora_event_clearmode(char *source, int ac, char **av);
-void IRCDModeInit(void);
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *nefarious_nickip(char *host);
-
-int nefarious_parse_lkill(char *message);
-char *nefarious_lkill_killer(char *message);
-char *nefarious_lkill_msg(char *message);
+++ /dev/null
-/* NeoIRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "neoircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "NeoIRCD 0.95", /* ircd name */
- "+oS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- CAPAB_TS5, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- CAPAB_QS, /* QS */
- CAPAB_UID, /* UID */
- CAPAB_KNOCK, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_l, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_u, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
-
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_I, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_a, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('!', 'a', STATUS_PROTECTED);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-void neoircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void neoircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void neoircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void neoircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void neoircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "SMO 8388609 2 :%s", buf);
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- 1 : const char *source
- 2 : char *nick
- 3 : char *username
- 4 : char *host,
- 5 : char *server
- 6 : char *realname
- 7 : time_t ts
- 8 : uint32 svid
- 9 : uint32 ip
- 10 : char *vhost
- 11 : char *uid
- 12 : int hopcount
- 13 : char *modes
-
-ac[0] = Trystan
-ac[1] = 1
-ac[2] = 1120277659
-ac[3] = +ix
-ac[4] = tslee
-ac[5] = c-24-2-101-227.hsd1.ut.comcast.net
-ac[6] = 3223f75b.2b32ee69.ut.comcast.net
-ac[7] = neoircd.nomadirc.net
-ac[8] = 0
-ac[9] = Dreams are answers to questions not yet asked
-
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], av[7], av[9],
- strtoul(av[2], NULL, 10), 0, ipchar, av[6], NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 5)
- return MOD_CONT;
-
- av[0] = av[1];
- av[1] = av[3];
- av[3] = av[4];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_pass);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("EOB", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSID", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SWHOIS", denora_event_swhois);
- addCoreMessage(IRCD,m);
- m = createMessage("TBURST", denora_event_tburst);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SMO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RESV", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNRESV", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("DLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNDLINE", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_swhois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_swhois(av[0], av[1]);
- return MOD_CONT;
-}
-
-void neoircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
-}
-
-void neoircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void neoircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void neoircd_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 :%ld", (long int) time(NULL));
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EOB - Can do EOB message
- HUB - This server is a HUB
- UID - Can do UIDs
- PARA - supports invite broadcasting for +p
-*/
-void neoircd_cmd_capab(void)
-{
- send_cmd(NULL, "CAPAB :QS EOB HUB PARA");
-}
-
-void neoircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/* PASS */
-void neoircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER name hop descript */
-void neoircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d 0 :%s", servname, hop, descript);
-}
-
-void neoircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- neoircd_cmd_pass(RemotePassword);
- neoircd_cmd_capab();
- neoircd_cmd_server(ServerName, 1, ServerDesc);
- neoircd_cmd_svinfo();
-}
-
-void neoircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-void neoircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- neoircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-void neoircd_cmd_eob(void)
-{
- send_cmd(ServerName, "EOB");
-}
-
-void neoircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- }
- else
- {
- do_server(source, av[0], av[1], av[2], NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void neoircd_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void neoircd_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s * %s 0 :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-/* QUIT */
-void neoircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_pass(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* PONG */
-void neoircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/* SQUIT */
-void neoircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac < 2)
- {
- return MOD_CONT;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void neoircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(neoircd_cmd_nick);
- pmodule_cmd_mode(neoircd_cmd_mode);
- pmodule_cmd_bot_nick(neoircd_cmd_bot_nick);
- pmodule_cmd_notice(neoircd_cmd_notice);
- pmodule_cmd_privmsg(neoircd_cmd_privmsg);
- pmodule_cmd_serv_notice(neoircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(neoircd_cmd_serv_privmsg);
- pmodule_cmd_quit(neoircd_cmd_quit);
- pmodule_cmd_pong(neoircd_cmd_pong);
- pmodule_cmd_join(neoircd_cmd_join);
- pmodule_cmd_part(neoircd_cmd_part);
- pmodule_cmd_global(neoircd_cmd_global);
- pmodule_cmd_squit(neoircd_cmd_squit);
- pmodule_cmd_connect(neoircd_cmd_connect);
- pmodule_cmd_eob(neoircd_cmd_eob);
- pmodule_cmd_ctcp(neoircd_cmd_ctcp);
- pmodule_cmd_version(neoircd_cmd_version);
- pmodule_cmd_stats(neoircd_cmd_stats);
- pmodule_cmd_motd(neoircd_cmd_motd);
- pmodule_cmd_ping(neoircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("NeoIRCD 0.95");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_NEOIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* NeoIRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void neoircd_cmd_nick(char *nick, char *name, const char *modes);
-void neoircd_cmd_mode(char *source, char *dest, char *buf);
-void neoircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void neoircd_cmd_notice(char *source, char *dest, char *buf);
-void neoircd_cmd_privmsg(char *source, char *dest, char *buf);
-void neoircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void neoircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void neoircd_cmd_quit(char *source, char *buf);
-void neoircd_cmd_pong(char *servname, char *who);
-void neoircd_cmd_join(char *user, char *channel, time_t chantime);
-void neoircd_cmd_part(char *nick, char *chan, char *buf);
-void neoircd_cmd_global(char *source, char *buf);
-void neoircd_cmd_squit(char *servname, char *message);
-void neoircd_cmd_connect(void);
-void neoircd_cmd_eob(void);
-void neoircd_cmd_ctcp(char *source, char *dest, char *buf);
-void neoircd_cmd_version(char *server);
-void neoircd_cmd_stats(char *sender, const char *letter, char *server);
-void neoircd_cmd_motd(char *sender, char *server);
-void neoircd_cmd_ping(char *server);
-void neoircd_cmd_pass(char *pass);
-void neoircd_cmd_server(char *servname, int hop, char *descript);
-void neoircd_cmd_capab(void);
-void neoircd_cmd_svinfo(void);
-void IRCDModeInit(void);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-/* Next Generation IRC Server IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- * last tested with ngircd-0.9.2
- *
- */
-
-#include "denora.h"
-#include "ngircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "NGIRCd 0.9.*+", /* ircd name */
- "+oi", /* StatServ mode */
- IRCD_DISABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_DISABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- IRCD_DISABLE, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- IRCD_DISABLE, /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- IRCD_DISABLE, /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_DISABLE, /* Report sync state */
- 'P' /* Persistent channel mode */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, /* CHANMODE */
- 0, 0
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
-
- /* Channel Modes */
- CreateChanMode(CMODE_P, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-void ngircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/*
-NICK <nickname> <hopcount> <username> <host> <servertoken> <umode> <realname>
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- char *ipchar = NULL;
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- {
- s = findserver_uid(servlist, av[4]);
- ipchar = host_resolve(av[3]);
- do_nick("", av[0], av[2], av[3], s ? s->name : source, av[6],
- UplinkSynced ? time(NULL) : 0, 0, ipchar, NULL, NULL,
- strtoul(av[1], NULL, 10), av[5], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- 0, 0, NULL, NULL, NULL, 0, NULL, NULL);
- }
- return MOD_CONT;
-}
-
-void ngircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void ngircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("NJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("CHANINFO", denora_event_chaninfo);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* :ngirc.nomadirc.net CHANINFO #TheName +Ptn :a great topic */
-
-
-int denora_event_chaninfo(char *source, int ac, char **av)
-{
- char *v[32];
- char buf[BUFSIZE];
- Channel *c;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- c = chan_create(av[0], time(NULL));
-
- if (!c)
- {
- return MOD_CONT;
- }
-
- db_getchancreate(av[0]);
-
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- v[0] = sstrdup(av[0]); /* channel */
- v[1] = sstrdup(source); /* setter */
- v[2] = sstrdup(buf);
- v[3] = sstrdup(av[2]);
- do_topic(4, v);
- free(v[1]);
- free(v[2]);
- free(v[3]);
- v[1] = sstrdup(av[1]);
- do_cmode(source, 2, v);
- free(v[0]);
- free(v[1]);
- return MOD_CONT;
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- char *v[32];
- char *temp, *temp2 = NULL;
- char buf[BUFSIZE];
- int num, i;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- v[0] = (char *) "0";
- v[1] = sstrdup(av[0]);
-
- num = myNumToken(av[1], ',');
-
- if (num)
- {
- for (i = 0; i < num; i++)
- {
- temp = myStrGetToken(av[1], ',', i);
- if (temp2)
- {
- ircsnprintf(buf, BUFSIZE, "%s %s", temp2, temp);
- free(temp2);
- temp2 = sstrdup(buf);
- }
- else
- {
- ircsnprintf(buf, BUFSIZE, "%s", temp);
- temp2 = sstrdup(buf);
- }
- free(temp);
- }
- if (temp2)
- {
- v[2] = sstrdup(temp2);
- }
- else
- {
- v[2] = sstrdup("");
- }
- }
- else
- {
- v[2] = sstrdup(av[1]);
- }
- do_sjoin(source, 3, v);
- free(v[0]);
- free(v[1]);
- free(v[2]);
- return MOD_CONT;
-}
-
-void ngircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- USE_VAR(chantime);
- send_cmd(user, "JOIN %s", channel);
-}
-
-/* PASS */
-void ngircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s 0210-IRC+ %s|%s:CL", pass, PACKAGE_NAME,
- PACKAGE_VERSION);
-}
-
-/* SERVER name hop descript */
-void ngircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* PONG */
-void ngircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void ngircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- ngircd_cmd_pass(RemotePassword);
- ngircd_cmd_server(ServerName, 1, ServerDesc);
-}
-
-/* PART */
-void ngircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* GLOBOPS */
-void ngircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-/* SQUIT */
-void ngircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* Events */
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- {
- return MOD_CONT;
- }
- ngircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
-
- /* Little hack since ngircd appears not to send EOB message */
- if (!UplinkSynced)
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *v[32];
- char buf[BUFSIZE];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- v[0] = av[0]; /* channel */
- v[1] = source; /* setter */
- v[2] = buf; /* topic content */
- v[3] = av[1];
- do_topic(4, v);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- char *flags;
- char *x[32];
- char buf[BUFSIZE];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- flags = strchr(av[0], 0x7);
- if (flags)
- {
- *flags = '\0';
- flags++;
- }
- do_join(source, ac, av);
- if (flags)
- {
- x[0] = sstrdup(av[0]);
- ircsnprintf(buf, BUFSIZE, "+%s", flags);
- x[1] = sstrdup(buf);
- x[2] = sstrdup(source);
- do_cmode(source, 3, x);
- free(x[0]);
- free(x[1]);
- free(x[2]);
- }
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* SERVER <servername> <hopcount> <token> <info> für die server */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- if (!stricmp(av[1], "1"))
- {
- *source = '\0';
- do_server(source, av[0], (char *) "0", av[2], av[1]);
- }
- else
- {
- do_server(source, av[0], av[1], av[3], av[2]);
- }
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-void ngircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void ngircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void ngircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void ngircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/*
-[Aug 11 23:23:32.699696 2005] av[0] = Trystan
-[Aug 11 23:23:32.699954 2005] av[1] = 1
-[Aug 11 23:23:32.700115 2005] av[2] = ~tslee
-[Aug 11 23:23:32.700271 2005] av[3] = c-24-2-101-227.hsd1.ut.comcast.net
-[Aug 11 23:23:32.700432 2005] av[4] = 1
-[Aug 11 23:23:32.700588 2005] av[5] = +io
-[Aug 11 23:23:32.700745 2005] av[6] = Dreams are answers to questions not yet asked
-*/
-
-void ngircd_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(ServerName, "NICK %s 1 %s %s 1 %s :%s", nick,
- ServiceUser, ServiceHost, mode, name);
-}
-
-/* QUIT */
-void ngircd_cmd_quit(char *source, char *buf)
-{
- send_cmd(source, "QUIT :%s", (buf ? buf : "\"\""));
-}
-
-void ngircd_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void ngircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(ServerName, "NICK %s 1 %s %s 1 %s :%s", nick,
- user, host, modes, real);
-}
-
-void ngircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (av[0])
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void ngircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds(void)
-{
- pmodule_cmd_nick(ngircd_cmd_nick);
- pmodule_cmd_mode(ngircd_cmd_mode);
- pmodule_cmd_bot_nick(ngircd_cmd_bot_nick);
- pmodule_cmd_notice(ngircd_cmd_notice);
- pmodule_cmd_privmsg(ngircd_cmd_privmsg);
- pmodule_cmd_serv_notice(ngircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(ngircd_cmd_serv_privmsg);
- pmodule_cmd_quit(ngircd_cmd_quit);
- pmodule_cmd_pong(ngircd_cmd_pong);
- pmodule_cmd_join(ngircd_cmd_join);
- pmodule_cmd_part(ngircd_cmd_part);
- pmodule_cmd_global(ngircd_cmd_global);
- pmodule_cmd_squit(ngircd_cmd_squit);
- pmodule_cmd_connect(ngircd_cmd_connect);
- pmodule_cmd_ctcp(ngircd_cmd_ctcp);
- pmodule_cmd_version(ngircd_cmd_version);
- pmodule_cmd_stats(ngircd_cmd_stats);
- pmodule_cmd_motd(ngircd_cmd_motd);
- pmodule_cmd_ping(ngircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
- pmodule_ircd_version("Next Generation IRC Server");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_NGIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- UplinkSynced = 1;
- return MOD_CONT;
-}
+++ /dev/null
-/* Next Generation IRC Server
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void ngircd_cmd_nick(char *nick, char *name, const char *modes);
-void ngircd_cmd_mode(char *source, char *dest, char *buf);
-void ngircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void ngircd_cmd_notice(char *source, char *dest, char *buf);
-void ngircd_cmd_privmsg(char *source, char *dest, char *buf);
-void ngircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void ngircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void ngircd_cmd_quit(char *source, char *buf);
-void ngircd_cmd_pong(char *servname, char *who);
-void ngircd_cmd_join(char *user, char *channel, time_t chantime);
-void ngircd_cmd_part(char *nick, char *chan, char *buf);
-void ngircd_cmd_global(char *source, char *buf);
-void ngircd_cmd_squit(char *servname, char *message);
-void ngircd_cmd_connect(void);
-void ngircd_cmd_ctcp(char *source, char *dest, char *buf);
-void ngircd_cmd_version(char *server);
-void ngircd_cmd_stats(char *sender, const char *letter, char *server);
-void ngircd_cmd_motd(char *sender, char *servr);
-void ngircd_cmd_ping(char *server);
-void ngircd_cmd_pass(char *pass);
-void ngircd_cmd_server(char *servname, int hop, char *descript);
-
-void IRCDModeInit(void);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_chaninfo(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-/* PlexusIRCD IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested with PleXusIRCd-2.0.7(20050423_1)
- *
- */
-
-#include "denora.h"
-#include "plexus.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "PleXusIRCd 2.0+", /* ircd name */
- "+oaiSR", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_h, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel Modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- 'h', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- CAPAB_TS5, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- CAPAB_QS, /* QS */
- CAPAB_UID, /* UID */
- CAPAB_KNOCK, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_l, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_u, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_Z, NULL, NULL);
- CreateChanMode(CMODE_a, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-}
-
-void plexus_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void plexus_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void plexus_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void plexus_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void plexus_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "OPERWALL :%s", buf);
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes)
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], av[7], av[9],
- strtoul(av[2], NULL, 10),
- strtoul(av[8], NULL, 0), ipchar, av[6], NULL,
- strtoul(av[1], NULL, 0), av[3], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 5)
- return MOD_CONT;
-
- av[0] = av[1];
- av[1] = av[3];
- av[3] = av[4];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("TBURST", denora_event_tburst);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_svsnick);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("EOB", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSID", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("XLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSTOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_svsnick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_nick(av[0], av[1], NULL, NULL, NULL, NULL,
- time(NULL), 0, NULL, NULL, NULL, 0, NULL, NULL);
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* SVSMODE - forwarded */
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] != '#')
- {
- do_svsumode(ac, av);
- }
- else
- {
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kline(char *source, int ac, char **av)
-{
- char buf[BUFSIZE];
- *buf = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- sql_do_server_bans_add(NULL, av[2], av[3], source, buf, av[1], av[4]);
- return MOD_CONT;
-}
-
-int denora_event_unkline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_bans_remove(NULL, av[1], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_xline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_xline(av[1], av[3]);
- return MOD_CONT;
-}
-
-int denora_event_unxline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_unxline(av[1]);
- return MOD_CONT;
-}
-
-void plexus_cmd_join(char *user, char *channel, time_t chantime)
-{
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime, channel,
- user);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void plexus_cmd_svinfo()
-{
- send_cmd(NULL, "SVINFO 5 5 0 :%ld", (long int) time(NULL));
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EX - Can do channel +e exemptions
- CHW - Can do channel wall @#
- LL - Can do lazy links
- IE - Can do invite exceptions
- EOB - Can do EOB message
- KLN - Can do KLINE message
- GLN - Can do GLINE message
- HOPS - can do half ops (+h)
- HUB - This server is a HUB
- AOPS - Can do anon ops (+a)
- UID - Can do UIDs
- ZIP - Can do ZIPlinks
- ENC - Can do ENCrypted links
- KNOCK - supports KNOCK
- TBURST - supports TBURST
- PARA - supports invite broadcasting for +p
- ENCAP - ?
-*/
-void plexus_cmd_capab()
-{
- send_cmd(NULL,
- "CAPAB :QS EX CHW IE EOB KLN GLN HOPS HUB KNOCK TBURST PARA");
-}
-
-void plexus_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/* PASS */
-void plexus_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER name hop descript */
-void plexus_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-void plexus_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- plexus_cmd_pass(RemotePassword);
- plexus_cmd_capab();
- plexus_cmd_server(ServerName, 1, ServerDesc);
- plexus_cmd_svinfo();
-}
-
-void plexus_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(ServerName, "NICK %s 1 %ld %s %s %s %s %s 0 :%s", nick,
- (long int) time(NULL), modes, user, host, "*", ServerName,
- real);
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-void plexus_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- plexus_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-void plexus_cmd_eob(void)
-{
- send_cmd(ServerName, "EOB");
-}
-
-void plexus_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void plexus_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void plexus_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(ServerName, "NICK %s 1 %ld %s %s %s %s %s 0 :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- "*", ServerName, (name));
-}
-
-/* QUIT */
-void plexus_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-/* PONG */
-void plexus_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/* SQUIT */
-void plexus_cmd_squit(char *servname, char *message)
-{
- send_cmd(ServerName, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- Server *s;
- s = server_find(source);
-
- if (s && *av[0])
- {
- do_umode(av[0], ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void plexus_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void plexus_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void plexus_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(plexus_cmd_nick);
- pmodule_cmd_mode(plexus_cmd_mode);
- pmodule_cmd_bot_nick(plexus_cmd_bot_nick);
- pmodule_cmd_notice(plexus_cmd_notice);
- pmodule_cmd_privmsg(plexus_cmd_privmsg);
- pmodule_cmd_serv_notice(plexus_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(plexus_cmd_serv_privmsg);
- pmodule_cmd_quit(plexus_cmd_quit);
- pmodule_cmd_pong(plexus_cmd_pong);
- pmodule_cmd_join(plexus_cmd_join);
- pmodule_cmd_part(plexus_cmd_part);
- pmodule_cmd_global(plexus_cmd_global);
- pmodule_cmd_squit(plexus_cmd_squit);
- pmodule_cmd_connect(plexus_cmd_connect);
- pmodule_cmd_eob(plexus_cmd_eob);
- pmodule_cmd_ctcp(plexus_cmd_ctcp);
- pmodule_cmd_version(plexus_cmd_version);
- pmodule_cmd_stats(plexus_cmd_stats);
- pmodule_cmd_motd(plexus_cmd_motd);
- pmodule_cmd_ping(plexus_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("PleXusIRCd 2.0+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_PLEXUS);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* Plexus IRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void plexus_cmd_nick(char *nick, char *name, const char *modes);
-void plexus_cmd_mode(char *source, char *dest, char *buf);
-void plexus_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void plexus_cmd_notice(char *source, char *dest, char *buf);
-void plexus_cmd_privmsg(char *source, char *dest, char *buf);
-void plexus_cmd_serv_notice(char *source, char *dest, char *msg);
-void plexus_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void plexus_cmd_quit(char *source, char *buf);
-void plexus_cmd_pong(char *servname, char *who);
-void plexus_cmd_join(char *user, char *channel, time_t chantime);
-void plexus_cmd_part(char *nick, char *chan, char *buf);
-void plexus_cmd_global(char *source, char *buf);
-void plexus_cmd_squit(char *servname, char *message);
-void plexus_cmd_connect(void);
-void plexus_cmd_eob(void);
-void plexus_cmd_ctcp(char *source, char *dest, char *buf);
-void plexus_cmd_version(char *server);
-void plexus_cmd_stats(char *sender, const char *letter, char *server);
-void plexus_cmd_motd(char *sender, char *server);
-void plexus_cmd_ping(char *server);
-void plexus_cmd_pass(char *pass);
-void plexus_cmd_server(char *servname, int hop, char *descript);
-void plexus_cmd_svsinfo(void);
-void plexus_cmd_svinfo(void);
-void plexus_cmd_capab(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_smo(char *source, int ac, char **av);
-int denora_event_myid(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-int denora_event_kline(char *source, int ac, char **av);
-int denora_event_unkline(char *source, int ac, char **av);
-int denora_event_xline(char *source, int ac, char **av);
-int denora_event_unxline(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_svsnick(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-
+++ /dev/null
-/* PlexusIRCD 3 IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested against hybrid-7.2.3+plexus-3.0.1(20081028_0-520)
- *
- */
-
-#include "denora.h"
-#include "plexus3.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "Plexus-3.0.0+", /* ircd name */
- "+oai", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_ENABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel Modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_ENABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_ENABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- IRCD_DISABLE /* Persistent channel mode */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- CAPAB_TS5, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- CAPAB_QS, /* QS */
- CAPAB_UID, /* UID */
- CAPAB_KNOCK, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_l, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_q, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_u, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_B, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_Z, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('&', 'a', STATUS_PROTECTED);
- ModuleSetChanUMode('~', 'q', STATUS_OWNER);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-
-void plexus_cmd_notice(char *source, char *dest, char *buf)
-{
- Uid *ud;
- User *u;
-
- ud = find_uid(source);
- u = finduser(dest);
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source),
- "NOTICE %s :%s", (UseTS6 ? (u ? u->uid : dest) : dest), buf);
-}
-
-void plexus_cmd_privmsg(char *source, char *dest, char *buf)
-{
- Uid *ud, *ud2;
-
- ud = find_uid(source);
- ud2 = find_uid(dest);
-
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "PRIVMSG %s :%s",
- (UseTS6 ? (ud2 ? ud2->uid : dest) : dest), buf);
-}
-
-void plexus_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void plexus_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void plexus_cmd_global(char *source, char *buf)
-{
- Uid *u;
-
- if (source)
- {
- u = find_uid(source);
- if (u)
- {
- send_cmd((UseTS6 ? u->uid : source), "OPERWALL :%s", buf);
- }
- else
- {
- send_cmd((UseTS6 ? TS6SID : ServerName), "OPERWALL :%s", buf);
- }
- }
- else
- {
- send_cmd((UseTS6 ? TS6SID : ServerName), "OPERWALL :%s", buf);
- }
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!strcmp(av[2], "0"))
- av[2] = sstrdup("+");
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes, char *account)
- NICK Trystan 1 1148214497 +aiow tslee is.my.vhost plexus3.nomadirc.net 0 c-67-186-230-12.hsd1.ut.comcast.net :Dreams are answers to questions not yet asked
- 0 1 2 3 4 5 6 7 8 9
- 666 UID asdasd 1 1234817435 +ix Nesstest 566C206.B53EDE66.1DF57482.IP 66.63.160.250 666AAAAAD 0 66.63.160.250 :JasonX
- 0 1 2 3 4 5 6 7 8 9 10
-
-[Feb 19 04:24:22.531142 2009] debug: Received: :57CAAEV6D NICK Miu :1235017456
-[Feb 19 04:24:22.536789 2009] Source 57CAAEV6D
-[Feb 19 04:24:22.537026 2009] av[0] = Miu
-[Feb 19 04:24:22.537233 2009] av[1] = 1235017456
-[Feb 19 04:24:22.537422 2009] Unknown NICK formatted message please report the following
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- Server *s;
- User *user;
- char *temp;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- temp = sstrdup(source);
-
- if (UseTS6 && ac == 11)
- {
- s = server_find(source);
- /* Source is always the server */
- *source = '\0';
- user = do_nick(source, av[0], av[4], av[9], s->name, av[10],
- strtoul(av[2], NULL, 10), 0, av[6], av[5],
- av[7], strtoul(av[1], NULL, 10), av[3], NULL);
- if (user)
- {
- denora_set_umode(user, 1, &av[3]);
- }
- }
- else if (ac == 10)
- {
- ipchar = host_resolve(av[8]);
- user = do_nick(source, av[0], av[4], av[8], av[6], av[9],
- strtoul(av[2], NULL, 10),
- strtoul(av[7], NULL, 0), ipchar, av[5], NULL,
- strtoul(av[1], NULL, 0), av[3], NULL);
- free(ipchar);
- }
- else if (ac == 2)
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0,
- NULL, NULL);
- }
- else
- {
- alog(LOG_DEBUG,
- "Unknown NICK formatted message please report the following");
- protocol_debug(temp, ac, av);
- }
- free(temp);
- return MOD_CONT;
-}
-
-/* :42XAAAAAB TOPIC #testchan :test test test */
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *newav[5];
- User *u;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac == 2)
- {
- u = user_find(source);
- if (u)
- {
- newav[0] = sstrdup(av[0]);
- newav[1] = sstrdup(u->nick);
- newav[2] = itostr(time(NULL));
- newav[3] = sstrdup(av[1]);
- do_topic(4, newav);
- free(newav[0]);
- free(newav[1]);
- free(newav[3]);
- }
-
- }
- else
- {
- do_topic(ac, av);
- }
- return MOD_CONT;
-}
-
-/* irc.dev.cccp-project.net TBURST 1218474093 #oper 1212613221 Celestin :Main L2Thorn Channel */
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- protocol_debug(source, ac, av);
- if (ac != 5)
- return MOD_CONT;
-
- av[0] = av[1];
- av[1] = av[3];
- av[3] = av[4];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- if (UseTS6)
- {
- if (!BadPtr(Numeric))
- {
- TS6SID = sstrdup(Numeric);
- UseTSMODE = 1; /* TMODE */
- }
- else
- {
- alog(LOG_NORMAL, "TS6 requires the use of Numeric - exiting");
- exit(1);
- }
- }
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("439", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("TMODE", denora_event_tmode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_pass);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("TBURST", denora_event_tburst);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("EOB", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSID", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("XLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSTOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("ENCAP", denora_event_encap);
- addCoreMessage(IRCD,m);
- m = createMessage("BMASK", denora_event_bmask);
- addCoreMessage(IRCD,m);
- m = createMessage("SID", denora_event_sid);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("RKLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNRKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("XLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("RXLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNRXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
- m = createMessage("UID", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("OPERWALL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RESV", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-
-/* :42X BMASK 1106409026 #ircops b :*!*@*.aol.com */
-int denora_event_bmask(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_bmask(av);
- return MOD_CONT;
-}
-
-int denora_event_pass(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (UseTS6)
- {
- if (av[3])
- {
- TS6UPLINK = sstrdup(av[3]);
- }
- }
- return MOD_CONT;
-}
-
-int denora_event_encap(char *source, int ac, char **av)
-{
- char *newav[3];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "CHGNAME"))
- {
- change_user_realname(av[2], av[3]);
- }
- if (!stricmp(av[1], "CHGHOST"))
- {
- change_user_host(av[2], av[3]);
- }
- if (!stricmp(av[1], "CHGIDENT"))
- {
- change_user_username(av[2], av[3]);
- }
- if (!stricmp(av[1], "XLINE"))
- {
- sql_do_xline(av[3], av[5]);
- }
- if (!stricmp(av[1], "SVSNICK"))
- {
- do_nick(av[2], av[3], NULL, NULL, NULL, NULL,
- time(NULL), 0, NULL, NULL, NULL, 0, NULL, NULL);
- }
- if (!stricmp(av[1], "SVSMODE"))
- {
- newav[0] = av[2];
- newav[1] = av[4];
- newav[2] = av[3];
- denora_event_svsmode(source, 3, newav);
- }
- return MOD_CONT;
-}
-
-/* SVSMODE - forwarded */
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] != '#')
- {
- do_svsumode(ac, av);
- }
- else
- {
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kline(char *source, int ac, char **av)
-{
- char buf[BUFSIZE];
- *buf = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- sql_do_server_bans_add(NULL, av[2], av[3], source, buf, av[1], av[4]);
- return MOD_CONT;
-}
-
-int denora_event_unkline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_bans_remove(NULL, av[1], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_xline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_xline(av[1], av[3]);
- return MOD_CONT;
-}
-
-int denora_event_unxline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_unxline(av[1]);
- return MOD_CONT;
-}
-
-void plexus_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
-
- ud = find_uid(user);
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, (UseTS6 ? (ud ? ud->uid : user) : user));
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void plexus_cmd_svinfo()
-{
- if (UseTS6)
- {
- send_cmd(NULL, "SVINFO 6 3 0 :%ld", (long int) time(NULL));
- }
- else
- {
- send_cmd(NULL, "SVINFO 5 5 0 :%ld", (long int) time(NULL));
- }
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EX - Can do channel +e exemptions
- CHW - Can do channel wall @#
- LL - Can do lazy links
- IE - Can do invite exceptions
- EOB - Can do EOB message
- KLN - Can do KLINE message
- GLN - Can do GLINE message
- HOPS - can do half ops (+h)
- HUB - This server is a HUB
- AOPS - Can do anon ops (+a)
- UID - Can do UIDs
- ZIP - Can do ZIPlinks
- ENC - Can do ENCrypted links
- KNOCK - supports KNOCK
- TBURST - supports TBURST
- PARA - supports invite broadcasting for +p
- ENCAP - ?
-*/
-void plexus_cmd_capab()
-{
- /*send_cmd(NULL, "CAPAB :TBURST TB KNOCK UNKLN KLN GLN ENCAP CHW IE EX CLUSTER EOB LL QS HUB"); */
- send_cmd(NULL,
- "CAPAB :TBURST TB KNOCK UNKLN KLN GLN CHW IE EX CLUSTER EOB LL QS HUB ENCAP");
-}
-
-
-void plexus_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- ud = find_uid(sender);
-
- send_cmd((ud ? ud->uid : sender), "STATS %s %s", letter, server);
-}
-
-/* PASS */
-void plexus_cmd_pass(char *pass)
-{
- if (UseTS6)
- {
- send_cmd(NULL, "PASS %s TS 6 :%s", pass, TS6SID);
- }
- else
- {
- send_cmd(NULL, "PASS %s :TS", pass);
- }
-}
-
-/* SERVER name hop descript */
-void plexus_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-void plexus_cmd_connect(void)
-{
- /* Make myself known to myself in the serverlist */
- if (UseTS6 && Numeric)
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, TS6SID);
- }
- else
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
- }
-
- plexus_cmd_pass(RemotePassword);
- plexus_cmd_capab();
- plexus_cmd_server(ServerName, 1, ServerDesc);
- plexus_cmd_svinfo();
-}
-
-void plexus_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char *nicknumbuf = ts6_uid_retrieve();
-
- if (UseTS6)
- {
- send_cmd(TS6SID, "UID %s 1 %ld %s %s %s 0 %s :%s", nick,
- (long int) time(NULL), modes, user, host, nicknumbuf,
- real);
-
- new_uid(nick, nicknumbuf);
- }
- else
- {
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName,
- real);
- }
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-void plexus_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
-
- ud = find_uid(nick);
-
- if (buf)
- {
- send_cmd((UseTS6 ? ud->uid : nick), "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd((UseTS6 ? ud->uid : nick), "PART %s", chan);
- }
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- plexus_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-/* 97H KILL 69CAABOR8 :geo.rizon.net!geo.rizon.net!GeoServ!GeoServ (4 joins/parts in #DontJoinItsATrap within 6 seconds.) */
-int denora_event_kill(char *source, int ac, char **av)
-{
- User *u = NULL;
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- u = find_byuid(av[0]);
- m_kill(source, u ? u->nick : av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-void plexus_cmd_eob(void)
-{
- send_cmd(UseTS6 ? TS6SID : ServerName, "EOB");
-}
-
-void plexus_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- do_sjoin(source, ac > 1 ? 2 : ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- User *u = NULL;
- Uid *ud = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
-
- if (UseTS6)
- {
- u = find_byuid(source);
- ud = find_nickuid(av[0]);
- }
- m_privmsg((UseTS6 ? (u ? u->nick : source) : source),
- (UseTS6 ? (ud ? ud->nick : av[0]) : av[0]), av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- Uid *ud;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (source && ac >= 1)
- {
- ud = find_nickuid(av[0]);
- m_whois(source, (UseTS6 ? (ud ? ud->nick : av[0]) : av[0]));
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], (!stricmp(av[1], "1") && UseTS6 && TS6UPLINK ? TS6UPLINK : NULL));
- return MOD_CONT;
-}
-
-int denora_event_sid(char *source, int ac, char **av)
-{
- Server *s;
-
- /* :42X SID trystan.nomadirc.net 2 43X :ircd-ratbox test server */
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- s = server_find(source);
-
- do_server(s->name, av[0], av[1], av[3], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void plexus_cmd_mode(char *source, char *dest, char *buf)
-{
- Uid *ud;
-
- if (source)
- {
- ud = find_uid(source);
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "MODE %s %s",
- dest, buf);
- }
- else
-{
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-void plexus_cmd_nick(char *nick, char *name, const char *mode)
-{
- char *ipaddr;
- char *nicknumbuf = ts6_uid_retrieve();
-
- if (UseTS6)
- {
- ipaddr = host_resolve(ServiceHost);
- send_cmd(TS6SID, "UID %s 1 %ld %s %s %s %s %s 0 %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ipaddr, nicknumbuf, ServiceHost, name);
-
- new_uid(nick, nicknumbuf);
- free(ipaddr);
- }
- else
- {
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ServerName, name);
- }
-}
-
-/* QUIT */
-void plexus_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "QUIT :%s",
- buf);
- }
- else
-{
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "QUIT");
- }
-}
-
-/* PONG */
-void plexus_cmd_pong(char *servname, char *who)
-{
- if (UseTS6)
- {
- send_cmd(TS6SID, "PONG %s", who);
- }
- else
- {
- send_cmd(servname, "PONG %s", who);
- }
-}
-
-/* SQUIT */
-void plexus_cmd_squit(char *servname, char *message)
-{
- send_cmd(ServerName, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- Server *s;
- s = server_find(source);
-
- if (s && *av[0])
- {
- do_umode(av[0], ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- }
- return MOD_CONT;
-}
-
-/* 00HAAAAAJ TMODE 1218474093 #oper +a 669AAAAAB */
-int denora_event_tmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac > 2 && (*av[1] == '#' || *av[1] == '&'))
- {
- ac--;
- av++;
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void plexus_cmd_version(char *server)
-{
- Uid *ud;
- ud = find_uid(s_StatServ);
-
- send_cmd((ud ? ud->uid : s_StatServ), "VERSION %s", server);
-}
-
-void plexus_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- ud = find_uid(sender);
-
- send_cmd((ud ? ud->uid : sender), "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void plexus_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(plexus_cmd_nick);
- pmodule_cmd_mode(plexus_cmd_mode);
- pmodule_cmd_bot_nick(plexus_cmd_bot_nick);
- pmodule_cmd_notice(plexus_cmd_notice);
- pmodule_cmd_privmsg(plexus_cmd_privmsg);
- pmodule_cmd_serv_notice(plexus_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(plexus_cmd_serv_privmsg);
- pmodule_cmd_quit(plexus_cmd_quit);
- pmodule_cmd_pong(plexus_cmd_pong);
- pmodule_cmd_join(plexus_cmd_join);
- pmodule_cmd_part(plexus_cmd_part);
- pmodule_cmd_global(plexus_cmd_global);
- pmodule_cmd_squit(plexus_cmd_squit);
- pmodule_cmd_connect(plexus_cmd_connect);
- pmodule_cmd_eob(plexus_cmd_eob);
- pmodule_cmd_ctcp(plexus_cmd_ctcp);
- pmodule_cmd_version(plexus_cmd_version);
- pmodule_cmd_stats(plexus_cmd_stats);
- pmodule_cmd_motd(plexus_cmd_motd);
- pmodule_cmd_ping(plexus_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("PleXusIRCd 3.0+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_PLEXUS3);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* Plexus 3 IRCD
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void plexus_cmd_nick(char *nick, char *name, const char *modes);
-void plexus_cmd_mode(char *source, char *dest, char *buf);
-void plexus_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void plexus_cmd_notice(char *source, char *dest, char *buf);
-void plexus_cmd_privmsg(char *source, char *dest, char *buf);
-void plexus_cmd_serv_notice(char *source, char *dest, char *msg);
-void plexus_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void plexus_cmd_quit(char *source, char *buf);
-void plexus_cmd_pong(char *servname, char *who);
-void plexus_cmd_join(char *user, char *channel, time_t chantime);
-void plexus_cmd_part(char *nick, char *chan, char *buf);
-void plexus_cmd_global(char *source, char *buf);
-void plexus_cmd_squit(char *servname, char *message);
-void plexus_cmd_connect(void);
-void plexus_cmd_eob(void);
-void plexus_cmd_ctcp(char *source, char *dest, char *buf);
-void plexus_cmd_version(char *server);
-void plexus_cmd_stats(char *sender, const char *letter, char *server);
-void plexus_cmd_motd(char *sender, char *server);
-void plexus_cmd_ping(char *server);
-void plexus_cmd_pass(char *pass);
-void plexus_cmd_server(char *servname, int hop, char *descript);
-void plexus_cmd_svsinfo(void);
-void plexus_cmd_svinfo(void);
-void plexus_cmd_capab(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_tmode(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_bmask(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_smo(char *source, int ac, char **av);
-int denora_event_myid(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_svsnick(char *source, int ac, char **av);
-int denora_event_encap(char *source, int ac, char **av);
-int denora_event_kline(char *source, int ac, char **av);
-int denora_event_unkline(char *source, int ac, char **av);
-int denora_event_xline(char *source, int ac, char **av);
-int denora_event_unxline(char *source, int ac, char **av);
-int denora_event_sid(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-
+++ /dev/null
-/* PTLink IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested against Hybrid6/PTlink6.19.4 (20050827_0)
- *
- */
-
-#include "denora.h"
-#include "ptlink.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "PTlink 6.15.*+", /* ircd name */
- "+io", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_ENABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- CMODE_f, /* +f Mode */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_o, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- 'f', /* flood */
- IRCD_DISABLE, /* flood other */
- 'o', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_DISABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_DISABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- CAPAB_PT4, /* PT4 */
- CAPAB_SCS, /* SCS */
- CAPAB_QS, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_B, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_H, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_T, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_v, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_f, set_flood, get_flood);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('.', 'a', STATUS_PROTECTED);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-/*
- :%s SJOIN %lu %s %s %s :%s
- parv[0] = sender
- parv[1] = channel TS (channel creation time)
- parv[2] = channel
- parv[3] = modes + n arguments (key and/or limit)
- ... [n] = if(key and/or limit) mode arguments
- parv[4+n] = flags+nick list (all in one parameter)
- NOTE: ignore channel modes if we already have the channel with a gr
-*/
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- :%s NEWMASK %s
- parv[0] = sender
- parv[1] = new mask (if no '@', hostname is assumed)
-*/
-int denora_event_newmask(char *source, int ac, char **av)
-{
- char *newhost;
- char *newuser;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- {
- return MOD_CONT;
- }
- newuser = myStrGetOnlyToken(av[0], '@', 0);
- if (newuser)
- {
- newhost = myStrGetTokenRemainder(av[0], '@', 1);
- change_user_username(source, newuser);
- free(newuser);
- }
- else
- {
- newhost = av[0];
- }
-
- if (*newhost == '@')
- newhost++;
-
- if (newhost)
- {
- change_user_host(source, newhost);
- }
-
- return MOD_CONT;
-}
-
-/*
- NICK %s %d %lu %s %s %s %s %s :%s
- parv[0] = nickname
- parv[1] = hopcount
- parv[2] = nick TS (nick introduction time)
- parv[3] = umodes
- parv[4] = username
- parv[5] = hostname
- parv[6] = spoofed hostname
- parv[7] = server
- parv[8] = nick info
-*/
-/*
- Change NICK
- parv[0] = old nick
- parv[1] = new nick
- parv[2] = TS (timestamp from user's server when nick changed was received)
-*/
-/*
- NICK xpto 2 561264 +rw irc num.myisp.pt mask.myisp.pt uc.ptlink.net :Just me
- 0 1 2 3 4 5 6 7 8
-
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], av[7], av[8],
- strtoul(av[2], NULL, 10), 0, ipchar, av[6], NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-/*
- :%s SERVER %s %d %s :%s
- parv[0] = server from where the server was introduced to us
- parv[1] = server name
- parv[2] = hop count (1 wen are directly connected)
- parv[3] = server version
- parv[4] = server description
-*/
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[3], NULL);
- }
- else
- {
- do_server(source, av[0], av[1], av[3], NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NEWMASK", denora_event_newmask);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSINFO", denora_event_svsinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("NJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("NNICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("ZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_svsinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void ptlink_cmd_join(char *user, char *channel, time_t chantime)
-{
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void ptlink_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PONG */
-void ptlink_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void ptlink_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/*
- SVINFO %d %d
- parv[0] = server name
- parv[1] = current supported protocol version
- parv[2] = minimum supported protocol version
-
- See the ptlink.h for information on PTLINK_TS_CURRENT, and
- PTLINK_TS_MIN
-*/
-void ptlink_cmd_svinfo(void)
-{
-#if defined(PTLINK_TS_CURRENT) && defined(PTLINK_TS_MIN)
- send_cmd(NULL, "SVINFO %d %d %lu", PTLINK_TS_CURRENT, PTLINK_TS_MIN,
- (unsigned long int) time(NULL));
-#else
- /* hardwired if the defs some how go missing */
- send_cmd(NULL, "SVINFO 6 3 %lu", (unsigned long int) time(NULL));
-#endif
-}
-
-/*
- SVSINFO %lu %d
- parv[0] = sender (server name)
- parv[1] = local services data TS
- parv[1] = max global users
-*/
-void ptlink_cmd_svsinfo(void)
-{
- send_cmd(NULL, "SVSINFO %lu %d", (unsigned long int) time(NULL),
- stats->users_max);
-}
-
-/*
- PASS %s :TS
- parv[1] = connection password
- (TS indicates this is server uses TS protocol and SVINFO will be sent
- for protocol compatibility checking)
-*/
-void ptlink_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/*
- CAPAB :%s
- parv[1] = capability list
-*/
-void ptlink_cmd_capab(void)
-{
- send_cmd(NULL, "CAPAB :QS PTS4");
-}
-
-void ptlink_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d Denora.Stats%s :%s", servname, hop,
- denora->versiondotted, descript);
-}
-
-void ptlink_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- ptlink_cmd_pass(RemotePassword);
- ptlink_cmd_capab();
- ptlink_cmd_server(ServerName, 1, ServerDesc);
- ptlink_cmd_svinfo();
- ptlink_cmd_svsinfo();
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-/*
- :%s TOPIC %s %s %lu :%s
- parv[0] = sender prefix
- parv[1] = channel
- parv[2] = topic nick
- parv[3] = topic time
- parv[4] = topic text
-*/
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- :%s MODE %s :%s
- parv[0] = sender
- parv[1] = target nick (==sender)
- parv[2] = mode change string
-*/
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void ptlink_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void ptlink_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void ptlink_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void ptlink_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* GLOBOPS */
-void ptlink_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-void ptlink_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-/*
- NICK %s %d %lu %s %s %s %s %s :%s
- parv[1] = nickname
- parv[2] = hopcount
- parv[3] = nick TS (nick introduction time)
- parv[4] = umodes
- parv[5] = username
- parv[6] = hostname
- parv[7] = spoofed hostname
- parv[8] = server
- parv[9] = nick info
-*/
-void ptlink_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(NULL, "NICK %s 1 %lu %s %s %s %s %s :%s", nick,
- (unsigned long int) time(NULL), mode, ServiceUser,
- ServiceHost, ServiceHost, ServerName, name);
-}
-
-/* QUIT */
-void ptlink_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-void ptlink_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- ptlink_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-void ptlink_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %lu %s %s %s %s %s :%s", nick,
- (unsigned long int) time(NULL), modes, user, host, host,
- ServerName, real);
-}
-
-void ptlink_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void ptlink_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void ptlink_cmd_eob(void)
-{
- /* not supported */
-}
-
-void ptlink_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-void ptlink_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(ptlink_cmd_nick);
- pmodule_cmd_mode(ptlink_cmd_mode);
- pmodule_cmd_bot_nick(ptlink_cmd_bot_nick);
- pmodule_cmd_notice(ptlink_cmd_notice);
- pmodule_cmd_privmsg(ptlink_cmd_privmsg);
- pmodule_cmd_serv_notice(ptlink_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(ptlink_cmd_serv_privmsg);
- pmodule_cmd_quit(ptlink_cmd_quit);
- pmodule_cmd_pong(ptlink_cmd_pong);
- pmodule_cmd_join(ptlink_cmd_join);
- pmodule_cmd_part(ptlink_cmd_part);
- pmodule_cmd_global(ptlink_cmd_global);
- pmodule_cmd_squit(ptlink_cmd_squit);
- pmodule_cmd_connect(ptlink_cmd_connect);
- pmodule_cmd_eob(ptlink_cmd_eob);
- pmodule_cmd_ctcp(ptlink_cmd_ctcp);
- pmodule_cmd_version(ptlink_cmd_version);
- pmodule_cmd_stats(ptlink_cmd_stats);
- pmodule_cmd_motd(ptlink_cmd_motd);
- pmodule_cmd_ping(ptlink_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
-
- pmodule_ircd_version("PTlink 6.15.*+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_PTLINK);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- UplinkSynced = 1;
- return MOD_CONT;
-}
+++ /dev/null
-/* Ptlink
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*
- The following variables are set to define the TS protocol version
- that we support.
-
- PTLink 6.14 to 6.17 TS CURRENT is 6 and MIN is 3
- PTlink 6.18 TS CURRENT is 9 and MIN is 3
- PTLink 6.19 TS CURRENT is 10 and MIN is 9
-
- If you are running 6.18 or 6.19 do not touch these values as they will
- allow you to connect
-
- If you are running an older version of PTLink, first think about updating
- your ircd, or changing the TS_CURRENT to 6 to allow services to connect
-*/
-
-#define PTLINK_TS_CURRENT 9
-#define PTLINK_TS_MIN 3
-
-void ptlink_cmd_nick(char *nick, char *name, const char *modes);
-void ptlink_cmd_mode(char *source, char *dest, char *buf);
-void ptlink_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void ptlink_cmd_notice(char *source, char *dest, char *buf);
-void ptlink_cmd_privmsg(char *source, char *dest, char *buf);
-void ptlink_cmd_serv_notice(char *source, char *dest, char *msg);
-void ptlink_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void ptlink_cmd_quit(char *source, char *buf);
-void ptlink_cmd_pong(char *servname, char *who);
-void ptlink_cmd_join(char *user, char *channel, time_t chantime);
-void ptlink_cmd_part(char *nick, char *chan, char *buf);
-void ptlink_cmd_global(char *source, char *buf);
-void ptlink_cmd_squit(char *servname, char *message);
-void ptlink_cmd_connect(void);
-void ptlink_cmd_eob(void);
-void ptlink_cmd_ctcp(char *source, char *dest, char *buf);
-void ptlink_cmd_version(char *server);
-void ptlink_cmd_stats(char *sender, const char *letter, char *server);
-void ptlink_cmd_motd(char *sender, char *server);
-void ptlink_cmd_ping(char *server);
-void ptlink_cmd_pass(char *pass);
-void ptlink_cmd_server(char *servname, int hop, char *descript);
-void ptlink_cmd_svsinfo(void);
-void ptlink_cmd_svinfo(void);
-void ptlink_cmd_capab(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_akill(char *source, int ac, char **av);
-int denora_event_rakill(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_newmask(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-/* QuakeIRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*************************************************************************/
-
-#include "denora.h"
-#include "quakeircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "QuakeIRCD 2.0 Ruby", /* ircd name */
- "+ioS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_ENABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_ENABLE, /* +L */
- CMODE_f, /* +f Mode */
- IRCD_DISABLE, /* +j */
- CMODE_L, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_ENABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_ENABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- '&', /* SJOIN ban char */
- '\"', /* SJOIN except char */
- '\'', /* SJOIN Invite char */
- UMODE_x, /* umode for vhost */
- IRCD_ENABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL,
- NULL,
- 'f', /* flood */
- 'j', /* flood other */
- 'x', /* vhost */
- 't', /* vhost other */
- 'L', /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_ENABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_ENABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_ENABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- CAPAB_NICKIP, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- CAPAB_TOKEN, /* TOKEN */
- 0, /* VHOST */
- CAPAB_SSJ3, /* SSJ3 */
- CAPAB_NICK2, /* NICK2 */
- CAPAB_UMODE2, /* UMODE2 */
- CAPAB_VL, /* VL */
- CAPAB_TLKEXT, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- CAPAB_CHANMODE, /* CHANMODE */
- CAPAB_SJB64,
- 0,
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_B, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_H, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_T, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_V, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_q, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_t, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_v, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_B, NULL, NULL);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_G, NULL, NULL);
- CreateChanMode(CMODE_K, NULL, NULL);
- CreateChanMode(CMODE_L, set_redirect, get_redirect);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_T, NULL, NULL);
- CreateChanMode(CMODE_V, NULL, NULL);
- CreateChanMode(CMODE_X, NULL, NULL);
- CreateChanMode(CMODE_Y, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_f, set_flood, get_flood);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_u, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('~', 'a', STATUS_PROTECTED);
- ModuleSetChanUMode('*', 'q', STATUS_OWNER);
- ModuleSetChanUMode('!', 'g', STATUS_SHUNNED);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-
-void quakeircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void quakeircd_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "%s %s 1 %ld %s %s %s 0 %s %s%s :%s",
- send_token("NICK", "&"), nick, (long int) time(NULL),
- ServiceUser, ServiceHost, ServerName, modes, ServiceHost,
- (ircd->nickip ? " *" : " "), name);
-}
-
-void quakeircd_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "%s %s %s", send_token("MODE", "G"), dest, buf);
-}
-
-void quakeircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "%s %s 1 %ld %s %s %s 0 %s %s%s :%s",
- send_token("NICK", "&"), nick, (long int) time(NULL),
- user, host, ServerName, modes, host,
- (ircd->nickip ? " *" : " "), real);
-}
-
-void quakeircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "%s %s :%s", send_token("NOTICE", "B"), dest, buf);
-}
-
-void quakeircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "%s %s :%s", send_token("PRIVMSG", "!"), dest, buf);
-}
-
-void quakeircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "%s $%s :%s", send_token("NOTICE", "B"), dest, msg);
-}
-
-void quakeircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "%s $%s :%s", send_token("PRIVMSG", "!"), dest, msg);
-}
-
-void quakeircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-/* QUIT */
-void quakeircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "%s :%s", send_token("QUIT", ","), buf);
- }
- else
- {
- send_cmd(source, "%s", send_token("QUIT", ","));
- }
-}
-
-/* PROTOCTL */
-/*
- NICKv2 = Nick Version 2
- VHP = Sends hidden host
- UMODE2 = sends UMODE2 on user modes
- NICKIP = Sends IP on NICK
- TOKEN = Use tokens to talk
- SJ3 = Supports SJOIN
- NOQUIT = No Quit
- TKLEXT = Extended TKL we don't use it but best to have it
- SJB64 = Base64 encoded time stamps
- VL = Version Info
- NS = Numeric Server
-
-*/
-void quakeircd_cmd_capab()
-{
- send_cmd(NULL,
- "PROTOCTL NICKv2 VHP UMODE2 NICKIP%sSJOIN SJOIN2 SJ3 NOQUIT TKLEXT SJB64%s",
- (UseTokens ? " TOKEN " : " "), (Numeric ? " VL NS" : " "));
-}
-
-/* PASS */
-void quakeircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-/* SERVER name hop descript */
-/* Unreal 3.2 actually sends some info about itself in the descript area */
-void quakeircd_cmd_server(char *servname, int hop, char *descript)
-{
- if (Numeric)
- {
- send_cmd(NULL, "SERVER %s %d :U0-*-%s %s", servname, hop, Numeric,
- descript);
- }
- else
- {
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
- }
-}
-
-/* PONG */
-void quakeircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "%s %s", send_token("PONG", "9"), who);
-}
-
-/* JOIN - SJOIN */
-void quakeircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- send_cmd(ServerName, "%s !%s %s :%s",
- send_token("SJOIN", "~"), base64enc((long int) chantime),
- channel, user);
-}
-
-/* PART */
-void quakeircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "%s %s :%s", send_token("PART", "D"), chan, buf);
- }
- else
- {
- send_cmd(nick, "%s %s", send_token("PART", "D"), chan);
- }
-}
-
-/* GLOBOPS */
-void quakeircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "%s :%s", send_token("GLOBOPS", "]"), buf);
-}
-
-/* SQUIT */
-void quakeircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "%s %s :%s", send_token("SQUIT", "-"), servname,
- message);
-}
-
-/* Events */
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- quakeircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-void quakeircd_cmd_netinfo(int ac, char **av)
-{
- if (ac)
- {
- send_cmd(NULL, "%s %ld %ld %d %s 0 0 0 :%s",
- send_token("NETINFO", "AO"), (long int) stats->users_max,
- (long int) time(NULL), atoi(av[2]), av[3], av[7]);
- }
-}
-
-/* netinfo
- * argv[0] = max global count
- * argv[1] = time of end sync
- * argv[2] = unreal protocol using (numeric)
- * argv[3] = cloak-crc (> u2302)
- * argv[4] = free(**)
- * argv[5] = free(**)
- * argv[6] = free(**)
- * argv[7] = ircnet
- */
-int denora_event_netinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- quakeircd_cmd_netinfo(ac, av);
- return MOD_CONT;
-}
-
-
-/* TKL
- * add: remove: spamfilter: spamfilter+TKLEXT sqline:
- * parv[ 1]: + - +/- + +/-
- * parv[ 2]: type type type type type
- * parv[ 3]: user user target target hold
- * parv[ 4]: host host action action host
- * parv[ 5]: setby removedby (un)setby setby setby
- * parv[ 6]: expire_at expire_at (0) expire_at (0) expire_at
- * parv[ 7]: set_at set_at set_at set_at
- * parv[ 8]: reason regex tkl duration reason
- * parv[ 9]: tkl reason [A]
- * parv[10]: regex
- *
-*/
-int denora_event_tkl(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[0], "+"))
- {
- sql_do_server_bans_add(av[1], av[2], av[3], av[4], av[6], av[5],
- av[7]);
- }
-
- if (!stricmp(av[0], "-"))
- {
- sql_do_server_bans_remove(av[1], av[2], av[3]);
- }
- return MOD_CONT;
-}
-
-int denora_event_eos(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/*
-** away
-** parv[0] = sender prefix
-** parv[1] = away message
-*/
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-/*
-** m_topic
-** parv[0] = sender prefix
-** parv[1] = topic text
-**
-** For servers using TS:
-** parv[0] = sender prefix
-** parv[1] = channel name
-** parv[2] = topic nickname
-** parv[3] = topic time
-** parv[4] = topic text
-*/
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Unreal sends USER modes with this */
-/*
- umode2
- parv[0] - sender
- parv[1] - modes to change
-*/
-int denora_event_umode2(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- do_umode2(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- Server *s;
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- {
- return MOD_CONT;
- }
- if (Numeric)
- {
- s = server_find(source);
- do_kick((s ? s->name : source), ac, av);
- }
- else
- {
- do_kick(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void quakeircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(source, av[0]);
- return MOD_CONT;
-}
-
-/* SVSMODE - forwarded */
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- char *modes = av[1];
- char *tbuf = NULL;
- char buf[256];
- char modebuf[256];
- char *newav[4];
- int add = 0;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (*av[0] != '#')
- {
- /* yes Unreal sucks - they over lap the user mode of d go figure, want to bitch that this
- cause Denora to be slow see the Unreal people and tell them having two modes that do
- two different things is fucked and thank Jobe1986 for pointing out Unreals fuck up
- */
- while (*modes)
- {
- switch (*modes)
- {
- case '+':
- add = 1;
- break;
- case '-':
- add = 0;
- break;
- case 'd':
- /* Must ignore it otherwise Jobe's bug will not be fixed */
- if (ac == 3)
- {
- break;
- }
- else
- {
- if (tbuf)
- {
- ircsnprintf(buf, sizeof(buf), "%s%c", tbuf,
- *modes);
- free(tbuf);
- tbuf = sstrdup(buf);
- }
- else
- {
- ircsnprintf(buf, sizeof(buf), "%c", *modes);
- tbuf = sstrdup(buf);
- }
- }
- default:
- if (tbuf)
- {
- ircsnprintf(buf, sizeof(buf), "%s%c", tbuf, *modes);
- free(tbuf);
- tbuf = sstrdup(buf);
- }
- else
- {
- ircsnprintf(buf, sizeof(buf), "%c", *modes);
- tbuf = sstrdup(buf);
- }
- break;
- }
- (void) *modes++;
- }
- if (tbuf)
- {
- ircsnprintf(modebuf, sizeof(modebuf), "%s%s",
- (add ? "+" : "-"), tbuf);
- free(tbuf);
- newav[0] = sstrdup(av[0]);
- newav[1] = sstrdup(modebuf);
- newav[2] = sstrdup(av[2]);
- do_svsumode(ac, newav);
- free(newav[0]);
- free(newav[1]);
- free(newav[2]);
- }
- }
- else
- {
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-char *quakeircd_nickip(char *host)
-{
- struct in_addr addr;
- uint32 ip;
- ip = ntohl(decode_ip(host));
- addr.s_addr = htonl(ip);
- return sstrdup(inet_ntoa(addr));
-}
-
-/*
-** NICK - new
-** source = NULL
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = username
-** parv[4] = hostname
-** parv[5] = servername
-** if NICK version 1:
-** parv[6] = servicestamp
-** parv[7] = info
-** if NICK version 2:
-** parv[6] = servicestamp
-** parv[7] = umodes
-** parv[8] = virthost, * if none
-** parv[9] = info
-** if NICKIP:
-** parv[9] = ip
-** parv[10] = info
-**
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = hopcount
-*/
-/*
- do_nick(const char *source, char *nick, char *username, char *host,
- char *server, char *realname, time_t ts, uint32 svid,
- uint32 ip, char *vhost, char *uid, int hopcount, char *modes)
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- Server *s;
- char buf[BUFSIZE];
- uint32 ts;
- char *ipchar = NULL;
- *buf = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- if (Numeric)
- {
- ircsnprintf(buf, BUFSIZE - 1, "%ld", base64dec(av[5]));
- s = server_find(buf);
- ts = base64dec_ts(av[2]);
- }
- else
- {
- s = server_find(av[5]);
- ts = strtoul(av[2], NULL, 10);
- }
- if (ac == 7)
- {
- /*
- <codemastr> that was a bug that is now fixed in 3.2.1
- <codemastr> in some instances it would use the non-nickv2 format
- <codemastr> it's sent when a nick collision occurs
- - so we have to leave it around for now -TSL
- */
- ipchar = host_resolve(av[4]);
- do_nick(source, av[0], av[3], av[4], (s ? s->name : av[5]),
- av[6], ts, 0, 0, NULL, NULL, strtoul(av[1], NULL, 10),
- NULL, NULL);
- free(ipchar);
- }
- else if (ac == 11)
- {
- ipchar = quakeircd_nickip(av[9]);
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : av[5]),
- av[10], ts, strtoul(av[6], NULL, 0),
- ipchar, av[8], NULL, strtoul(av[1], NULL, 10),
- av[7], NULL);
- free(ipchar);
-
- }
- else
- {
- /* NON NICKIP */
- ipchar = host_resolve(av[4]);
- user =
- do_nick(source, av[0], av[3], av[4], (s ? s->name : av[5]),
- av[9], ts, strtoul(av[6], NULL, 0), 0, av[8], NULL,
- strtoul(av[1], NULL, 10), av[7], NULL);
- free(ipchar);
- }
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- char *desc;
- char *vl;
- char *numeric;
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- vl = myStrGetToken(av[2], ' ', 0);
- numeric = myStrGetToken(vl, '-', 2);
- desc = myStrGetTokenRemainder(av[2], ' ', 1);
- do_server(source, av[0], av[1], desc, numeric);
- free(vl);
- free(desc);
- free(numeric);
- }
- else
- {
- if (Numeric)
- {
- s = server_find(source);
- do_server((s ? s->name : source), av[0], av[1], av[3], av[2]);
- }
- else
- {
- do_server(source, av[0], av[1], av[2], NULL);
- }
- }
-
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (av[0])
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_swhois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_swhois(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sdesc(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- server_set_desc(source, av[0]);
- }
- return MOD_CONT;
-}
-
-/*
- On Services connect there is
- SJOIN !11LkOb #ircops +nt :@Trystan &*!*@*.aol.com "*@*.home.com
-
- av[0] = time stamp (base64)
- av[1] = channel
- av[2] = modes
- av[3] = users + bans + exceptions
-
- On Channel Creation or a User joins an existing
- Luna.NomadIrc.Net SJOIN !11LkW9 #akill :@Trystan
- Luna.NomadIrc.Net SJOIN !11LkW9 #akill :Trystan`
-
- av[0] = time stamp (base64)
- av[1] = channel
- av[2] = users
-
-*/
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-void quakeircd_cmd_eob(void)
-{
- send_cmd(ServerName, "%s", send_token("EOS", "ES"));
-}
-
-void quakeircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-void quakeircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "%s %s :\1%s \1", send_token("NOTICE", "B"), dest,
- buf);
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void quakeircd_cmd_connect(void)
-{
- if (Numeric)
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, Numeric);
- }
- else
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
- }
-
- quakeircd_cmd_capab();
- quakeircd_cmd_pass(RemotePassword);
- quakeircd_cmd_server(ServerName, 1, ServerDesc);
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("6", denora_event_away);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("*", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("C", denora_event_join);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("H", denora_event_kick);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage(".", denora_event_kill);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("G", denora_event_mode);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("F", denora_event_motd);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("&", denora_event_nick);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("B", denora_event_notice);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("D", denora_event_part);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("8", denora_event_ping);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage(",", denora_event_quit);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("'", denora_event_server);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("-", denora_event_squit);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage(")", denora_event_topic);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("%", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("=", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("#", denora_event_whois);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("V", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("]", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("Z", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("[", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("Y", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("U", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("h", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("n", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVS2MODE", denora_event_svs2mode);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("v", denora_event_svs2mode);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("e", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("f", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("c", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("d", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PROTOCTL", denora_event_capab);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("_", denora_event_capab);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("CHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AL", denora_event_chghost);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("CHGIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AZ", denora_event_chgident);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("CHGNAME", denora_event_chgname);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("BK", denora_event_chgname);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NETINFO", denora_event_netinfo);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AO", denora_event_netinfo);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AA", denora_event_sethost);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SETIDENT", denora_event_setident);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AD", denora_event_setident);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SETNAME", denora_event_setname);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AE", denora_event_setname);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("TKL", denora_event_tkl);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("BD", denora_event_tkl);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("EOS", denora_event_eos);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("ES", denora_event_eos);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("<", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("5", denora_event_error);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SMO", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AU", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("UMODE2", denora_event_umode2);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("|", denora_event_umode2);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SWHOIS", denora_event_swhois);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("BA", denora_event_swhois);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("~", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("O", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("@", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AJ", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SDESC", denora_event_sdesc);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AG", denora_event_sdesc);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("HTM", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("BH", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("HELP", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("4", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("TRACE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("b", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("LAG", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AF", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("RPING", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AM", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SENDSNO", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("Ss", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SENDUMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("AP", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("9", denora_event_pong);
- addCoreMessage(IRCD,m);
- }
- /* The none token version of these is in messages.c */
- if (UseTokens)
- {
- m = createMessage("2", m_stats);
- addCoreMessage(IRCD,m);
- m = createMessage(">", m_time);
- addCoreMessage(IRCD,m);
- m = createMessage("+", m_version);
- addCoreMessage(IRCD,m);
- }
-}
-
-int denora_event_svs2mode(char *source, int ac, char **av)
-{
- char *modes = av[1];
- char *tbuf = NULL;
- char buf[256];
- char modebuf[256];
- char *newav[4];
- int add = 0;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- {
- return MOD_CONT;
- }
- /* yes Unreal sucks - they over lap the user mode of d go figure, want to bitch that this
- cause Denora to be slow see the Unreal people and tell them having two modes that do
- two different things is fucked and thank Jobe1986 for pointing out Unreals fuck up
- */
- while (*modes)
- {
- switch (*modes)
- {
- case '+':
- add = 1;
- break;
- case '-':
- add = 0;
- break;
- case 'd':
- /* Must ignore it otherwise Jobe's bug will not be fixed */
- if (ac == 3)
- {
- break;
- }
- else
- {
- if (tbuf)
- {
- ircsnprintf(buf, sizeof(buf), "%s%c", tbuf, *modes);
- free(tbuf);
- tbuf = sstrdup(buf);
- }
- else
- {
- ircsnprintf(buf, sizeof(buf), "%c", *modes);
- tbuf = sstrdup(buf);
- }
- }
- default:
- if (tbuf)
- {
- ircsnprintf(buf, sizeof(buf), "%s%c", tbuf, *modes);
- free(tbuf);
- tbuf = sstrdup(buf);
- }
- else
- {
- ircsnprintf(buf, sizeof(buf), "%c", *modes);
- tbuf = sstrdup(buf);
- }
- break;
- }
- (void) *modes++;
- }
- if (tbuf)
- {
- ircsnprintf(modebuf, sizeof(modebuf), "%s%s", (add ? "+" : "-"), tbuf);
- free(tbuf);
- newav[0] = sstrdup(av[0]);
- newav[1] = sstrdup(modebuf);
- newav[2] = sstrdup(av[2]);
- do_svsumode(ac, newav);
- free(newav[0]);
- free(newav[1]);
- free(newav[2]);
- }
- return MOD_CONT;
-}
-
-/* *INDENT-ON* */
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(quakeircd_cmd_nick);
- pmodule_cmd_mode(quakeircd_cmd_mode);
- pmodule_cmd_bot_nick(quakeircd_cmd_bot_nick);
- pmodule_cmd_notice(quakeircd_cmd_notice);
- pmodule_cmd_privmsg(quakeircd_cmd_privmsg);
- pmodule_cmd_serv_notice(quakeircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(quakeircd_cmd_serv_privmsg);
- pmodule_cmd_quit(quakeircd_cmd_quit);
- pmodule_cmd_pong(quakeircd_cmd_pong);
- pmodule_cmd_join(quakeircd_cmd_join);
- pmodule_cmd_part(quakeircd_cmd_part);
- pmodule_cmd_global(quakeircd_cmd_global);
- pmodule_cmd_squit(quakeircd_cmd_squit);
- pmodule_cmd_connect(quakeircd_cmd_connect);
- pmodule_cmd_eob(quakeircd_cmd_eob);
- pmodule_cmd_ctcp(quakeircd_cmd_ctcp);
- pmodule_cmd_version(quakeircd_cmd_version);
- pmodule_cmd_stats(quakeircd_cmd_stats);
- pmodule_cmd_motd(quakeircd_cmd_motd);
- pmodule_cmd_ping(quakeircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("QuakeIRCD");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_irc_var(IRC_QUAKEIRCD);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* QuakeIRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*************************************************************************/
-
-void quakeircd_cmd_nick(char *nick, char *name, const char *modes);
-void quakeircd_cmd_mode(char *source, char *dest, char *buf);
-void quakeircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void quakeircd_cmd_notice(char *source, char *dest, char *buf);
-void quakeircd_cmd_privmsg(char *source, char *dest, char *buf);
-void quakeircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void quakeircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void quakeircd_cmd_quit(char *source, char *buf);
-void quakeircd_cmd_pong(char *servname, char *who);
-void quakeircd_cmd_join(char *user, char *channel, time_t chantime);
-void quakeircd_cmd_part(char *nick, char *chan, char *buf);
-void quakeircd_cmd_global(char *source, char *buf);
-void quakeircd_cmd_squit(char *servname, char *message);
-void quakeircd_cmd_connect(void);
-void quakeircd_cmd_eob(void);
-void quakeircd_cmd_capab(void);
-void quakeircd_cmd_ctcp(char *source, char *dest, char *buf);
-void quakeircd_cmd_stats(char *sender, const char *letter, char *server);
-void quakeircd_cmd_motd(char *sender, char *servr);
-void quakeircd_cmd_ping(char *server);
-void quakeircd_cmd_pass(char *pass);
-void quakeircd_cmd_server(char *servname, int hop, char *descript);
-void quakeircd_cmd_netinfo(int ac, char **av);
-void quakeircd_cmd_version(char *server);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_gnotice(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_eos(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_netinfo(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_netctrl(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_snotice(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_umode2(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sdesc(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_svs2mode(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *quakeircd_nickip(char *host);
-
-
+++ /dev/null
-/* Rage IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "rageircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "RageIRCd 2.0.*", /* ircd name */
- "+di", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* User modes */
- NULL, /* Channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* Channel forwarding */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_DISABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- CAPAB_TSMODE, /* TSMODE */
- CAPAB_UNCONNECT, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- CAPAB_BURST, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- CAPAB_DKEY, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- CAPAB_UID, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- CAPAB_SN2, /* SN2 */
- CAPAB_TOKEN, /* TOKEN */
- CAPAB_VHOST, /* VHOST */
- CAPAB_SSJ3, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, 0, 0
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_F, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_e, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_j, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('*', 'a', STATUS_PROTECTED);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-char *rage_nickip(char *host)
-{
- struct in_addr addr;
-
- addr.s_addr = htonl(strtoul(host, NULL, 0));
- return sstrdup(inet_ntoa(addr));
-}
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = rage_nickip(av[8]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 0), av[3],
- NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void rageircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-int denora_event_vhost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/*
-** SNICK
-** source = NULL
-** parv[0] = nickname Trystan
-** parv[1] = timestamp 1090113640
-** parv[2] = hops 1
-** parv[3] = username Trystan
-** parv[4] = host c-24-2-101-227.client.comcast.net
-** parv[5] = IP 402810339
-** parv[6] = vhost mynet-27CCA80D.client.comcast.net
-** parv[7] = server rage2.nomadirc.net
-** parv[8] = servicestamp 0
-** parv[9] = modes +ix
-** parv[10] = info Dreams are answers to questions not yet asked
-*/
-
-int denora_event_snick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- ipchar = rage_nickip(av[5]);
- user = do_nick(source, av[0], av[3], av[4], av[7], av[10],
- strtoul(av[1], NULL, 10), strtoul(av[8], NULL, 0),
- ipchar, av[6], NULL, strtoul(av[2],
- NULL, 0), av[9], NULL);
- free(ipchar);
- }
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("HS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("MS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("OS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("SZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SNICK", denora_event_snick);
- addCoreMessage(IRCD,m);
- m = createMessage("VHOST", denora_event_vhost);
- addCoreMessage(IRCD,m);
- m = createMessage("MYID", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_burst);
- addCoreMessage(IRCD,m);
- m = createMessage("NBURST", denora_event_nburst);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RESYNCH", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_burst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_nburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-/* PART */
-void rageircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-void rageircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- if (started)
- {
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
- }
- else
- {
- send_cmd(ServerName, "SJOIN %ld %s +nt :%s", (long int) chantime,
- channel, user);
- }
-}
-
-void rageircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PONG */
-void rageircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void rageircd_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 %ld bluemoon 0", (long int) time(NULL));
-}
-
-void rageircd_cmd_capab(void)
-{
- /* CAPAB BURST UNCONNECT ZIP SSJ3 SN2 VHOST SUID TOK1 TSMODE */
- send_cmd(NULL, "CAPAB BURST UNCONNECT SSJ3 SN2 VHOST TSMODE NBURST");
-}
-
-void rageircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* PASS */
-void rageircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-void rageircd_cmd_burst(void)
-{
- send_cmd(NULL, "BURST");
-}
-
-void rageircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- rageircd_cmd_pass(RemotePassword);
- rageircd_cmd_capab();
- if (Numeric)
- {
- send_cmd(NULL, "MYID !%s", Numeric);
- }
- rageircd_cmd_server(ServerName, 1, ServerDesc);
- rageircd_cmd_svinfo();
- rageircd_cmd_burst();
-}
-
-void rageircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void rageircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-/* GLOBOPS */
-void rageircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-void rageircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void rageircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void rageircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void rageircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- rageircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-void rageircd_cmd_mode(char *source, char *dest, char *buf)
-{
- if (ircdcap->tsmode)
- {
- if (denora->capab & ircdcap->tsmode || UseTSMODE)
- {
- send_cmd(source, "MODE %s 0 %s", dest, buf);
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-void rageircd_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
- modes, name);
-}
-
-/* QUIT */
-void rageircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-void rageircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", nick,
- (long int) time(NULL), user, host, ServerName, modes, real);
-}
-
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- {
- return MOD_CONT;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- {
- return MOD_CONT;
- }
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- *
- * if (parc == 2)
- * parv[1] = ZIP (compression initialisation)
- *
- * if (parc > 2)
- * parv[1] = TS_CURRENT
- * parv[2] = TS_MIN
- * parv[3] = standalone or connected to non-TS (unused)
- * parv[4] = UTC time
- * parv[5] = ircd codename
- * parv[6] = masking keys
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-void rageircd_cmd_eob(void)
-{
- send_cmd(NULL, "BURST 0");
-}
-
-void rageircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-void rageircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(rageircd_cmd_nick);
- pmodule_cmd_mode(rageircd_cmd_mode);
- pmodule_cmd_bot_nick(rageircd_cmd_bot_nick);
- pmodule_cmd_notice(rageircd_cmd_notice);
- pmodule_cmd_privmsg(rageircd_cmd_privmsg);
- pmodule_cmd_serv_notice(rageircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(rageircd_cmd_serv_privmsg);
- pmodule_cmd_quit(rageircd_cmd_quit);
- pmodule_cmd_pong(rageircd_cmd_pong);
- pmodule_cmd_join(rageircd_cmd_join);
- pmodule_cmd_part(rageircd_cmd_part);
- pmodule_cmd_global(rageircd_cmd_global);
- pmodule_cmd_squit(rageircd_cmd_squit);
- pmodule_cmd_connect(rageircd_cmd_connect);
- pmodule_cmd_eob(rageircd_cmd_eob);
- pmodule_cmd_ctcp(rageircd_cmd_ctcp);
- pmodule_cmd_version(rageircd_cmd_version);
- pmodule_cmd_stats(rageircd_cmd_stats);
- pmodule_cmd_motd(rageircd_cmd_motd);
- pmodule_cmd_ping(rageircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("RageIRCd 2.0.x");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(1);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_RAGEIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* RageIRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void rageircd_cmd_nick(char *nick, char *name, const char *modes);
-void rageircd_cmd_mode(char *source, char *dest, char *buf);
-void rageircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void rageircd_cmd_notice(char *source, char *dest, char *buf);
-void rageircd_cmd_privmsg(char *source, char *dest, char *buf);
-void rageircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void rageircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void rageircd_cmd_quit(char *source, char *buf);
-void rageircd_cmd_pong(char *servname, char *who);
-void rageircd_cmd_join(char *user, char *channel, time_t chantime);
-void rageircd_cmd_part(char *nick, char *chan, char *buf);
-void rageircd_cmd_global(char *source, char *buf);
-void rageircd_cmd_squit(char *servname, char *message);
-void rageircd_cmd_connect(void);
-void rageircd_cmd_eob(void);
-void rageircd_cmd_ctcp(char *source, char *dest, char *buf);
-void rageircd_cmd_version(char *server);
-void rageircd_cmd_stats(char *sender, const char *letter, char *server);
-void rageircd_cmd_motd(char *sender, char *server);
-void rageircd_cmd_ping(char *server);
-void rageircd_cmd_pass(char *pass);
-void rageircd_cmd_server(char *servname, int hop, char *descript);
-void rageircd_cmd_capab(void);
-void rageircd_cmd_svinfo(void);
-void rageircd_cmd_burst(void);
-void IRCDModeInit(void);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_myid(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_nburst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *rage_nickip(char *host);
-
+++ /dev/null
-/* Ratbox IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested with ircd-ratbox-2.1.7(20051026_3-21016)
- * and ircd-ratbox-2.2.0beta(20051223_0-21526)
- *
- */
-
-#include "denora.h"
-#include "ratbox.h"
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("2.0");
- moduleSetType(PROTOCOL);
-
- DenoraXMLIRCdConfig("ratbox2.xml");
-
- ModuleChanModeUpdate(CMODE_k, set_key, get_key);
- ModuleChanModeUpdate(CMODE_l, set_limit, get_limit);
- pmodule_irc_var(IRC_RATBOX);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- UplinkSynced = 1;
- return MOD_CONT;
-}
-
-
-/*************************************************************************/
-
-void ratbox_cmd_notice(char *source, char *dest, char *buf)
-{
- Uid *ud;
- User *u;
-
- ud = find_uid(source);
- u = finduser(dest);
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source),
- "NOTICE %s :%s", (UseTS6 ? (u ? u->uid : dest) : dest), buf);
-}
-
-void ratbox_cmd_privmsg(char *source, char *dest, char *buf)
-{
- Uid *ud, *ud2;
-
- ud = find_uid(source);
- ud2 = find_uid(dest);
-
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "PRIVMSG %s :%s",
- (UseTS6 ? (ud2 ? ud2->uid : dest) : dest), buf);
-}
-
-void ratbox_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $$%s :%s", dest, msg);
-}
-
-void ratbox_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $$%s :%s", dest, msg);
-}
-
-void ratbox_cmd_stats(char *sender, const char *letter, char *server)
-{
- Uid *ud;
- ud = find_uid(sender);
-
- send_cmd((ud ? ud->uid : sender), "STATS %s %s", letter, server);
-}
-
-void ratbox_cmd_global(char *source, char *buf)
-{
- Uid *u;
-
- if (source)
- {
- u = find_uid(source);
- if (u)
- {
- send_cmd((UseTS6 ? u->uid : source), "OPERWALL :%s", buf);
- }
- else
- {
- send_cmd((UseTS6 ? TS6SID : ServerName), "OPERWALL :%s", buf);
- }
- }
- else
- {
- send_cmd((UseTS6 ? TS6SID : ServerName), "OPERWALL :%s", buf);
- }
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-/*
- Non TS6
-
- av[0] = nick
- av[1] = hop
- av[2] = ts
- av[3] = modes
- av[4] = user
- av[5] = host
- av[6] = server
- av[7] = info
-
- TS6
- av[0] = nick
- av[1] = hop
- av[2] = ts
- av[3] = modes
- av[4] = user
- av[5] = host
- av[6] = IP
- av[7] = UID
- av[8] = info
-
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- Server *s;
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (UseTS6)
- {
- if (ac == 9)
- {
- s = server_find(source);
- /* Source is always the server */
- *source = '\0';
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], s->name, av[8],
- strtoul(av[2], NULL, 10), 0, ipchar, NULL,
- av[7], strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- else if (ac == 8)
- {
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[7],
- strtoul(av[2], NULL, 10), 0, ipchar, NULL, NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- else
- {
- user = find_byuid(source);
- do_nick((user ? user->nick : source), av[0], NULL, NULL, NULL,
- NULL, strtoul(av[1], NULL, 10), 0, 0, NULL, NULL, 0,
- NULL, NULL);
- }
- }
- else
- {
- if (ac != 2)
- {
- ipchar = host_resolve(av[5]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[7],
- strtoul(av[2], NULL, 10), 0, ipchar, NULL, NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, 0, NULL, NULL, 0,
- NULL, NULL);
- }
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- char *temp[5];
- char tbuf[BUFSIZE];
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- ircsnprintf(tbuf, BUFSIZE, "%ld", (long int) time(NULL));
-
- temp[0] = av[0];
- temp[1] = source;
- temp[2] = tbuf;
- temp[3] = av[1];
- do_topic(4, temp);
- return MOD_CONT;
-}
-
-int denora_event_tburst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
-
- av[1] = av[2];
- av[2] = av[1];
- do_topic(4, av);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- if (UseTS6)
- {
- if (!BadPtr(Numeric))
- {
- TS6SID = sstrdup(Numeric);
- UseTSMODE = 1; /* TMODE */
- }
- else
- {
- alog(LOG_NORMAL, "TS6 requires the use of Numeric - exiting");
- exit(1);
- }
- }
-
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("TMODE", denora_event_tmode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("BMASK", denora_event_bmask);
- addCoreMessage(IRCD,m);
- m = createMessage("UID", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_pass);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("TB", denora_event_tburst);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("421", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ENCAP", denora_event_encap);
- addCoreMessage(IRCD,m);
- m = createMessage("SID", denora_event_sid);
- addCoreMessage(IRCD,m);
- m = createMessage("KLINE", denora_event_kline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNKLINE", denora_event_unkline);
- addCoreMessage(IRCD,m);
- m = createMessage("XLINE", denora_event_xline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNXLINE", denora_event_unxline);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-int denora_event_encap(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "XLINE"))
- {
- sql_do_xline(av[3], av[5]);
- }
- return MOD_CONT;
-}
-
-int denora_event_kline(char *source, int ac, char **av)
-{
- char buf[BUFSIZE];
- *buf = '\0';
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- ircsnprintf(buf, BUFSIZE, "%ld", (long int) time(NULL));
- sql_do_server_bans_add(NULL, av[2], av[3], source, buf, av[1], av[4]);
- return MOD_CONT;
-}
-
-int denora_event_unkline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_bans_remove(NULL, av[1], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_xline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_xline(av[1], av[3]);
- return MOD_CONT;
-}
-
-int denora_event_unxline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_unxline(av[1]);
- return MOD_CONT;
-}
-
-void ratbox_cmd_join(char *user, char *channel, time_t chantime)
-{
- Uid *ud;
-
- ud = find_uid(user);
- send_cmd(NULL, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, (UseTS6 ? (ud ? ud->uid : user) : user));
- if (AutoOp && AutoMode && LogChannel == channel)
- denora_automode(channel);
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void ratbox_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 6 3 0 :%ld", (long int) time(NULL));
-}
-
-void ratbox_cmd_svsinfo(void)
-{
-
-}
-
-/* CAPAB */
-/*
- QS - Can handle quit storm removal
- EX - Can do channel +e exemptions
- CHW - Can do channel wall @#
- LL - Can do lazy links
- IE - Can do invite exceptions
- EOB - Can do EOB message
- KLN - Can do KLINE message
- GLN - Can do GLINE message
- HUB - This server is a HUB
- UID - Can do UIDs
- ZIP - Can do ZIPlinks
- ENC - Can do ENCrypted links
- KNOCK - supports KNOCK
- TBURST - supports TBURST
- PARA - supports invite broadcasting for +p
- ENCAP - ?
-*/
-void ratbox_cmd_capab(void)
-{
- send_cmd(NULL,
- "CAPAB :QS EX CHW IE KLN GLN KNOCK TB UNKLN CLUSTER ENCAP");
-}
-
-/* PASS */
-void ratbox_cmd_pass(char *pass)
-{
- if (UseTS6)
- {
- send_cmd(NULL, "PASS %s TS 6 :%s", pass, TS6SID);
- }
- else
- {
- send_cmd(NULL, "PASS %s :TS", pass);
- }
-}
-
-/* SERVER name hop descript */
-void ratbox_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-void ratbox_cmd_connect(void)
-{
- /* Make myself known to myself in the serverlist */
- if (UseTS6 && Numeric)
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, TS6SID);
- }
- else
- {
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
- }
-
- ratbox_cmd_pass(RemotePassword);
- ratbox_cmd_capab();
- ratbox_cmd_server(ServerName, 1, ServerDesc);
- ratbox_cmd_svinfo();
-}
-
-void ratbox_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- char *nicknumbuf = ts6_uid_retrieve();
-
- if (UseTS6)
- {
- send_cmd(TS6SID, "UID %s 1 %ld %s %s %s 0 %s :%s", nick,
- (long int) time(NULL), modes, user, host, nicknumbuf,
- real);
-
- new_uid(nick, nicknumbuf);
- }
- else
- {
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName,
- real);
- }
-}
-
-void ratbox_cmd_part(char *nick, char *chan, char *buf)
-{
- Uid *ud;
-
- ud = find_uid(nick);
-
- if (buf)
- {
- send_cmd((UseTS6 ? ud->uid : nick), "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd((UseTS6 ? ud->uid : nick), "PART %s", chan);
- }
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- ratbox_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- User *u = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (UseTS6)
- {
- u = find_byuid(source);
- }
-
- if (!ac)
- {
- m_away((UseTS6 ? (u ? u->nick : source) : source), NULL);
- }
- else
- {
- m_away((UseTS6 ? (u ? u->nick : source) : source), av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-void ratbox_cmd_eob(void)
-{
- /* doesn't support EOB */
-}
-
-void ratbox_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac > 3)
- {
- do_sjoin(source, ac, av);
- return MOD_CONT;
- }
- else if ((ac > 1) && (ac < 4))
- {
- av[0] = av[1];
- do_join(source, ac, av);
- }
- else
- {
- do_join(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- User *u = NULL;
- Uid *ud = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
-
- if (UseTS6)
- {
- u = find_byuid(source);
- ud = find_nickuid(av[0]);
- }
- m_privmsg((UseTS6 ? (u ? u->nick : source) : source),
- (UseTS6 ? (ud ? ud->nick : av[0]) : av[0]), av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- Uid *ud;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- ud = find_nickuid(av[0]);
- m_whois(source, (UseTS6 ? (ud ? ud->nick : av[0]) : av[0]));
- }
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], (!stricmp(av[1], "1") && UseTS6 && TS6UPLINK ? TS6UPLINK : NULL));
- return MOD_CONT;
-}
-
-int denora_event_sid(char *source, int ac, char **av)
-{
- Server *s;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* :42X SID trystan.nomadirc.net 2 43X :ircd-ratbox test server */
-
- s = server_find(source);
-
- do_server(s->name, av[0], av[1], av[3], av[2]);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- {
- return MOD_CONT;
- }
-
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-void ratbox_cmd_mode(char *source, char *dest, char *buf)
-{
- Uid *ud;
-
- if (source)
- {
- ud = find_uid(source);
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "MODE %s %s",
- dest, buf);
- }
- else
-{
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-void ratbox_cmd_nick(char *nick, char *name, const char *mode)
-{
- char *nicknumbuf = NULL;
- if (UseTS6)
- {
- nicknumbuf = ts6_uid_retrieve();
- send_cmd(TS6SID, "UID %s 1 %ld %s %s %s 0 %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- nicknumbuf, name);
- new_uid(nick, nicknumbuf);
- }
- else
- {
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s :%s", nick,
- (long int) time(NULL), mode, ServiceUser, ServiceHost,
- ServerName, name);
- }
-}
-
-/* QUIT */
-void ratbox_cmd_quit(char *source, char *buf)
-{
- Uid *ud;
- ud = find_uid(source);
-
- if (buf)
- {
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "QUIT :%s",
- buf);
- }
- else
-{
- send_cmd((UseTS6 ? (ud ? ud->uid : source) : source), "QUIT");
- }
-}
-
-/* PONG */
-void ratbox_cmd_pong(char *servname, char *who)
-{
- if (UseTS6)
- {
- send_cmd(TS6SID, "PONG %s", who);
- }
- else
- {
- send_cmd(servname, "PONG %s", who);
- }
-}
-
-/* SQUIT */
-void ratbox_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- User *u, *u2;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- {
- return MOD_CONT;
- }
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- if (UseTS6)
- {
- u = find_byuid(source);
- u2 = find_byuid(av[0]);
- av[0] = u2->nick;
- do_umode(u->nick, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- }
- return MOD_CONT;
-}
-
-int denora_event_tmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[1] == '#' || *av[1] == '&')
- {
- do_cmode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-int denora_event_pass(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (UseTS6)
- {
- TS6UPLINK = sstrdup(av[3]);
- }
- return MOD_CONT;
-}
-
-/* :42X BMASK 1106409026 #ircops b :*!*@*.aol.com */
-int denora_event_bmask(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_bmask(av);
- return MOD_CONT;
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void ratbox_cmd_version(char *server)
-{
- Uid *ud;
- ud = find_uid(s_StatServ);
-
- send_cmd((ud ? ud->uid : s_StatServ), "VERSION %s", server);
-}
-
-void ratbox_cmd_motd(char *sender, char *server)
-{
- Uid *ud;
- ud = find_uid(sender);
-
- send_cmd((ud ? ud->uid : sender), "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- User *u = NULL;
- Uid *ud = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
-
- if (UseTS6)
- {
- u = find_byuid(source);
- ud = find_nickuid(av[0]);
- m_notice((u ? u->nick : source), (ud ? ud->nick : av[0]), av[1]);
- }
- else
- {
- m_notice(source, av[0], av[1]);
- }
- return MOD_CONT;
-}
-
-void ratbox_cmd_ctcp(char *source, char *dest, char *buf)
-{
- Uid *ud, *nickud;
- ud = find_uid(source);
- nickud = find_nickuid(dest);
-
- if (UseTS6)
- {
- send_cmd((ud ? ud->uid : source), "NOTICE %s :\1%s \1",
- (nickud ? nickud->uid : dest), buf);
- }
- else
- {
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
- }
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(ratbox_cmd_nick);
- pmodule_cmd_mode(ratbox_cmd_mode);
- pmodule_cmd_bot_nick(ratbox_cmd_bot_nick);
- pmodule_cmd_notice(ratbox_cmd_notice);
- pmodule_cmd_privmsg(ratbox_cmd_privmsg);
- pmodule_cmd_serv_notice(ratbox_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(ratbox_cmd_serv_privmsg);
- pmodule_cmd_quit(ratbox_cmd_quit);
- pmodule_cmd_pong(ratbox_cmd_pong);
- pmodule_cmd_join(ratbox_cmd_join);
- pmodule_cmd_part(ratbox_cmd_part);
- pmodule_cmd_global(ratbox_cmd_global);
- pmodule_cmd_squit(ratbox_cmd_squit);
- pmodule_cmd_connect(ratbox_cmd_connect);
- pmodule_cmd_eob(ratbox_cmd_eob);
- pmodule_cmd_ctcp(ratbox_cmd_ctcp);
- pmodule_cmd_version(ratbox_cmd_version);
- pmodule_cmd_stats(ratbox_cmd_stats);
- pmodule_cmd_motd(ratbox_cmd_motd);
- pmodule_cmd_ping(ratbox_cmd_ping);
-}
-
-
+++ /dev/null
-/* Ratbox IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void ratbox_cmd_nick(char *nick, char *name, const char *modes);
-void ratbox_cmd_mode(char *source, char *dest, char *buf);
-void ratbox_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void ratbox_cmd_notice(char *source, char *dest, char *buf);
-void ratbox_cmd_privmsg(char *source, char *dest, char *buf);
-void ratbox_cmd_serv_notice(char *source, char *dest, char *msg);
-void ratbox_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void ratbox_cmd_quit(char *source, char *buf);
-void ratbox_cmd_pong(char *servname, char *who);
-void ratbox_cmd_join(char *user, char *channel, time_t chantime);
-void ratbox_cmd_part(char *nick, char *chan, char *buf);
-void ratbox_cmd_global(char *source, char *buf);
-void ratbox_cmd_squit(char *servname, char *message);
-void ratbox_cmd_connect(void);
-void ratbox_cmd_eob(void);
-void ratbox_cmd_ctcp(char *source, char *dest, char *buf);
-void ratbox_cmd_version(char *server);
-void ratbox_cmd_stats(char *sender, const char *letter, char *server);
-void ratbox_cmd_motd(char *sender, char *server);
-void ratbox_cmd_ping(char *server);
-void ratbox_cmd_pass(char *pass);
-void ratbox_cmd_server(char *servname, int hop, char *descript);
-void ratbox_cmd_svinfo(void);
-void ratbox_cmd_svsinfo(void);
-void ratbox_cmd_capab(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_tmode(char *source, int ac, char **av);
-int denora_event_bmask(char *source, int ac, char **av);
-int denora_event_sid(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_tburst(char *source, int ac, char **av);
-int denora_event_kline(char *source, int ac, char **av);
-int denora_event_unkline(char *source, int ac, char **av);
-int denora_event_xline(char *source, int ac, char **av);
-int denora_event_unxline(char *source, int ac, char **av);
-int denora_event_encap(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-<denora>
- <ircd>
- <name>Ratbox IRCD 2.0+</name>
- <p10>no</p10>
- <ts6>yes</ts6>
- <usetsmode>no</usetsmode>
- </ircd>
- <services>
- <mode>+o</mode>
- </services>
- <features>
- <opermode>UMODE_o</opermode>
- <vhost>0</vhost>
- <vident>0</ident>
- <vhost_on_nick>0<vhost_on_nick>
- <sgline>yes</sgline>
- <sgline_sql>yes<sgline_sql>
- <sqline>0</sqline>
- <sqline_sql>0<sqline_sql>
- <szline>0</szline>
- <szline_sql>0<szline_sql>
- <exceptions>1<exceptions>
- <nickip>1<nickip>
- <ziplink>0</ziplink>
- <ssllink>0<sslink>
- <tokens>0</tokens>
- <casetokens>1</casetokens>
- <timestamp64>0</timestampb64>
- <invitemode>1</invitemode>
- <uline>1</uline>
- <svid>0<svid>
- <hiddenop>0</hiddenop>
- <syncstate>0</syncstate>
- <numerics>yes</numerics>
- <spamfilterchar>0</spamfilterchar>
- <vhost_char>0</vhost_char>
- <vhost_char_other>0</vhost_char_other>
- <vhostmode>0</vhostmode>
- </features>
- <capab>
- <noquit>0</noquit>
- <tsmode>no</tsmode>
- <unconnect>disable</unconnect>
- <nickip>0</nickip>
- <nsjoin>no</nsjoin>
- <zip>yes</zip>
- <burst>0</burst>
- <ts5>1</ts5>
- <ts3>0</ts3>
- <dkey>0</dkey>
- <pt4>0</pt4>
- <scs>0</scs>
- <qs>1</qs>
- <uid>1</uid>
- <knock>1</knock>
- <client>0</client>
- <ipv6>0</ipv6>
- <ssj5>0</ssj5>
- <sn2>0</sn2>
- <token>0</token>
- <vhost>0</vhost>
- <ssj3>0</ssj3>
- <nick2>0</nick2>
- <umode2>0</umode2>
- <vl>0</vl>
- <tlkext>0</tlkext>
- <dodkey>0</dodkey>
- <dozip>0</dozip>
- <chanmodes>0</chanmodes>
- <sjb64>0</sjb64>
- <nickchars>0</nickchars>
- </capab>
- <usermodes>
- <UMODE_a>yes</UMODE_a>
- <UMODE_b>yes</UMODE_b>
- <UMODE_d>yes</UMODE_d>
- <UMODE_g>yes</UMODE_g>
- <UMODE_i>yes</UMODE_i>
- <UMODE_l>yes</UMODE_l>
- <UMODE_n>yes</UMODE_n>
- <UMODE_o>yes</UMODE_o>
- <UMODE_u>yes</UMODE_u>
- <UMODE_w>yes</UMODE_w>
- <UMODE_x>yes</UMODE_x>
- </usermodes>
- <chanmodes>
- <CMODE_i>yes</CMODE_i>
- <CMODE_k>yes</CMODE_k>
- <CMODE_l>yes</CMODE_l>
- <CMODE_m>yes</CMODE_m>
- <CMODE_n>yes</CMODE_n>
- <CMODE_p>yes</CMODE_p>
- <CMODE_r>yes</CMODE_r>
- <CMODE_s>yes</CMODE_s>
- <CMODE_t>yes</CMODE_t>
- </chanmodes>
- <chanbanmodes>
- <ban>CMODE_b</ban>
- <exception>CMODE_e</exception>
- <invite>CMODE_I</invite>
- </chanbanmodes>
- <channelfeatures>
- <owner>0</owner>
- <protect>0</protect>
- <halfop>0</halfop>
- <floodmode>0</floodmode>
- <floodmodeother>0</floodmodeother>
- <chanlink>0</chanlink>
- <floodmode_char>0</floodmode_char>
- <floodmodeother_char>0</floodmodeother_char>
- <chanlink_char>0</chanlink_char>
- <jointhrottle>0</jointhrottle>
- <gagged>no</gagged>
- <sjoin_ban_char>0</sjoin_ban_char>
- <sjoin_except_char>0</sjoin_except_char>
- <sjoin_invite_char>0</sjoin_invite_char>
- <ban_char>b</ban_char>
- <except_char>e</except_char>
- <invite_char>I</invite_char>
- <chan_fmode>0</chan_fmode>
- <chan_jmode>0</chan_jmode>
- <chan_lmode>0</chan_lmode>
- <persistchan>0</persistchan>
- <nickchgflood>no</nickchgflood>
- </channelfeatures>
- <chanusermode>
- <mode>v</mode>
- <symbol>+</symbol>
- <flag>VOICE</flag>
- </chanusermode>
- <chanusermode>
- <mode>o</mode>
- <symbol>@</symbol>
- <flag>OP</flag>
- </chanusermode>
- <warning>
- <extra>yes</extra>
- </warning>
-</denora>
\ No newline at end of file
+++ /dev/null
-/* Solid-IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested with solid-ircd-3.4(07)dev.
- *
- */
-
-/*************************************************************************/
-
-#include "denora.h"
-#include "solidircd.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "Solid-IRCd 3.4.*", /* ircd name */
- "+io", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_DISABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_ENABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- CMODE_j, /* +j */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_ENABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_v, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL,
- NULL,
- IRCD_DISABLE, /* flood */
- 'j', /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- 'v', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 protocol */
- IRCD_DISABLE, /* ts6 protocol */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- 'I', /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- IRCD_DISABLE /* Persistent channel mode */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- CAPAB_TSMODE, /* TSMODE */
- CAPAB_UNCONNECT, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- CAPAB_BURST, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- CAPAB_DKEY, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- CAPAB_DOZIP, /* DOZIP */
- 0, 0, 0
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_F, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_H, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_K, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_X, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_Y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_e, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_j, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_k, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_v, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_y, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_z, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
- CreateChanBanMode(CMODE_I, add_invite, del_invite);
-
- /* Channel Modes */
- CreateChanMode(CMODE_D, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_j, set_flood_alt, get_flood_alt);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-void solidircd_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-void solidircd_cmd_mode(char *source, char *dest, char *buf)
-{
- if (ircdcap->tsmode)
- {
- if (denora->capab & ircdcap->tsmode)
- {
- send_cmd(source, "MODE %s 0 %s", dest, buf);
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-/* EVENT: SJOIN */
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-char *solid_nickip(char *host)
-{
- struct in_addr addr;
-
- addr.s_addr = htonl(strtoul(host, NULL, 0));
- return sstrdup(inet_ntoa(addr));
-}
-
-/*
-** NICK - new
-** source = NULL
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = modes
-** parv[4] = username
-** parv[5] = hostname
-** parv[6] = server
-** parv[7] = servicestamp
-** parv[8] = IP
-** parv[9] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = hopcount
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = solid_nickip(av[8]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 10),
- av[3], NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-/* EVENT : CAPAB */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void solidircd_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void solidircd_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sgline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sgline(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_akill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_bans_add(NULL, av[1], av[0], av[3], av[4], av[2], av[5]);
- return MOD_CONT;
-}
-
-int denora_event_rakill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_server_bans_remove(NULL, av[1], av[0]);
- return MOD_CONT;
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_akill);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_rakill);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("HS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("MS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("OS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SGLINE", denora_event_sgline);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SS", denora_event_ss);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_svinfo);
- addCoreMessage(IRCD,m);
- m = createMessage("SZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("LUSERSLOCK",denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_burst);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
- m = createMessage("SVIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- m = createMessage("SETIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- m = createMessage("ELMER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILLY", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SHUN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NORMAL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CONOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("RESYNCH", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* EVENT : CS */
-int denora_event_ss(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- m_privmsg(source, s_StatServ, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* PART */
-void solidircd_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* JOIN - SJOIN */
-void solidircd_cmd_join(char *user, char *channel, time_t chantime)
-{
- if (started)
- {
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
- }
- else
- {
- send_cmd(ServerName, "SJOIN %ld %s +nt :%s", (long int) chantime,
- channel, user);
- }
-}
-
-/* SQUIT */
-/*
- * parv[0] = sender prefix
- * parv[1] = server name
- * parv[2] = comment
-*/
-void solidircd_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PONG */
-void solidircd_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void solidircd_cmd_burst(void)
-{
- send_cmd(NULL, "BURST");
-}
-
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void solidircd_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 :%ld", (long int) time(NULL));
-}
-
-/* PASS */
-void solidircd_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER */
-void solidircd_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* CAPAB */
-void solidircd_cmd_capab(void)
-{
- /* CAPAB SSJOIN NOQUIT BURST UNCONNECT ZIP NICKIP TSMODE */
- send_cmd(NULL, "CAPAB SSJOIN NOQUIT BURST UNCONNECT NICKIP TSMODE");
-}
-
-void solidircd_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- solidircd_cmd_pass(RemotePassword);
- solidircd_cmd_capab();
- solidircd_cmd_server(ServerName, 1, ServerDesc);
- solidircd_cmd_svinfo();
- solidircd_cmd_burst();
-}
-
-/* EVENT : SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-/* EVENT : PRIVMSG */
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT : SVINFO */
-/*
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: MODE */
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-/* EVENT: KILL */
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT: KICK */
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: JOIN */
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-/* EVENT: MOTD */
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* NOTICE */
-void solidircd_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void solidircd_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void solidircd_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void solidircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* GLOBOPS */
-void solidircd_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-void solidircd_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-/* QUIT */
-void solidircd_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- solidircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-void solidircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void solidircd_cmd_eob(void)
-{
- send_cmd(NULL, "BURST 0");
-}
-
-void solidircd_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_burst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac)
- {
- update_sync_state(source, SYNC_COMPLETE);
- }
- return MOD_CONT;
-}
-
-void solidircd_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "%s NOTICE :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds(void)
-{
- pmodule_cmd_nick(solidircd_cmd_nick);
- pmodule_cmd_mode(solidircd_cmd_mode);
- pmodule_cmd_bot_nick(solidircd_cmd_bot_nick);
- pmodule_cmd_notice(solidircd_cmd_notice);
- pmodule_cmd_privmsg(solidircd_cmd_privmsg);
- pmodule_cmd_serv_notice(solidircd_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(solidircd_cmd_serv_privmsg);
- pmodule_cmd_quit(solidircd_cmd_quit);
- pmodule_cmd_pong(solidircd_cmd_pong);
- pmodule_cmd_join(solidircd_cmd_join);
- pmodule_cmd_part(solidircd_cmd_part);
- pmodule_cmd_global(solidircd_cmd_global);
- pmodule_cmd_squit(solidircd_cmd_squit);
- pmodule_cmd_connect(solidircd_cmd_connect);
- pmodule_cmd_eob(solidircd_cmd_eob);
- pmodule_cmd_ctcp(solidircd_cmd_ctcp);
- pmodule_cmd_version(solidircd_cmd_version);
- pmodule_cmd_stats(solidircd_cmd_stats);
- pmodule_cmd_motd(solidircd_cmd_motd);
- pmodule_cmd_ping(solidircd_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion
- ("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("Solid-IRCd 3.4.*");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_SOLIDIRCD);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* Solid-IRCD functions
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void solidircd_cmd_nick(char *nick, char *name, const char *modes);
-void solidircd_cmd_mode(char *source, char *dest, char *buf);
-void solidircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void solidircd_cmd_notice(char *source, char *dest, char *buf);
-void solidircd_cmd_privmsg(char *source, char *dest, char *buf);
-void solidircd_cmd_serv_notice(char *source, char *dest, char *msg);
-void solidircd_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void solidircd_cmd_quit(char *source, char *buf);
-void solidircd_cmd_pong(char *servname, char *who);
-void solidircd_cmd_join(char *user, char *channel, time_t chantime);
-void solidircd_cmd_part(char *nick, char *chan, char *buf);
-void solidircd_cmd_global(char *source, char *buf);
-void solidircd_cmd_squit(char *servname, char *message);
-void solidircd_cmd_connect(void);
-void solidircd_cmd_eob(void);
-void solidircd_cmd_ctcp(char *source, char *dest, char *buf);
-void solidircd_cmd_version(char *server);
-void solidircd_cmd_stats(char *sender, const char *letter, char *server);
-void solidircd_cmd_motd(char *sender, char *server);
-void solidircd_cmd_ping(char *server);
-void solidircd_cmd_svinfo(void);
-void IRCDModeInit(void);
-void solidircd_cmd_pass(char *pass);
-void solidircd_cmd_server(char *servname, int hop, char *descript);
-void solidircd_cmd_burst(void);
-void solidircd_cmd_capab(void);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_eos(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_netctrl(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sdesc(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-int denora_event_akill(char *source, int ac, char **av);
-int denora_event_rakill(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_ss(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *solid_nickip(char *host);
-
+++ /dev/null
-/* Sorcery IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- */
-
-#include "denora.h"
-#include "sorcery.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "Sorcery IRCD*", /* ircd name */
- "+oiS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_DISABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_ENABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- 'f', /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric ie.. 350 etc */
- IRCD_DISABLE, /* channel mode gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- IRCD_DISABLE, /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_DISABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- 0, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0, /* CHANMODE */
- 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_P, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
-
- /* Channel Modes */
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_u, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-void sorcery_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = host_resolve(av[4]);
- if (ac == 7)
- {
- do_nick(source, av[0], av[3], av[4], av[5], av[6],
- strtoul(av[2], NULL, 10), 0, ipchar, NULL, NULL,
- strtoul(av[1], NULL, 10), NULL, NULL);
- }
- else
- {
- do_nick(source, av[0], av[3], av[4], av[5], av[7],
- strtoul(av[2], NULL, 10), strtoul(av[6], NULL, 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 10), NULL,
- NULL);
- }
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-void sorcery_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void sorcery_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PROTOCTL", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- m = createMessage("NETINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SNETINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SETIDENT", denora_event_setident);
- addCoreMessage(IRCD,m);
- m = createMessage("SETNAME", denora_event_setname);
- addCoreMessage(IRCD,m);
- m = createMessage("VCTRL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("NETG", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void sorcery_cmd_join(char *user, char *channel, time_t chantime)
-{
- alog(LOG_PROTOCOL, "User %s joins %s at %ld", user, channel,
- (long int) chantime);
- send_cmd(user, "JOIN %s", channel);
-}
-
-void sorcery_cmd_capab(void)
-{
-}
-
-/* PASS */
-void sorcery_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-/* SERVER name hop descript */
-void sorcery_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* PONG */
-void sorcery_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void sorcery_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- sorcery_cmd_capab();
- sorcery_cmd_pass(RemotePassword);
- sorcery_cmd_server(ServerName, 1, ServerDesc);
-}
-
-/* PART */
-void sorcery_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* GLOBOPS */
-void sorcery_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-/* SQUIT */
-void sorcery_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* Events */
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- {
- return MOD_CONT;
- }
- sorcery_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-void sorcery_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void sorcery_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void sorcery_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void sorcery_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-void sorcery_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
- name);
- denora_cmd_mode(nick, nick, "%s", mode);
-}
-
-/* QUIT */
-void sorcery_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-void sorcery_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void sorcery_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
- (long int) time(NULL), user, host, ServerName, real);
- denora_cmd_mode(nick, nick, "%s", modes);
-}
-
-void sorcery_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (av[0])
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void sorcery_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void sorcery_cmd_eob(void)
-{
-}
-
-void moduleAddIRCDCmds(void)
-{
- pmodule_cmd_eob(sorcery_cmd_eob);
- pmodule_cmd_nick(sorcery_cmd_nick);
- pmodule_cmd_mode(sorcery_cmd_mode);
- pmodule_cmd_bot_nick(sorcery_cmd_bot_nick);
- pmodule_cmd_notice(sorcery_cmd_notice);
- pmodule_cmd_privmsg(sorcery_cmd_privmsg);
- pmodule_cmd_serv_notice(sorcery_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(sorcery_cmd_serv_privmsg);
- pmodule_cmd_quit(sorcery_cmd_quit);
- pmodule_cmd_pong(sorcery_cmd_pong);
- pmodule_cmd_join(sorcery_cmd_join);
- pmodule_cmd_part(sorcery_cmd_part);
- pmodule_cmd_global(sorcery_cmd_global);
- pmodule_cmd_squit(sorcery_cmd_squit);
- pmodule_cmd_connect(sorcery_cmd_connect);
- pmodule_cmd_ctcp(sorcery_cmd_ctcp);
- pmodule_cmd_version(sorcery_cmd_version);
- pmodule_cmd_stats(sorcery_cmd_stats);
- pmodule_cmd_motd(sorcery_cmd_motd);
- pmodule_cmd_ping(sorcery_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
- pmodule_ircd_version("Sorcery IRCD");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_SORCERY);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
+++ /dev/null
-/* Sorcery IRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void sorcery_cmd_nick(char *nick, char *name, const char *modes);
-void sorcery_cmd_mode(char *source, char *dest, char *buf);
-void sorcery_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void sorcery_cmd_notice(char *source, char *dest, char *buf);
-void sorcery_cmd_privmsg(char *source, char *dest, char *buf);
-void sorcery_cmd_serv_notice(char *source, char *dest, char *msg);
-void sorcery_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void sorcery_cmd_quit(char *source, char *buf);
-void sorcery_cmd_pong(char *servname, char *who);
-void sorcery_cmd_join(char *user, char *channel, time_t chantime);
-void sorcery_cmd_part(char *nick, char *chan, char *buf);
-void sorcery_cmd_global(char *source, char *buf);
-void sorcery_cmd_squit(char *servname, char *message);
-void sorcery_cmd_connect(void);
-void sorcery_cmd_eob(void);
-void sorcery_cmd_ctcp(char *source, char *dest, char *buf);
-void sorcery_cmd_version(char *server);
-void sorcery_cmd_stats(char *sender, const char *letter, char *server);
-void sorcery_cmd_motd(char *sender, char *servr);
-void sorcery_cmd_ping(char *server);
-void sorcery_cmd_pass(char *pass);
-void sorcery_cmd_server(char *servname, int hop, char *descript);
-void sorcery_cmd_capab(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_gnotice(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_netctrl(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_snotice(char *source, int ac, char **av);
-int denora_event_umode2(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sdesc(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-int denora_event_akill(char *source, int ac, char **av);
-int denora_event_rakill(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj_data` varchar(5) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_ul_data` varchar(33) NOT NULL default '';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_le` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_le` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uy` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u0` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u1` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u2` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u3` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u4` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u5` enum('Y','N') NOT NULL default 'N',
-ADD `mode_u9` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ul` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf_data` varchar(255) NOT NULL default '',
-ADD `mode_lj_data` varchar(5) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_ul_data` varchar(33) NOT NULL default '';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ue` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uz` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj_data` varchar(5) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_ul_data` varchar(33) NOT NULL default ';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_le` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ue` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ul` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N';
-
\ No newline at end of file
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'Y',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ul` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf_data` varchar(255) NOT NULL default '',
-ADD `mode_lj_data` varchar(5) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_ul_data` varchar(33) NOT NULL default '';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ub` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ue` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_le` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-DROP TABLE IF EXISTS `ison`;
-CREATE TABLE `ison` (
- `nickid` int(10) unsigned NOT NULL default '0',
- `chanid` int(10) unsigned NOT NULL default '0',
- `mode_lo` enum('Y','N') NOT NULL default 'N',
- `mode_lv` enum('Y','N') NOT NULL default 'N',
- PRIMARY KEY (`nickid`,`chanid`)
-) ENGINE=MyISAM;
-
-
-ALTER TABLE `chan` ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj_data` varchar(5) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_ul_data` varchar(33) NOT NULL default '';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_le` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ly` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ux` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uy` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ul` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf_data` varchar(255) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_uf_data` varchar(33) NOT NULL default '';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ud` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uj` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uz` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lu` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lz` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ug` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ul` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uv` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf_data` varchar(255) NOT NULL default '',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0',
-ADD `mode_ul_data` varchar(33) NOT NULL default '';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
--- --------------------------------------------------------
---
--- IMPORTANT: Load denora.sql FIRST!
--- --------------------------------------------------------
-
-ALTER TABLE `chan` ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ll` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lm` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lp` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lt` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_um` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_up` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lk_data` varchar(23) NOT NULL default '',
-ADD `mode_ll_data` int(10) NOT NULL default '0';
-
--- --------------------------------------------------------
-
-ALTER TABLE `user` ADD `mode_la` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lb` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ld` enum('Y','N') NOT NULL default 'N',
-ADD `mode_le` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lf` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lg` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lh` enum('Y','N') NOT NULL default 'N',
-ADD `mode_li` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ln` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lr` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ls` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lw` enum('Y','N') NOT NULL default 'N',
-ADD `mode_lx` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ua` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uc` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ui` enum('Y','N') NOT NULL default 'N',
-ADD `mode_un` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uo` enum('Y','N') NOT NULL default 'N',
-ADD `mode_uq` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ur` enum('Y','N') NOT NULL default 'N',
-ADD `mode_us` enum('Y','N') NOT NULL default 'N',
-ADD `mode_ut` enum('Y','N') NOT NULL default 'N';
+++ /dev/null
-/* Ultimate IRCD 2 functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-#include "denora.h"
-#include "ultimate2.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "UltimateIRCd 2.8.*", /* ircd name */
- "+oiS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_DISABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_DISABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_ENABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_ENABLE, /* +L */
- CMODE_f, /* +f Mode */
- IRCD_DISABLE, /* +j */
- CMODE_L, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_ENABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- '&', /* SJOIN ban char */
- '\"', /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_DISABLE, /* protect */
- IRCD_DISABLE, /* halfop */
- NULL, /* Users Modes */
- NULL, /* Channel modes */
- 'f', /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- 'L', /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_DISABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_DISABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- 0, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- CAPAB_KNOCK, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- CAPAB_TOKEN, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- CAPAB_CHANMODE, /* CHANMODE */
- 0, /* SJOIN TS 64 */
- 0 /* NICKCHARS */
- }
-};
-
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_G, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_P, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_m, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_I, NULL, NULL);
- CreateChanMode(CMODE_K, NULL, NULL);
- CreateChanMode(CMODE_L, set_redirect, get_redirect);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_f, set_flood, get_flood);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_x, NULL, NULL);
-
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
-
- ModuleUpdateSQLChanMode();
-}
-
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-void ultimate2_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = host_resolve(av[4]);
- if (ac == 7)
- {
- do_nick(source, av[0], av[3], av[4], av[5], av[6],
- strtoul(av[2], NULL, 10), 0, ipchar, NULL, NULL,
- strtoul(av[1], NULL, 10), NULL, NULL);
- }
- else
- {
- do_nick(source, av[0], av[3], av[4], av[5], av[7],
- strtoul(av[2], NULL, 10), strtoul(av[6], NULL, 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 10), NULL,
- NULL);
- }
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-void ultimate2_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void ultimate2_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("6", denora_event_away);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("*", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("C", denora_event_join);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("H", denora_event_kick);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage(".", denora_event_kill);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("G", denora_event_mode);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("F", denora_event_motd);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("&", denora_event_nick);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("B", denora_event_notice);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("D", denora_event_part);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("<", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("9", denora_event_ping);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage(",", denora_event_quit);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("'", denora_event_server);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("-", denora_event_squit);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage(")", denora_event_topic);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("%", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("=", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("#", denora_event_whois);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("V", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("]", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("Z", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("[", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("Y", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("U", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("h", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("n", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("e", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("f", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SQLINE", denora_event_sqline);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("c", denora_event_sqline);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("d", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("PROTOCTL", denora_event_capab);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("_", denora_event_capab);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("CHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!<", denora_event_chghost);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("CHGIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!=", denora_event_chgident);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NETINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("u", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SNETINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!1", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!8", denora_event_sethost);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SETIDENT", denora_event_setident);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!9", denora_event_setident);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("SETNAME", denora_event_setname);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!;", denora_event_setname);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("VCTRL", denora_event_null);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("!I", denora_event_null);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- if (UseTokens)
- {
- m = createMessage("9", denora_event_pong);
- addCoreMessage(IRCD,m);
- }
- m = createMessage("NETG", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void ultimate2_cmd_join(char *user, char *channel, time_t chantime)
-{
- alog(LOG_PROTOCOL, "User %s joins %s at %ld", user, channel,
- (long int) chantime);
- send_cmd(user, "JOIN %s", channel);
-}
-
-void ultimate2_cmd_capab(void)
-{
- if (UseTokens)
- {
- send_cmd(NULL, "PROTOCTL NOQUIT TOKEN SILENCE KNOCK");
- }
- else
- {
- send_cmd(NULL, "PROTOCTL NOQUIT SILENCE KNOCK");
- }
-}
-
-/* PASS */
-void ultimate2_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-/* SERVER name hop descript */
-void ultimate2_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* PONG */
-void ultimate2_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-void ultimate2_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- ultimate2_cmd_capab();
- ultimate2_cmd_pass(RemotePassword);
- ultimate2_cmd_server(ServerName, 1, ServerDesc);
-}
-
-/* PART */
-void ultimate2_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* GLOBOPS */
-void ultimate2_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-/* SQUIT */
-void ultimate2_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* Events */
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- {
- return MOD_CONT;
- }
- ultimate2_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-void ultimate2_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void ultimate2_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void ultimate2_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void ultimate2_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-void ultimate2_cmd_nick(char *nick, char *name, const char *mode)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
- name);
- denora_cmd_mode(nick, nick, "%s", mode);
-}
-
-/* QUIT */
-void ultimate2_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-void ultimate2_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void ultimate2_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
- (long int) time(NULL), user, host, ServerName, real);
- denora_cmd_mode(nick, nick, "%s", modes);
-}
-
-void ultimate2_cmd_eob(void)
-{
- /* not supported */
-}
-
-void ultimate2_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (av[0])
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-void ultimate2_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(ultimate2_cmd_nick);
- pmodule_cmd_mode(ultimate2_cmd_mode);
- pmodule_cmd_bot_nick(ultimate2_cmd_bot_nick);
- pmodule_cmd_notice(ultimate2_cmd_notice);
- pmodule_cmd_privmsg(ultimate2_cmd_privmsg);
- pmodule_cmd_serv_notice(ultimate2_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(ultimate2_cmd_serv_privmsg);
- pmodule_cmd_quit(ultimate2_cmd_quit);
- pmodule_cmd_pong(ultimate2_cmd_pong);
- pmodule_cmd_join(ultimate2_cmd_join);
- pmodule_cmd_part(ultimate2_cmd_part);
- pmodule_cmd_global(ultimate2_cmd_global);
- pmodule_cmd_squit(ultimate2_cmd_squit);
- pmodule_cmd_connect(ultimate2_cmd_connect);
- pmodule_cmd_eob(ultimate2_cmd_eob);
- pmodule_cmd_ctcp(ultimate2_cmd_ctcp);
- pmodule_cmd_version(ultimate2_cmd_version);
- pmodule_cmd_stats(ultimate2_cmd_stats);
- pmodule_cmd_motd(ultimate2_cmd_motd);
- pmodule_cmd_ping(ultimate2_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
-
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
- pmodule_ircd_version("UltimateIRCd 2.8.2+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_ULTIMATE2);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
- UplinkSynced = 1;
-}
+++ /dev/null
-/* Ultimate IRCD 2
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void ultimate2_cmd_nick(char *nick, char *name, const char *modes);
-void ultimate2_cmd_mode(char *source, char *dest, char *buf);
-void ultimate2_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void ultimate2_cmd_notice(char *source, char *dest, char *buf);
-void ultimate2_cmd_privmsg(char *source, char *dest, char *buf);
-void ultimate2_cmd_serv_notice(char *source, char *dest, char *msg);
-void ultimate2_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void ultimate2_cmd_quit(char *source, char *buf);
-void ultimate2_cmd_pong(char *servname, char *who);
-void ultimate2_cmd_join(char *user, char *channel, time_t chantime);
-void ultimate2_cmd_part(char *nick, char *chan, char *buf);
-void ultimate2_cmd_global(char *source, char *buf);
-void ultimate2_cmd_squit(char *servname, char *message);
-void ultimate2_cmd_connect(void);
-void ultimate2_cmd_eob(void);
-void ultimate2_cmd_ctcp(char *source, char *dest, char *buf);
-void ultimate2_cmd_version(char *server);
-void ultimate2_cmd_stats(char *sender, const char *letter, char *server);
-void ultimate2_cmd_motd(char *sender, char *servr);
-void ultimate2_cmd_ping(char *server);
-void ultimate2_cmd_pass(char *pass);
-void ultimate2_cmd_server(char *servname, int hop, char *descript);
-void ultimate2_cmd_capab(void);
-
-void IRCDModeInit(void);
-
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_gnotice(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_netctrl(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_snotice(char *source, int ac, char **av);
-int denora_event_umode2(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_swhois(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sdesc(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-int denora_event_akill(char *source, int ac, char **av);
-int denora_event_rakill(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-
+++ /dev/null
-/* Ultimate IRCD 3
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested with UltimateIRCd(Development)-3.1(00).svn($Rev: 897 $)
- *
- */
-
-#include "denora.h"
-#include "ultimate3.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "UltimateIRCd 3.0.", /* ircd name */
- "+ioS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_DISABLE, /* vidents */
- IRCD_ENABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_ENABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- CMODE_F, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support TOKENS */
- IRCD_ENABLE, /* TOKENS are CASE Sensitive */
- IRCD_DISABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- IRCD_DISABLE, /* SJOIN ban char */
- IRCD_DISABLE, /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_DISABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL,
- NULL,
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- IRCD_DISABLE, /* join throttle */
- IRCD_DISABLE, /* nick change flood */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- 'F', /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_DISABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_ENABLE, /* Report sync state */
- IRCD_DISABLE /* Persistent channel mode */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- CAPAB_TSMODE, /* TSMODE */
- CAPAB_UNCONNECT, /* UNCONNECT */
- 0, /* NICKIP */
- CAPAB_NSJOIN, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- CAPAB_BURST, /* BURST */
- CAPAB_TS5, /* TS5 */
- 0, /* TS3 */
- CAPAB_DKEY, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- CAPAB_CLIENT, /* CLIENT */
- CAPAB_IPV6, /* IPV6 */
- CAPAB_SSJ5, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- CAPAB_DODKEY, /* DODKEY */
- CAPAB_DOZIP, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_D, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_J, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_P, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_T, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_W, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_Z, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_j, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_p, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_t, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_F, set_redirect, get_redirect);
- CreateChanMode(CMODE_K, NULL, NULL);
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_T, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_u, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('!', 'a', STATUS_PROTECTED);
-
-
- ModuleUpdateSQLChanMode();
-
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-char *ultimate3_nickip(char *host)
-{
- struct in_addr addr;
-
- addr.s_addr = htonl(strtoul(host, NULL, 0));
- return sstrdup(inet_ntoa(addr));
-}
-
-/*
-** NICK - new
-** source = NULL
-** parv[0] = nickname
-** parv[1] = hopcount
-** parv[2] = timestamp
-** parv[3] = modes
-** parv[4] = username
-** parv[5] = hostname
-** parv[6] = server
-** parv[7] = servicestamp
-** parv[8] = IP
-** parv[9] = info
-** NICK - change
-** source = oldnick
-** parv[0] = new nickname
-** parv[1] = hopcount
-*/
-int denora_event_nick(char *source, int ac, char **av)
-{
- char *ipchar = NULL;
- User *user;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = ultimate3_nickip(av[8]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[7], NULL,
- 0),
- ipchar, NULL, NULL, strtoul(av[1], NULL, 0), av[3],
- NULL);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-/*
-** CLIENT
-** source = NULL
-** parv[0] = nickname Trystan
-** parv[1] = hopcount 1
-** parv[2] = timestamp 1090083810
-** parv[3] = modes +ix
-** parv[4] = modes ? +
-** parv[5] = username Trystan
-** parv[6] = hostname c-24-2-101-227.client.comcast.net
-** parv[7] = vhost 3223f75b.2b32ee69.client.comcast.net
-** parv[8] = server WhiteRose.No.Eu.Shadow-Realm.org
-** parv[9] = svid 0
-** parv[10] = ip 402810339
-** parv[11] = info Dreams are answers to questions not yet asked
-*/
-int denora_event_client(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- ipchar = ultimate3_nickip(av[10]);
- user = do_nick(source, av[0], av[5], av[6], av[8], av[11],
- strtoul(av[2], NULL, 10), strtoul(av[9], NULL,
- 0),
- ipchar, av[7], NULL,
- strtoul(av[1], NULL, 10), av[3], NULL);
- free(ipchar);
- }
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_svsmode);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_sqline);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("HS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("MS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("OS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("NETINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GCONNECT", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NETGLOBAL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CHATOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NETCTRL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CLIENT", denora_event_client);
- addCoreMessage(IRCD,m);
- m = createMessage("SMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_burst);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SMODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("EOBURST", denora_event_eob);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("RESYNCH", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* Events */
-
-/* SVSMODE - forwarded */
-int denora_event_svsmode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (*av[0] != '#')
- do_svsumode(ac, av);
- else
- do_cmode(source, ac, av);
- return MOD_CONT;
-}
-
-void ultimate3_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- ultimate3_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!ac)
- {
- m_away(source, NULL);
- }
- else
- {
- m_away(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_sqline(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- sql_do_sqline(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_chgname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!denora->uplink)
- {
- denora->uplink = sstrdup(av[0]);
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-void ultimate3_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "CLIENT %s 1 %ld %s + %s %s * %s 0 0 :%s", nick,
- (long int) time(NULL), modes, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-void ultimate3_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void ultimate3_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "CLIENT %s 1 %ld %s + %s %s * %s 0 0 :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-void ultimate3_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void ultimate3_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void ultimate3_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void ultimate3_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void ultimate3_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-/* PROTOCTL */
-void ultimate3_cmd_capab(void)
-{
- send_cmd(NULL,
- "CAPAB TS5 NOQUIT SSJ5 BURST UNCONNECT TSMODE NICKIP CLIENT");
-}
-
-/* PASS */
-void ultimate3_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER name hop descript */
-/* Unreal 3.2 actually sends some info about itself in the descript area */
-void ultimate3_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* PONG */
-void ultimate3_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/* PART */
-void ultimate3_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* GLOBOPS */
-void ultimate3_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-/* SQUIT */
-void ultimate3_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* Functions that use serval cmd functions */
-/*
- * SVINFO
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void ultimate3_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 :%ld", (long int) time(NULL));
-}
-
-void ultimate3_cmd_burst(void)
-{
- send_cmd(NULL, "BURST");
-}
-
-void ultimate3_cmd_connect(void)
-{
- me_server = do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- ultimate3_cmd_pass(RemotePassword);
- ultimate3_cmd_capab();
- ultimate3_cmd_server(ServerName, 1, ServerDesc);
- ultimate3_cmd_svinfo();
- ultimate3_cmd_burst();
-}
-
-int denora_event_svinfo(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- /* currently not used but removes the message : unknown message from server */
- return MOD_CONT;
-}
-
-void ultimate3_cmd_eob(void)
-{
- send_cmd(NULL, "BURST 0");
-}
-
-void ultimate3_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_eob(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- update_sync_state(source, SYNC_COMPLETE);
- return MOD_CONT;
-}
-
-int denora_event_burst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- return MOD_CONT;
-}
-
-void ultimate3_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void ultimate3_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void ultimate3_cmd_join(char *user, char *channel, time_t chantime)
-{
- if (started)
- {
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime, channel, user);
- }
- else
- {
- send_cmd(ServerName, "SJOIN %ld %s +nt :%s", (long int) chantime, channel, user);
- }
-}
-
-void ultimate3_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(ultimate3_cmd_nick);
- pmodule_cmd_mode(ultimate3_cmd_mode);
- pmodule_cmd_bot_nick(ultimate3_cmd_bot_nick);
- pmodule_cmd_notice(ultimate3_cmd_notice);
- pmodule_cmd_privmsg(ultimate3_cmd_privmsg);
- pmodule_cmd_serv_notice(ultimate3_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(ultimate3_cmd_serv_privmsg);
- pmodule_cmd_quit(ultimate3_cmd_quit);
- pmodule_cmd_pong(ultimate3_cmd_pong);
- pmodule_cmd_join(ultimate3_cmd_join);
- pmodule_cmd_part(ultimate3_cmd_part);
- pmodule_cmd_global(ultimate3_cmd_global);
- pmodule_cmd_squit(ultimate3_cmd_squit);
- pmodule_cmd_connect(ultimate3_cmd_connect);
- pmodule_cmd_eob(ultimate3_cmd_eob);
- pmodule_cmd_ctcp(ultimate3_cmd_ctcp);
- pmodule_cmd_version(ultimate3_cmd_version);
- pmodule_cmd_stats(ultimate3_cmd_stats);
- pmodule_cmd_motd(ultimate3_cmd_motd);
- pmodule_cmd_ping(ultimate3_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- /* Only 1 protocol module may be loaded */
- if (protocolModuleLoaded())
- {
- alog(LOG_NORMAL, langstr(ALOG_MOD_BE_ONLY_ONE));
- return MOD_STOP;
- }
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("UltimateIRCd 3.0.0.a26+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_ULTIMATE3);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- return MOD_CONT;
-}
-
+++ /dev/null
-/* Ulimtate IRCD 3
- *
- * (c) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void ultimate3_cmd_nick(char *nick, char *name, const char *modes);
-void ultimate3_cmd_mode(char *source, char *dest, char *buf);
-void ultimate3_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void ultimate3_cmd_notice(char *source, char *dest, char *buf);
-void ultimate3_cmd_privmsg(char *source, char *dest, char *buf);
-void ultimate3_cmd_serv_notice(char *source, char *dest, char *msg);
-void ultimate3_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void ultimate3_cmd_quit(char *source, char *buf);
-void ultimate3_cmd_pong(char *servname, char *who);
-void ultimate3_cmd_join(char *user, char *channel, time_t chantime);
-void ultimate3_cmd_part(char *nick, char *chan, char *buf);
-void ultimate3_cmd_global(char *source, char *buf);
-void ultimate3_cmd_squit(char *servname, char *message);
-void ultimate3_cmd_connect(void);
-void ultimate3_cmd_eob(void);
-void ultimate3_cmd_ctcp(char *source, char *dest, char *buf);
-void ultimate3_cmd_version(char *server);
-void ultimate3_cmd_stats(char *sender, const char *letter, char *server);
-void ultimate3_cmd_motd(char *sender, char *servr);
-void ultimate3_cmd_ping(char *server);
-void ultimate3_cmd_pass(char *pass);
-void ultimate3_cmd_server(char *servname, int hop, char *descript);
-void ultimate3_cmd_capab(void);
-void ultimate3_cmd_burst(void);
-void ultimate3_cmd_svinfo(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_gnotice(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_svinfo(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_svsinfo(char *source, int ac, char **av);
-int denora_event_snick(char *source, int ac, char **av);
-int denora_event_vhost(char *source, int ac, char **av);
-int denora_event_tkl(char *source, int ac, char **av);
-int denora_event_eos(char *source, int ac, char **av);
-int denora_event_eob(char *source, int ac, char **av);
-int denora_event_pass(char *source, int ac, char **av);
-int denora_event_netinfo(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_netctrl(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_snotice(char *source, int ac, char **av);
-int denora_event_sqline(char *source, int ac, char **av);
-int denora_event_smo(char *source, int ac, char **av);
-int denora_event_myid(char *source, int ac, char **av);
-int denora_event_vctrl(char *source, int ac, char **av);
-int denora_event_tctrl(char *source, int ac, char **av);
-int denora_event_snetinfo(char *source, int ac, char **av);
-int denora_event_globops(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_sdesc(char *source, int ac, char **av);
-int denora_event_svsmode(char *source, int ac, char **av);
-int denora_event_sgline(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-int denora_event_client(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *ultimate3_nickip(char *host);
-
-
+++ /dev/null
-
-/* Unreal IRCD 3.1.x functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-/*************************************************************************/
-
-#include "denora.h"
-#include "unreal31.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "UnrealIRCd 3.1.x", /* ircd name */
- "+ioS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_DISABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_DISABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_ENABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_ENABLE, /* +L */
- CMODE_f, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- CMODE_L, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_DISABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_ENABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- '&', /* SJOIN ban char */
- '\"', /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_ENABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL,
- NULL, /* Chan mode */
- 'f', /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- 't', /* vhost other */
- 'L', /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_DISABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_ENABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_DISABLE, /* extra warning */
- IRCD_DISABLE /* Report sync state */
- },
-};
-
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- 0, /* TSMODE */
- 0, /* UNCONNECT */
- 0, /* NICKIP */
- 0, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- 0, /* BURST */
- 0, /* TS5 */
- 0, /* TS3 */
- 0, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- CAPAB_TOKEN, /* TOKEN */
- 0, /* VHOST */
- CAPAB_SSJ3, /* SSJ3 */
- CAPAB_NICK2, /* NICK2 */
- CAPAB_UMODE2, /* UMODE2 */
- CAPAB_VL, /* VL */
- CAPAB_TLKEXT, /* TLKEXT */
- 0, /* DODKEY */
- 0, /* DOZIP */
- 0,
- 0,
- 0,
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_A, NULL, NULL);
- CreateChanMode(CMODE_C, NULL, NULL);
- CreateChanMode(CMODE_G, NULL, NULL);
- CreateChanMode(CMODE_H, NULL, NULL);
- CreateChanMode(CMODE_K, NULL, NULL);
- CreateChanMode(CMODE_L, set_redirect, get_redirect);
- CreateChanMode(CMODE_N, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_Q, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_S, NULL, NULL);
- CreateChanMode(CMODE_T, NULL, NULL);
- CreateChanMode(CMODE_V, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_f, set_flood, get_flood);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
- CreateChanMode(CMODE_u, NULL, NULL);
- CreateChanMode(CMODE_z, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('*', 'q', STATUS_OWNER);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('~', 'a', STATUS_PROTECTED);
-
- ModuleUpdateSQLChanMode();
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("USER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PROTOCTL", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGNAME", denora_event_chgname);
- addCoreMessage(IRCD,m);
- m = createMessage("NETINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SETIDENT", denora_event_setident);
- addCoreMessage(IRCD,m);
- m = createMessage("SETNAME", denora_event_setname);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CREDITS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
-
-}
-
-/* *INDENT-ON* */
-/* Event: PROTOCTL */
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void unreal31_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 %s * :%s", nick,
- (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
- modes, name);
-}
-
-void unreal31_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 %s * :%s", nick,
- (long int) time(NULL), user, host, ServerName, modes, real);
-}
-
-void unreal31_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void unreal31_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-void unreal31_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void unreal31_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void unreal31_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* QUIT */
-void unreal31_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-/* PROTOCTL */
-void unreal31_cmd_capab()
-{
- /*
- See Unreal's protoctl.txt for reference
- VHP - Send hostnames in NICKv2 even if not sethosted
- */
- send_cmd(NULL, "PROTOCTL NICKv2 VHP");
-}
-
-/* PASS */
-void unreal31_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS :%s", pass);
-}
-
-/* SERVER name hop descript */
-void unreal31_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-/* PONG */
-void unreal31_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/* JOIN */
-void unreal31_cmd_join(char *user, char *channel, time_t chantime)
-{
- alog(LOG_PROTOCOL, "User %s joins %s at %ld", user, channel,
- (long int) chantime);
- send_cmd(user, "JOIN %s", channel);
-}
-
-/* PART */
-void unreal31_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-/* GLOBOPS */
-void unreal31_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-/* SQUIT */
-void unreal31_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-void unreal31_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- unreal31_cmd_capab();
- unreal31_cmd_pass(RemotePassword);
- unreal31_cmd_server(ServerName, 1, ServerDesc);
-}
-
-/* Events */
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- unreal31_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *ipchar = NULL;
-
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
-
- if (ac != 2)
- {
- ipchar = host_resolve(av[4]);
- if (ac == 7)
- {
- /*
- <codemastr> that was a bug that is now fixed in 3.2.1
- <codemastr> in some instances it would use the non-nickv2 format
- <codemastr> it's sent when a nick collision occurs
- - so we have to leave it around for now -TSL
- */
- do_nick(source, av[0], av[3], av[4], av[5], av[6],
- strtoul(av[2], NULL, 10), 0, 0, NULL, NULL, 0, NULL,
- NULL);
- }
- else
- {
- user = do_nick(source, av[0], av[3], av[4], av[5], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[6], NULL,
- 0), 0, av[8],
- NULL, strtoul(av[1], NULL, 10), av[7], NULL);
- }
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-/* EVENT: SERVER */
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-void unreal31_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-void unreal31_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "%s NOTICE :\1%s \1", dest, buf);
-}
-
-void unreal31_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void unreal31_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void unreal31_cmd_mode(char *source, char *dest, char *buf)
-{
- send_cmd(source, "MODE %s %s", dest, buf);
-}
-
-void unreal31_cmd_eob(void)
-{
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_eob(unreal31_cmd_eob);
- pmodule_cmd_nick(unreal31_cmd_nick);
- pmodule_cmd_mode(unreal31_cmd_mode);
- pmodule_cmd_bot_nick(unreal31_cmd_bot_nick);
- pmodule_cmd_notice(unreal31_cmd_notice);
- pmodule_cmd_privmsg(unreal31_cmd_privmsg);
- pmodule_cmd_serv_notice(unreal31_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(unreal31_cmd_serv_privmsg);
- pmodule_cmd_quit(unreal31_cmd_quit);
- pmodule_cmd_pong(unreal31_cmd_pong);
- pmodule_cmd_join(unreal31_cmd_join);
- pmodule_cmd_part(unreal31_cmd_part);
- pmodule_cmd_global(unreal31_cmd_global);
- pmodule_cmd_squit(unreal31_cmd_squit);
- pmodule_cmd_connect(unreal31_cmd_connect);
- pmodule_cmd_ctcp(unreal31_cmd_ctcp);
- pmodule_cmd_version(unreal31_cmd_version);
- pmodule_cmd_stats(unreal31_cmd_stats);
- pmodule_cmd_motd(unreal31_cmd_motd);
- pmodule_cmd_ping(unreal31_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("UnrealIRCd 3.1+");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- pmodule_irc_var(IRC_UNREAL31);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
-
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
- UplinkSynced = 1;
- return MOD_CONT;
-}
+++ /dev/null
-/* Unreal 3.1.x
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void unreal31_cmd_nick(char *nick, char *name, const char *modes);
-void unreal31_cmd_mode(char *source, char *dest, char *buf);
-void unreal31_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void unreal31_cmd_notice(char *source, char *dest, char *buf);
-void unreal31_cmd_privmsg(char *source, char *dest, char *buf);
-void unreal31_cmd_serv_notice(char *source, char *dest, char *msg);
-void unreal31_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void unreal31_cmd_quit(char *source, char *buf);
-void unreal31_cmd_pong(char *servname, char *who);
-void unreal31_cmd_join(char *user, char *channel, time_t chantime);
-void unreal31_cmd_part(char *nick, char *chan, char *buf);
-void unreal31_cmd_global(char *source, char *buf);
-void unreal31_cmd_squit(char *servname, char *message);
-void unreal31_cmd_connect(void);
-void unreal31_cmd_eob(void);
-void unreal31_cmd_capab(void);
-void unreal31_cmd_ctcp(char *source, char *dest, char *buf);
-void unreal31_cmd_stats(char *sender, const char *letter, char *server);
-void unreal31_cmd_motd(char *sender, char *servr);
-void unreal31_cmd_ping(char *server);
-void unreal31_cmd_pass(char *pass);
-void unreal31_cmd_server(char *servname, int hop, char *descript);
-void unreal31_cmd_version(char *server);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
+++ /dev/null
-/* Viagra IRCD functions
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- * last tested with VIAGRA_IRCd_1.3.3_RELEASE.
- *
- */
-
-#include "denora.h"
-#include "viagra.h"
-
-IRCDVar myIrcd[] =
-{
- {
- "ViagraIRCd 1.3.*", /* ircd name */
- "+ioS", /* StatServ mode */
- IRCD_ENABLE, /* Vhost */
- IRCD_ENABLE, /* Supports SGlines */
- IRCD_ENABLE, /* sgline sql table */
- IRCD_ENABLE, /* Supports SQlines */
- IRCD_ENABLE, /* sqline sql table */
- IRCD_ENABLE, /* Supports SZlines */
- IRCD_ENABLE, /* Has exceptions +e */
- IRCD_ENABLE, /* vidents */
- IRCD_DISABLE, /* NICKIP */
- IRCD_ENABLE, /* VHOST ON NICK */
- IRCD_DISABLE, /* +f */
- IRCD_DISABLE, /* +j */
- IRCD_DISABLE, /* +L */
- IRCD_DISABLE, /* +f Mode */
- IRCD_DISABLE, /* +j Mode */
- IRCD_DISABLE, /* +L Mode */
- NULL, /* CAPAB Chan Modes */
- IRCD_ENABLE, /* We support Unreal TOKENS */
- IRCD_DISABLE, /* TOKENS are CASE Sensitive */
- IRCD_ENABLE, /* TIME STAMPS are BASE64 */
- IRCD_DISABLE, /* +I support */
- '&', /* SJOIN ban char */
- '\"', /* SJOIN except char */
- IRCD_DISABLE, /* SJOIN invite char */
- UMODE_x, /* umode for vhost */
- IRCD_ENABLE, /* owner */
- IRCD_ENABLE, /* protect */
- IRCD_ENABLE, /* halfop */
- NULL, /* user modes */
- NULL, /* channel modes */
- IRCD_DISABLE, /* flood */
- IRCD_DISABLE, /* flood other */
- 'x', /* vhost */
- IRCD_DISABLE, /* vhost other */
- IRCD_DISABLE, /* channek linking */
- IRCD_DISABLE, /* p10 */
- IRCD_DISABLE, /* ts6 */
- IRCD_ENABLE, /* numeric */
- IRCD_DISABLE, /* gagged */
- IRCD_DISABLE, /* spamfilter */
- 'b', /* ban char */
- 'e', /* except char */
- IRCD_DISABLE, /* invite char */
- IRCD_DISABLE, /* zip */
- IRCD_DISABLE, /* ssl */
- IRCD_ENABLE, /* uline */
- NULL, /* nickchar */
- IRCD_ENABLE, /* svid */
- IRCD_DISABLE, /* hidden oper */
- IRCD_ENABLE, /* extra warning */
- IRCD_ENABLE /* Report sync state */
- }
- ,
-};
-
-IRCDCAPAB myIrcdcap[] =
-{
- {
- CAPAB_NOQUIT, /* NOQUIT */
- CAPAB_TSMODE, /* TSMODE */
- CAPAB_UNCONNECT, /* UNCONNECT */
- CAPAB_NICKIP, /* NICKIP */
- CAPAB_NSJOIN, /* SJOIN */
- CAPAB_ZIP, /* ZIP */
- CAPAB_BURST, /* BURST */
- CAPAB_TS5, /* TS5 */
- CAPAB_TS3, /* TS3 */
- CAPAB_DKEY, /* DKEY */
- 0, /* PT4 */
- 0, /* SCS */
- 0, /* QS */
- 0, /* UID */
- 0, /* KNOCK */
- 0, /* CLIENT */
- 0, /* IPV6 */
- 0, /* SSJ5 */
- 0, /* SN2 */
- 0, /* TOKEN */
- 0, /* VHOST */
- 0, /* SSJ3 */
- 0, /* NICK2 */
- 0, /* UMODE2 */
- 0, /* VL */
- 0, /* TLKEXT */
- CAPAB_DODKEY, /* DODKEY */
- CAPAB_DOZIP, /* DOZIP */
- 0, 0, 0
- }
-};
-
-/*************************************************************************/
-
-void IRCDModeInit(void)
-{
- ModuleSetUserMode(UMODE_A, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_C, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_I, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_N, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_O, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_Q, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_R, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_S, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_T, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_a, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_b, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_c, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_d, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_e, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_f, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_g, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_h, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_i, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_n, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_o, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_r, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_s, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_w, IRCD_ENABLE);
- ModuleSetUserMode(UMODE_x, IRCD_ENABLE);
- ModuleUpdateSQLUserMode();
-
- CreateChanBanMode(CMODE_b, add_ban, del_ban);
- CreateChanBanMode(CMODE_e, add_exception, del_exception);
-
- /* Channel Modes */
- CreateChanMode(CMODE_M, NULL, NULL);
- CreateChanMode(CMODE_O, NULL, NULL);
- CreateChanMode(CMODE_R, NULL, NULL);
- CreateChanMode(CMODE_c, NULL, NULL);
- CreateChanMode(CMODE_i, NULL, NULL);
- CreateChanMode(CMODE_k, set_key, get_key);
- CreateChanMode(CMODE_l, set_limit, get_limit);
- CreateChanMode(CMODE_m, NULL, NULL);
- CreateChanMode(CMODE_n, NULL, NULL);
- CreateChanMode(CMODE_p, NULL, NULL);
- CreateChanMode(CMODE_r, NULL, NULL);
- CreateChanMode(CMODE_s, NULL, NULL);
- CreateChanMode(CMODE_t, NULL, NULL);
-
- ModuleSetChanUMode('%', 'h', STATUS_HALFOP);
- ModuleSetChanUMode('*', 'q', STATUS_OWNER);
- ModuleSetChanUMode('+', 'v', STATUS_VOICE);
- ModuleSetChanUMode('@', 'o', STATUS_OP);
- ModuleSetChanUMode('~', 'a', STATUS_PROTECTED);
-
- ModuleUpdateSQLChanMode();
-
-}
-
-void viagra_cmd_version(char *server)
-{
- send_cmd(s_StatServ, "VERSION %s", server);
-}
-
-void viagra_cmd_motd(char *sender, char *server)
-{
- send_cmd(sender, "MOTD %s", server);
-}
-
-int denora_event_setname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_sjoin(char *source, int ac, char **av)
-{
- do_sjoin(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_chgname(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_realname(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_setident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(source, av[0]);
- return MOD_CONT;
-}
-
-int denora_event_chgident(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_username(av[0], av[1]);
- return MOD_CONT;
-}
-
-/*
- * sethost
- * parv[0] = sender
- * parv[1] = newhost
- */
-int denora_event_sethost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(source, av[0]);
- return MOD_CONT;
-}
-
-char *viagra_nickip(char *host)
-{
- struct in_addr addr;
-
- addr.s_addr = htonl(strtoul(host, NULL, 0));
- return sstrdup(inet_ntoa(addr));
-}
-
-int denora_event_nick(char *source, int ac, char **av)
-{
- User *user;
- char *vhost = NULL;
- char *ipchar = NULL;
-
- if (ac != 2)
- {
- vhost = sstrdup("*");
- ipchar = viagra_nickip(av[8]);
- user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
- strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
- ipchar, vhost, NULL, strtoul(av[1], NULL, 10),
- av[3], NULL);
- free(vhost);
- free(ipchar);
- }
- else
- {
- do_nick(source, av[0], NULL, NULL, NULL, NULL,
- strtoul(av[1], NULL, 10), 0, NULL, NULL, NULL, 0, NULL,
- NULL);
- }
- return MOD_CONT;
-}
-
-int denora_event_chghost(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- change_user_host(av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_436(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
-
- m_nickcoll(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_burst(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac)
- {
- update_sync_state(source, SYNC_COMPLETE);
- }
- return MOD_CONT;
-}
-
-/*
- * error
- * parv[0] = sender prefix
- * parv[*] = parameters
- */
-int denora_event_error(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac >= 1)
- {
- alog(LOG_ERROR, "ERROR: %s", av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_pong(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- server_store_pong(source, time(NULL));
- return MOD_CONT;
-}
-
-/* *INDENT-OFF* */
-void moduleAddIRCDMsgs(void)
-{
- Message *m;
-
- m = createMessage("401", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("402", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("436", denora_event_436);
- addCoreMessage(IRCD,m);
- m = createMessage("AWAY", denora_event_away);
- addCoreMessage(IRCD,m);
- m = createMessage("INVITE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("JOIN", denora_event_join);
- addCoreMessage(IRCD,m);
- m = createMessage("KICK", denora_event_kick);
- addCoreMessage(IRCD,m);
- m = createMessage("PONG", denora_event_pong);
- addCoreMessage(IRCD,m);
- m = createMessage("KILL", denora_event_kill);
- addCoreMessage(IRCD,m);
- m = createMessage("MODE", denora_event_mode);
- addCoreMessage(IRCD,m);
- m = createMessage("MOTD", denora_event_motd);
- addCoreMessage(IRCD,m);
- m = createMessage("NICK", denora_event_nick);
- addCoreMessage(IRCD,m);
- m = createMessage("NOTICE", denora_event_notice);
- addCoreMessage(IRCD,m);
- m = createMessage("PART", denora_event_part);
- addCoreMessage(IRCD,m);
- m = createMessage("PASS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("PING", denora_event_ping);
- addCoreMessage(IRCD,m);
- m = createMessage("PRIVMSG", denora_event_privmsg);
- addCoreMessage(IRCD,m);
- m = createMessage("QUIT", denora_event_quit);
- addCoreMessage(IRCD,m);
- m = createMessage("SERVER", denora_event_server);
- addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", denora_event_squit);
- addCoreMessage(IRCD,m);
- m = createMessage("TOPIC", denora_event_topic);
- addCoreMessage(IRCD,m);
- m = createMessage("WALLOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("WHOIS", denora_event_whois);
- addCoreMessage(IRCD,m);
- m = createMessage("AKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GLOBOPS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("GOPER", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RAKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SILENCE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSKILL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSMODE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNICK", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVSNOOP", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSQLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CAPAB", denora_event_capab);
- addCoreMessage(IRCD,m);
- m = createMessage("CS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("HS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("MS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("NS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("OS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("RS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SJOIN", denora_event_sjoin);
- addCoreMessage(IRCD,m);
- m = createMessage("SS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SVINFO", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSGLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("UNSZLINE", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGHOST", denora_event_chghost);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGIDENT", denora_event_chgident);
- addCoreMessage(IRCD,m);
- m = createMessage("CHGNAME", denora_event_chgname);
- addCoreMessage(IRCD,m);
- m = createMessage("SETHOST", denora_event_sethost);
- addCoreMessage(IRCD,m);
- m = createMessage("SETIDENT", denora_event_setident);
- addCoreMessage(IRCD,m);
- m = createMessage("SETNAME", denora_event_setname);
- addCoreMessage(IRCD,m);
- m = createMessage("VS", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("BURST", denora_event_burst);
- addCoreMessage(IRCD,m);
- m = createMessage("TCTRL", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ERROR", denora_event_error);
- addCoreMessage(IRCD,m);
- m = createMessage("REHASH", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("ADMIN", denora_event_null);
- addCoreMessage(IRCD,m);
- m = createMessage("SNOTICE", denora_event_null);
- addCoreMessage(IRCD,m);
-}
-
-/* *INDENT-ON* */
-
-/* PART */
-void viagra_cmd_part(char *nick, char *chan, char *buf)
-{
- if (buf)
- {
- send_cmd(nick, "PART %s :%s", chan, buf);
- }
- else
- {
- send_cmd(nick, "PART %s", chan);
- }
-}
-
-void viagra_cmd_join(char *user, char *channel, time_t chantime)
-{
- if (started)
- {
- send_cmd(ServerName, "SJOIN %ld %s + :%s", (long int) chantime,
- channel, user);
- }
- else
- {
- send_cmd(ServerName, "SJOIN %ld %s +nt :%s", (long int) chantime,
- channel, user);
- }
-}
-
-void viagra_cmd_stats(char *sender, const char *letter, char *server)
-{
- send_cmd(sender, "STATS %s %s", letter, server);
-}
-
-void viagra_cmd_mode(char *source, char *dest, char *buf)
-{
- if (ircdcap->tsmode)
- {
- if (denora->capab & ircdcap->tsmode)
- {
- send_cmd(source, "MODE %s 0 %s", dest, buf);
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
- }
- else
- {
- send_cmd(source, "MODE %s %s", dest, buf);
- }
-}
-
-/* QUIT */
-void viagra_cmd_quit(char *source, char *buf)
-{
- if (buf)
- {
- send_cmd(source, "QUIT :%s", buf);
- }
- else
- {
- send_cmd(source, "QUIT");
- }
-}
-
-int denora_event_away(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_away(source, (ac ? av[0] : NULL));
- return MOD_CONT;
-}
-
-int denora_event_ping(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac < 1)
- return MOD_CONT;
- viagra_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
- return MOD_CONT;
-}
-
-void viagra_cmd_squit(char *servname, char *message)
-{
- send_cmd(NULL, "SQUIT %s :%s", servname, message);
-}
-
-/* PONG */
-void viagra_cmd_pong(char *servname, char *who)
-{
- send_cmd(servname, "PONG %s", who);
-}
-
-/*
- * svinfo
- * parv[0] = sender prefix
- * parv[1] = TS_CURRENT for the server
- * parv[2] = TS_MIN for the server
- * parv[3] = server is standalone or connected to non-TS only
- * parv[4] = server's idea of UTC time
- */
-void viagra_cmd_svinfo(void)
-{
- send_cmd(NULL, "SVINFO 5 3 0 :%ld", (long int) time(NULL));
-}
-
-/* CAPAB */
-void viagra_cmd_capab(void)
-{
- send_cmd(NULL, "CAPAB TS5 NOQUIT SSJOIN BURST UNCONNECT NICKIP");
-}
-
-/* PASS */
-void viagra_cmd_pass(char *pass)
-{
- send_cmd(NULL, "PASS %s :TS", pass);
-}
-
-/* SERVER */
-void viagra_cmd_server(char *servname, int hop, char *descript)
-{
- send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
-}
-
-void viagra_cmd_burst(void)
-{
- send_cmd(NULL, "BURST");
-}
-
-void viagra_cmd_connect(void)
-{
- me_server =
- do_server(NULL, ServerName, (char *) "0", ServerDesc, NULL);
-
- viagra_cmd_pass(RemotePassword);
- viagra_cmd_capab();
- viagra_cmd_server(ServerName, 1, ServerDesc);
- viagra_cmd_svinfo();
- viagra_cmd_burst();
-}
-
-int denora_event_server(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (!stricmp(av[1], "1"))
- {
- denora->uplink = sstrdup(av[0]);
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
- }
- do_server(source, av[0], av[1], av[2], NULL);
- return MOD_CONT;
-}
-
-int denora_event_privmsg(char *source, int ac, char **av)
-{
- if (ac != 2)
- return MOD_CONT;
- m_privmsg(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_part(char *source, int ac, char **av)
-{
- do_part(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_whois(char *source, int ac, char **av)
-{
- if (source && ac >= 1)
- {
- m_whois(source, av[0]);
- }
- return MOD_CONT;
-}
-
-int denora_event_topic(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 4)
- return MOD_CONT;
- do_topic(ac, av);
- return MOD_CONT;
-}
-
-int denora_event_squit(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- if (ac != 2)
- return MOD_CONT;
- do_squit(av[0]);
- return MOD_CONT;
-}
-
-int denora_event_quit(char *source, int ac, char **av)
-{
- if (ac != 1)
- return MOD_CONT;
- do_quit(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_mode(char *source, int ac, char **av)
-{
- if (ac < 2)
- return MOD_CONT;
-
- if (*av[0] == '#' || *av[0] == '&')
- {
- do_cmode(source, ac, av);
- }
- else
- {
- do_umode(source, ac, av);
- }
- return MOD_CONT;
-}
-
-int denora_event_kill(char *source, int ac, char **av)
-{
- if (ac != 2)
- return MOD_CONT;
-
- m_kill(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-int denora_event_kick(char *source, int ac, char **av)
-{
- if (ac != 3)
- return MOD_CONT;
- do_kick(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_join(char *source, int ac, char **av)
-{
- if (ac != 1)
- return MOD_CONT;
- do_join(source, ac, av);
- return MOD_CONT;
-}
-
-int denora_event_motd(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- m_motd(source);
- return MOD_CONT;
-}
-
-void viagra_cmd_notice(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :%s", dest, buf);
-}
-
-void viagra_cmd_privmsg(char *source, char *dest, char *buf)
-{
- send_cmd(source, "PRIVMSG %s :%s", dest, buf);
-}
-
-void viagra_cmd_serv_notice(char *source, char *dest, char *msg)
-{
- send_cmd(source, "NOTICE $%s :%s", dest, msg);
-}
-
-void viagra_cmd_serv_privmsg(char *source, char *dest, char *msg)
-{
- send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
-}
-
-/* GLOBOPS */
-void viagra_cmd_global(char *source, char *buf)
-{
- send_cmd(source, "GLOBOPS :%s", buf);
-}
-
-void viagra_cmd_bot_nick(char *nick, char *user, char *host, char *real,
- char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, user, host, ServerName, real);
-}
-
-void viagra_cmd_nick(char *nick, char *name, const char *modes)
-{
- send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
- (long int) time(NULL), modes, ServiceUser, ServiceHost,
- ServerName, name);
-}
-
-int denora_event_capab(char *source, int ac, char **av)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(source, ac, av);
- }
- capab_parse(ac, av);
- return MOD_CONT;
-}
-
-void viagra_cmd_eob(void)
-{
- send_cmd(NULL, "BURST 0");
-}
-
-void viagra_cmd_ping(char *server)
-{
- send_cmd(ServerName, "PING %s :%s", ServerName, server);
-}
-
-void viagra_cmd_ctcp(char *source, char *dest, char *buf)
-{
- send_cmd(source, "NOTICE %s :\1%s \1", dest, buf);
-}
-
-int denora_event_notice(char *source, int ac, char **av)
-{
- if (ac != 2)
- {
- return MOD_CONT;
- }
- m_notice(source, av[0], av[1]);
- return MOD_CONT;
-}
-
-void moduleAddIRCDCmds()
-{
- pmodule_cmd_nick(viagra_cmd_nick);
- pmodule_cmd_mode(viagra_cmd_mode);
- pmodule_cmd_bot_nick(viagra_cmd_bot_nick);
- pmodule_cmd_notice(viagra_cmd_notice);
- pmodule_cmd_privmsg(viagra_cmd_privmsg);
- pmodule_cmd_serv_notice(viagra_cmd_serv_notice);
- pmodule_cmd_serv_privmsg(viagra_cmd_serv_privmsg);
- pmodule_cmd_quit(viagra_cmd_quit);
- pmodule_cmd_pong(viagra_cmd_pong);
- pmodule_cmd_join(viagra_cmd_join);
- pmodule_cmd_part(viagra_cmd_part);
- pmodule_cmd_global(viagra_cmd_global);
- pmodule_cmd_squit(viagra_cmd_squit);
- pmodule_cmd_connect(viagra_cmd_connect);
- pmodule_cmd_eob(viagra_cmd_eob);
- pmodule_cmd_ctcp(viagra_cmd_ctcp);
- pmodule_cmd_version(viagra_cmd_version);
- pmodule_cmd_stats(viagra_cmd_stats);
- pmodule_cmd_motd(viagra_cmd_motd);
- pmodule_cmd_ping(viagra_cmd_ping);
-}
-
-int DenoraInit(int argc, char **argv)
-{
- if (denora->protocoldebug)
- {
- protocol_debug(NULL, argc, argv);
- }
- moduleAddAuthor("Denora");
- moduleAddVersion("");
- moduleSetType(PROTOCOL);
-
- pmodule_ircd_version("ViagraIRCd 1.3.x");
- pmodule_ircd_cap(myIrcdcap);
- pmodule_ircd_var(myIrcd);
- pmodule_ircd_useTSMode(0);
- IRCDModeInit();
- pmodule_oper_umode(UMODE_o);
- pmodule_irc_var(IRC_VIAGRA);
- moduleAddIRCDCmds();
- moduleAddIRCDMsgs();
-
- return MOD_CONT;
-}
+++ /dev/null
-/* Viagra IRCD
- *
- * (C) 2004-2013 Denora Team
- * Contact us at info@denorastats.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Anope by Anope Team.
- * Based on the original code of Thales by Lucas.
- *
- *
- *
- */
-
-void viagra_cmd_nick(char *nick, char *name, const char *modes);
-void viagra_cmd_mode(char *source, char *dest, char *buf);
-void viagra_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes);
-void viagra_cmd_notice(char *source, char *dest, char *buf);
-void viagra_cmd_privmsg(char *source, char *dest, char *buf);
-void viagra_cmd_serv_notice(char *source, char *dest, char *msg);
-void viagra_cmd_serv_privmsg(char *source, char *dest, char *msg);
-void viagra_cmd_quit(char *source, char *buf);
-void viagra_cmd_pong(char *servname, char *who);
-void viagra_cmd_join(char *user, char *channel, time_t chantime);
-void viagra_cmd_part(char *nick, char *chan, char *buf);
-void viagra_cmd_global(char *source, char *buf);
-void viagra_cmd_squit(char *servname, char *message);
-void viagra_cmd_connect(void);
-void viagra_cmd_eob(void);
-void viagra_cmd_ctcp(char *source, char *dest, char *buf);
-void viagra_cmd_version(char *server);
-void viagra_cmd_stats(char *sender, const char *letter, char *server);
-void viagra_cmd_motd(char *sender, char *servr);
-void viagra_cmd_ping(char *server);
-void viagra_cmd_pass(char *pass);
-void viagra_cmd_server(char *servname, int hop, char *descript);
-void viagra_cmd_svinfo(void);
-void viagra_cmd_capab(void);
-void viagra_cmd_burst(void);
-void IRCDModeInit(void);
-int denora_event_436(char *source, int ac, char **av);
-int denora_event_away(char *source, int ac, char **av);
-int denora_event_ping(char *source, int ac, char **av);
-int denora_event_motd(char *source, int ac, char **av);
-int denora_event_join(char *source, int ac, char **av);
-int denora_event_kick(char *source, int ac, char **av);
-int denora_event_kill(char *source, int ac, char **av);
-int denora_event_mode(char *source, int ac, char **av);
-int denora_event_quit(char *source, int ac, char **av);
-int denora_event_squit(char *source, int ac, char **av);
-int denora_event_topic(char *source, int ac, char **av);
-int denora_event_whois(char *source, int ac, char **av);
-int denora_event_part(char *source, int ac, char **av);
-int denora_event_server(char *source, int ac, char **av);
-int denora_event_nick(char *source, int ac, char **av);
-int denora_event_privmsg(char *source, int ac, char **av);
-int denora_event_capab(char *source, int ac, char **av);
-int denora_event_sjoin(char *source, int ac, char **av);
-int denora_event_chghost(char *source, int ac, char **av);
-int denora_event_sethost(char *source, int ac, char **av);
-int denora_event_chgident(char *source, int ac, char **av);
-int denora_event_setident(char *source, int ac, char **av);
-int denora_event_chgname(char *source, int ac, char **av);
-int denora_event_setname(char *source, int ac, char **av);
-int denora_event_error(char *source, int ac, char **av);
-int denora_event_notice(char *source, int ac, char **av);
-int denora_event_burst(char *source, int ac, char **av);
-int denora_event_pong(char *source, int ac, char **av);
-
-int DenoraInit(int argc, char **argv);
-void moduleAddIRCDMsgs(void);
-void moduleAddIRCDCmds(void);
-void DenoraFini(void);
-char *viagra_nickip(char *host);