]> jfr.im git - irc/quakenet/newserv.git/commitdiff
helpmod2 version 2.02
authorfroo <redacted>
Sat, 21 May 2005 13:40:00 +0000 (14:40 +0100)
committerfroo <redacted>
Sat, 21 May 2005 13:40:00 +0000 (14:40 +0100)
helpmod2/changelist
helpmod2/hban.c
helpmod2/hchannel.c
helpmod2/hcommands.c
helpmod2/helpmod.c
helpmod2/helpmod.h
helpmod2/hhooks.c
helpmod2/hlamer.c
helpmod2/hqueue.c
helpmod2/hticket.c

index 8bd96fc953c5e92218086ed09b56472477d0d709..77105a719804cd8d2dc3f0caeae01424bfa31983 100644 (file)
@@ -196,3 +196,11 @@ ticket command is now available to trials as well
 Fixed a bug in ticket resolve
 Added a command showticket
 Tickets can no longer be granted to lamers (improper users)
+
+2.011
+Fixed some function calls to a more secure form
+
+2.02
+Changed the ban system a bit, real host no longer preferred
+fixed G realname
+Fixed the annoying term bug
index 766830058cce05dbf3968a0fc38f22ae47484e12..51424bd594a9488c39a2051097eb6848925a29a6 100644 (file)
@@ -65,7 +65,7 @@ hban *hban_huser(void *target, const char* rsn, time_t exp, int now)
     const char *banmask;
     huser *husr = (huser*)target;
 
-    banmask = hban_ban_string(husr->real_user, HBAN_REAL_HOST);
+    banmask = hban_ban_string(husr->real_user, HBAN_HOST);
 
     return hban_add(banmask, rsn, exp, now);
 }
@@ -168,9 +168,12 @@ const char *hban_ban_string(nick *nck, int banflags)
 
     strcat(buffer, "@");
 
-    if (banflags & HBAN_HOST)
-        strcat(buffer, nck->host->name->content);
-    else if (banflags & HBAN_REAL_HOST)
+    if ((banflags & HBAN_HOST) && IsAccount(nck))
+    {
+        strcat(buffer, nck->authname);
+        strcat(buffer, ".users.quakenet.org");
+    }
+    else if ((banflags & HBAN_REAL_HOST) || ((banflags & HBAN_HOST) && !IsAccount(nck)))
         strcat(buffer, nck->host->name->content);
     else
         strcat(buffer, "*");
index d5387be62fe228f49548acc3289b0b77e2e1e0c3..83502cdfc9e0349c5ffbbc213e29fa0916f8399e 100644 (file)
@@ -223,7 +223,7 @@ void hchannel_remove_inactive_users(void)
                 {
                     if (huser_on_channel((*hchanuser)->husr, hchan)->flags & H_IDLE_WARNING)
                     {
-                        const char *banmask = hban_ban_string((*hchanuser)->husr->real_user, HBAN_REAL_HOST);
+                        const char *banmask = hban_ban_string((*hchanuser)->husr->real_user, HBAN_HOST);
                         helpmod_setban(hchan, banmask, time(NULL) + 10 * HDEF_m, MCB_ADD, HNOW);
 
                         helpmod_kick(hchan, (*hchanuser)->husr, "Please do not idle in %s", hchannel_get_name(hchan));
index 8f65512fc75ed7ec33a7ef3fcb3127c530745232..ab88f2bed14e738467a0b5caea0971d517b3a709 100644 (file)
@@ -735,7 +735,7 @@ void helpmod_cmd_aliases (huser *sender, channel* returntype, char* ostr, int ar
     {
        if (i > 256)
        {
-           helpmod_reply(sender, returntype, buf);
+           helpmod_reply(sender, returntype, "%s", buf);
            i = 0;
        }
        if (!node)
@@ -747,7 +747,7 @@ void helpmod_cmd_aliases (huser *sender, channel* returntype, char* ostr, int ar
     }
     helpmod_list_aliases(aliases);
     if (i)
-       helpmod_reply(sender, returntype, buf);
+       helpmod_reply(sender, returntype, "%s", buf);
 }
 
 void helpmod_cmd_showcommands (huser *sender, channel* returntype, char* ostr, int argc, char *argv[])
@@ -981,7 +981,7 @@ void helpmod_cmd_term (huser *sender, channel* returntype, char* ostr, int argc,
         {
             if (strlen(buffer) >= 250)
             {
-                helpmod_reply(sender, returntype, buffer);
+                helpmod_reply(sender, returntype, "%s", buffer);
                 buffer[0] = '\0';
             }
             if (strregexp(htrm->description->content, pattern) || strregexp(htrm->name->content, pattern))
@@ -991,7 +991,7 @@ void helpmod_cmd_term (huser *sender, channel* returntype, char* ostr, int argc,
             }
         }
         if  (buffer[0])
-            helpmod_reply(sender, returntype, buffer);
+            helpmod_reply(sender, returntype, "%s", buffer);
         helpmod_reply(sender, returntype, "%d term%s match%s pattern '%s'", count, (count == 1)?"":"s", (count == 1)?"es":"", pattern);
     }
     else if (!ci_strcmp(argv[0], "listfull"))
@@ -1531,7 +1531,7 @@ void helpmod_cmd_out (huser *sender, channel* returntype, char* ostr, int argc,
             continue;
         }
         {
-            const char *banmask = hban_ban_string(husr->real_user, HBAN_REAL_HOST);
+            const char *banmask = hban_ban_string(husr->real_user, HBAN_HOST);
 
             hban_add(banmask, "Banned", time(NULL) + HCMD_OUT_DEFAULT, 0);
         }
@@ -1744,22 +1744,22 @@ void helpmod_cmd_stats (huser *sender, channel* returntype, char* ostr, int argc
     if (days)
     {
         helpmod_reply(sender, returntype, "Last %d day%s", days, (days==1)?"":"s");
-        helpmod_reply(sender, returntype, hstat_header(type));
+        helpmod_reply(sender, returntype, "%s", hstat_header(type));
         for (i=0;i<days;i++)
         {
             stat_entry = &ptr->week[(tstruct->tm_wday - i + 7)  % 7];
-            helpmod_reply(sender, returntype, hstat_account_print(stat_entry, type));
+            helpmod_reply(sender, returntype, "%s", hstat_account_print(stat_entry, type));
         }
     }
 
     if (weeks)
     {
         helpmod_reply(sender, returntype, "Last %d week%s", weeks, (weeks==1)?"":"s");
-        helpmod_reply(sender, returntype, hstat_header(type));
+        helpmod_reply(sender, returntype, "%s", hstat_header(type));
         for (i=0;i<weeks;i++)
         {
             stat_entry = &ptr->longterm[(hstat_week() - i + 10) % 10];
-            helpmod_reply(sender, returntype, hstat_account_print(stat_entry, type));
+            helpmod_reply(sender, returntype, "%s", hstat_account_print(stat_entry, type));
         }
     }
 }
@@ -1842,22 +1842,22 @@ void helpmod_cmd_chanstats (huser *sender, channel* returntype, char* ostr, int
     if (days)
     {
         helpmod_reply(sender, returntype, "Last %d day%s", days, (days==1)?"":"s");
-        helpmod_reply(sender, returntype, hstat_header(type));
+        helpmod_reply(sender, returntype, "%s", hstat_header(type));
         for (i=0;i<days;i++) /* latest week */ 
         {
             stat_entry = &hchan->stats->week[(tstruct->tm_wday - i + 7)  % 7];
-            helpmod_reply(sender, returntype, hstat_channel_print(stat_entry, type));
+            helpmod_reply(sender, returntype, "%s", hstat_channel_print(stat_entry, type));
         }
     }
 
     if (weeks)
     {
         helpmod_reply(sender, returntype, "Last %d week%s", weeks, (weeks==1)?"":"s");
-        helpmod_reply(sender, returntype, hstat_header(type));
+        helpmod_reply(sender, returntype, "%s", hstat_header(type));
         for (i=0;i<weeks;i++) /* latest weeks */
         {
             stat_entry = &hchan->stats->longterm[(hstat_week() - i + 10)  % 10];
-            helpmod_reply(sender, returntype, hstat_channel_print(stat_entry, type));
+            helpmod_reply(sender, returntype, "%s", hstat_channel_print(stat_entry, type));
         }
     }
 }
index b1c6ab94c8d77c44d19a4b7e05ef805df46c88cb..bd03f23ea8d2adaf10c0777812b76990fdda8af7 100644 (file)
@@ -128,7 +128,7 @@ void helpmod_message_channel(hchannel *hchan, const char *message, ...)
     vsnprintf(buf,512,message,va);
     va_end(va);
 
-    sendmessagetochannel(helpmodnick, hchan->real_channel, buf);
+    sendmessagetochannel(helpmodnick, hchan->real_channel, "%s", buf);
 }
 
 void helpmod_message_channel_long(hchannel *hchan, const char *message, ...)
@@ -155,11 +155,11 @@ void helpmod_message_channel_long(hchannel *hchan, const char *message, ...)
             }
         if (i == 50)
             bp[390 + i] = '\0';
-        sendmessagetochannel(helpmodnick, hchan->real_channel, bp);
+        sendmessagetochannel(helpmodnick, hchan->real_channel, "%s", bp);
         bp+=(390+i+1);
     }
     if (*bp)
-        sendmessagetochannel(helpmodnick, hchan->real_channel, bp);
+        sendmessagetochannel(helpmodnick, hchan->real_channel, "%s", bp);
 }
 
 void helpmod_kick(hchannel *hchan, huser *target, const char *reason, ...)
@@ -346,7 +346,7 @@ void helpconnect(void) {
     helpmodnick=registerlocaluser(HELPMOD_NICK,
                                  "help",
                                  "quakenet.org",
-                                 "NewServ HelpMod 2, /msg H help",
+                                 "NewServ HelpMod 2, /msg "HELPMOD_NICK" help",
                                  HELPMOD_AUTH,
                                  UMODE_OPER|UMODE_ACCOUNT|UMODE_SERVICE,&helpmodmessagehandler);
     /* register hooks */
index 37d85307ac6087c4aa964aef89c437d757958d06..4f81073b08c30db1f021abe388315d7d3e57f2e3 100644 (file)
@@ -10,7 +10,7 @@
 
 /* configuration */
 
-#define HELPMOD_VERSION "2.01"
+#define HELPMOD_VERSION "2.02"
 
 #define HELPMOD_USER_TIMEOUT 1200
 
index 73504b84c5dfc3d3881ae5837da6dfcc539fc64c..26ad3f8a112e74b37a641cf3265e044d403b6f0d 100644 (file)
@@ -121,7 +121,7 @@ void helpmod_hook_channel_newnick(int unused, void *args)
         hban *hb = hban_check(nck);
         if (hb)
         {
-            const char *banmask = hban_ban_string(nck, HBAN_REAL_HOST);
+            const char *banmask = hban_ban_string(nck, HBAN_HOST);
 
             helpmod_setban(hchan, banmask, time(NULL) + 1 * HDEF_d, MCB_ADD, HNOW);
 
index 29c09534b5b4513f7ecaedfab2b3b8684afbcab1..0e0b6ff09891b4d72e330c7d13783bd75d96b26f 100644 (file)
@@ -68,7 +68,7 @@ static int hlc_violation_handle(hchannel *hchan, huser* husr, int violation)
 {
         if (husr->lc[violation] >= hchan->lc_profile->tolerance_remove) /* get rid of the thing */
         {
-            const char *banmask = hban_ban_string(husr->real_user, HBAN_REAL_HOST);
+            const char *banmask = hban_ban_string(husr->real_user, HBAN_HOST);
 
             switch (violation)
             {
index 5abbe0b56b01b0abcdb86f048f61215a4e38c207..435be2b6bd9b69c7bcbec3553674539224a2150a 100644 (file)
@@ -305,14 +305,14 @@ void helpmod_queue_handler (huser *sender, channel* returntype, hchannel *hchan,
             {
                 if (strlen(buffer) >= 250)
                 {
-                    helpmod_reply(sender, returntype, buffer);
+                    helpmod_reply(sender, returntype, "%s", buffer);
                     buffer[0] = '\0';
                 }
                 if (hqueue_on_queue(hqueue))
                     sprintf(buffer+strlen(buffer) /* :) */, "%s (%s@%s) [%s] ", hqueue->hchanuser->husr->real_user->nick, hqueue->hchanuser->husr->real_user->ident, hqueue->hchanuser->husr->real_user->host->name->content, helpmod_strtime(time(NULL) - hqueue->hchanuser->time_joined));
             }
             if  (buffer[0])
-                helpmod_reply(sender, returntype, buffer);
+                helpmod_reply(sender, returntype, "%s", buffer);
         }
         return;
     case HQ_NONE: /* if no parameters are given print the summary */
index 0ef54bf7aca0d57e7180f7126fce1f1d45d9e8ea..20e50324d8dfca5c2b51580e0dda4a4247ab3989 100644 (file)
@@ -23,8 +23,9 @@ hticket *hticket_del(hticket *htick, struct hchannel_struct *hchan)
     for (ptr = &hchan->htickets;*ptr;ptr = &(*ptr)->next)
         if (*ptr == htick)
         {
-            *ptr = htick->next;
-            free(htick);
+            hticket *tmp = (*ptr)->next;
+            free(*ptr);
+            *ptr = tmp;
             return NULL;
         }
 
@@ -68,13 +69,14 @@ int hticket_count(void)
 void hticket_remove_expired(void)
 {
     hchannel *hchan;
-    hticket *htick, *next;
+    hticket **tmp;
     for (hchan = hchannels;hchan;hchan = hchan->next)
-        for (htick = hchan->htickets; htick; htick = next)
-        {
-            next = htick->next;
-            if (htick->time_expiration < time(NULL))
-                hticket_del(htick, hchan);
-        }
+    {
+        tmp = &hchan->htickets;
+        while (*tmp)
+            if ((*tmp)->time_expiration < time(NULL))
+                hticket_del(*tmp, hchan);
+            else
+                tmp = &(*tmp)->next;
+    }
 }
-