]> jfr.im git - irc/thales.git/blobdiff - src/actions.c
Sequana support removed
[irc/thales.git] / src / actions.c
index 63aa91fc82ddf8ac4f4ef348a9f63a2961b15300..2add686b98f3b4e61acd747ba7830e7e57cac326 100644 (file)
@@ -1,4 +1,4 @@
-/*  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
@@ -43,6 +43,8 @@ unsigned int nbusers = 0;
 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];
@@ -72,6 +74,18 @@ void do_checknbusersmax()
        }
 }
 
+/* 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
@@ -119,7 +133,7 @@ static void do_chanmodes(int chanid, char **av, int ac)
                        {
                                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;
                                }
                        }
@@ -135,7 +149,7 @@ static void do_chanmodes(int chanid, char **av, int ac)
                                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')
@@ -324,7 +338,7 @@ static void do_addusers(int chanid, char *users)
                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"));
@@ -353,7 +367,7 @@ static void do_addusers(int chanid, char *users)
                }
                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);
@@ -386,7 +400,7 @@ static void do_usermodes(int nickid, char *modes)
                        {
                                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;
                                }
                        }
@@ -431,7 +445,7 @@ void do_server(char *server, char *comment, char *linkedto)
        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;
@@ -449,6 +463,8 @@ void do_server(char *server, char *comment, char *linkedto)
        free(server);
        free(comment);
        free(linkedto);
+   nbservs++;
+       do_checknbservsmax();
 }
 
 /* SQUIT */
@@ -468,6 +484,7 @@ void do_squit(char *server)
                db_delserver(server);
        }
        free(server);
+   nbservs--;
 }
 
 /* NICK (new nick) */
@@ -487,22 +504,18 @@ void do_nick_new(int ac, char **av)
 
        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]);
@@ -524,7 +537,7 @@ void do_nick_new(int ac, char **av)
                         " 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\'",
@@ -551,7 +564,7 @@ void do_nick_new(int ac, char **av)
                        ("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\')",
@@ -577,11 +590,11 @@ void do_nick_new(int ac, char **av)
        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]);
@@ -836,6 +849,17 @@ void do_sdesc(char *user, char *msg)
        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