-/* Thales - IRC to Relational Database Gateway
+/* GNU Thales - IRC to Relational Database Gateway
* Copyright (C) 2002 Lucas Nussbaum <lucas@lucas-nussbaum.net>
*
* This program is free software; you can redistribute it and/or modify
unsigned int nbusers_max = 0;
unsigned int nbchans = 0;
unsigned int nbchans_max = 0;
+unsigned int nbservs = 0;
+unsigned int nbservs_max = 0;
/* keep track of logged umodes et cmodes, init to 0 by default */
int log_umode[256];
int log_cmode[256];
}
}
+/* check if nbservs > nbservs_max */
+void do_checknbservsmax()
+{
+ if (nbservs > nbservs_max)
+ {
+ nbservs_max = nbservs;
+ db_query
+ ("UPDATE " TBL_MAXV
+ " SET val=\'%d\', time=NOW() WHERE type='servers'", nbservs_max);
+ }
+}
+
/*************************************************************************/
/*
* general purpose functions
{
if (!log_cmode[(int) *modes])
{
- log("unknown mode : chanmode %c (in %s)", *modes, inbuf);
+ mylog("unknown mode : chanmode %c (in %s)", *modes, inbuf);
log_cmode[(int) *modes] = TRUE;
}
}
argptr++;
#endif
-#if defined(IRCD_SEQUANA)||defined(IRCD_BAHAMUT)||defined(IRCD_IRCDRU)
+#if defined(IRCD_BAHAMUT)||defined(IRCD_IRCDRU)
else if (*modes == 'o' || *modes == 'v')
#elif defined(IRCD_HYBRID)||defined(IRCD_ULTI28)
else if (*modes == 'o' || *modes == 'v' || *modes == 'h')
nickid = db_checknick(users);
if (nickid != -1)
{
-#if defined(IRCD_BAHAMUT)||defined(IRCD_SEQUANA)||defined(IRCD_IRCDRU)
+#if defined(IRCD_BAHAMUT)||defined(IRCD_IRCDRU)
db_query("INSERT INTO " TBL_ISON
" (nickid, chanid, mode_lo, mode_lv) VALUES (\'%d\', \'%d\',\'%s\',\'%s\')",
nickid, chanid, (op ? "Y" : "N"), (voice ? "Y" : "N"));
}
else
{
- log("received join of non-existing user %s on channel ID %d",
+ mylog("received join of non-existing user %s on channel ID %d",
users, chanid);
}
free(users);
{
if (!log_umode[(int) *modes])
{
- log("unknown mode : usermode %c (in %s)", *modes, inbuf);
+ mylog("unknown mode : usermode %c (in %s)", *modes, inbuf);
log_umode[(int) *modes] = TRUE;
}
}
if (ServerCacheTime && ((servid = db_checkserver(server)) != -1))
{
db_query("UPDATE " TBL_SERV
- " SET server=\"%s\", comment=\"%s\", linkedto=\"%d\", connecttime=NOW(), lastsplit=NULL, online=\"Y\" WHERE servid=\"%d\"",
+ " SET server=\"%s\", comment=\"%s\", linkedto=\"%d\", connecttime=NOW(), online=\"Y\" WHERE servid=\"%d\"",
server, comment, db_getserver(linkedto), servid);
db_addserver(server, servid);
add = 0;
free(server);
free(comment);
free(linkedto);
+ nbservs++;
+ do_checknbservsmax();
}
/* SQUIT */
db_delserver(server);
}
free(server);
+ nbservs--;
}
/* NICK (new nick) */
nick = db_escape(av[0]);
connecttime = atoi(av[2]);
-#if defined(IRCD_SEQUANA)||defined(IRCD_BAHAMUT)||defined(IRCD_ULTIMATE)||defined(IRCD_IRCDRU)||defined(IRCD_HYBRID)
+#if defined(IRCD_BAHAMUT)||defined(IRCD_ULTIMATE)||defined(IRCD_IRCDRU)||defined(IRCD_HYBRID)
username = db_escape(av[4]);
hostname = db_escape(av[5]);
serv = db_escape(av[6]);
-#ifdef IRCD_SEQUANA
- hiddenhost = db_escape(av[8]);
- ipaddr = do_ipdecode(av[9]);
- realname = db_escape(av[10]);
-#elif defined(IRCD_HYBRID)
+#if defined(IRCD_HYBRID)
hiddenhost = "";
realname = db_escape(av[7]);
#else
hiddenhost = "";
ipaddr = do_ipdecode(av[8]);
realname = db_escape(av[9]);
-#endif /* IRCD_SEQUANA/BAHAMUT/ULTIMATE/HYBRID */
+#endif
#elif defined(IRCD_UNREAL)||defined(IRCD_ULTI28)
username = db_escape(av[3]);
hostname = db_escape(av[4]);
" SET nick=\'%s\', realname=\'%s\', hostname=\'%s\', ipaddr=\'%s\', username=\'%s\', connecttime=FROM_UNIXTIME(\'%d\'), servid=\'%d\',lastquit=NULL, online=\'Y\', away=\'N\', awaymsg=\'\' WHERE nickid=\'%d\'",
nick, realname, hostname, ipaddr, username, connecttime, servid,
nickid);
-#elif defined(IRCD_SEQUANA)||defined(IRCD_ULTIMATE) /* with nickip & hiddenhost */
+#elif defined(IRCD_ULTIMATE) /* with nickip & hiddenhost */
db_query
("UPDATE " TBL_USER
" SET nick=\'%s\', realname=\'%s\', hostname=\'%s\', hiddenhostname=\"%s\", ipaddr=\'%s\', username=\'%s\', connecttime=FROM_UNIXTIME(\'%d\'), servid=\'%d\', lastquit=NULL, online=\'Y\', away=\'N\', awaymsg=\'\' WHERE nickid=\'%d\'",
("INSERT INTO " TBL_USER
" (nick, realname, hostname, ipaddr, username, connecttime, servid) VALUES(\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',FROM_UNIXTIME(\'%d\'),\'%d\')",
nick, realname, hostname, ipaddr, username, connecttime, servid);
-#elif defined(IRCD_SEQUANA)||defined(IRCD_ULTIMATE) /* with nickip & hiddenhost */
+#elif defined(IRCD_ULTIMATE) /* with nickip & hiddenhost */
db_query
("INSERT INTO " TBL_USER
" (nick, realname, hostname, hiddenhostname, ipaddr, username, connecttime, servid) VALUES(\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',FROM_UNIXTIME(\'%d\'),\'%d\')",
free(username);
free(hostname);
free(serv);
-#if defined(IRCD_SEQUANA)||defined(IRCD_UNREAL)
+#if defined(IRCD_UNREAL)
free(hiddenhost);
#endif
free(realname);
-#if defined(IRCD_SEQUANA)||defined(IRCD_BAHAMUT)||defined(IRCD_ULTIMATE)||defined(IRCD_IRCDRU)||defined(IRCD_HYBRID)
+#if defined(IRCD_BAHAMUT)||defined(IRCD_ULTIMATE)||defined(IRCD_IRCDRU)||defined(IRCD_HYBRID)
do_usermodes(db_insertid(), av[3]);
#elif defined(IRCD_UNREAL)
do_usermodes(db_insertid(), av[7]);
free(msg);
}
+void do_swhois(char * user, char * msg)
+{
+ user = db_escape(user);
+ msg = db_escape(msg);
+ db_query
+ ("UPDATE " TBL_USER " SET swhois=\'%s\' WHERE nickid=\'%d\'",
+ msg, db_getnick(user));
+ free(user);
+ free(msg);
+}
+
#endif
#ifdef IRCD_HYBRID