Просмотр исходного кода

* Added support for floodless iline (dont queue to server)

svn: 1550
Bryan Drewery 21 лет назад
Родитель
Сommit
b0d09e3f60
5 измененных файлов с 12 добавлено и 2 удалено
  1. 1 0
      doc/UPDATES
  2. 4 1
      src/dccutil.c
  3. 1 0
      src/mod/server.mod/server.c
  4. 1 1
      src/mod/server.mod/server.h
  5. 5 0
      src/mod/server.mod/servmsg.c

+ 1 - 0
doc/UPDATES

@@ -68,6 +68,7 @@ This is a summary of ChangeLog basically.
 * pscloak is now default 0.
 * cmd_bots now takes an optional parameter. A nodename (hostname) to match for bots. Down bots are prepended with a *.
 * Recoded and spiffed up cmd_userlist.
+* When connecting with a floodless iline, bot will now dump msgs instead of queueing them to server.
 
 1.1.9
 

+ 4 - 1
src/dccutil.c

@@ -198,7 +198,10 @@ dprintf(int idx, const char *format, ...)
       case DP_MODE_NEXT:
       case DP_SERVER_NEXT:
       case DP_HELP_NEXT:
-        queue_server(idx, buf, len);
+        if (floodless && server_online && serv != -1)
+          tputs(serv, buf, len);
+        else
+          queue_server(idx, buf, len);
         break;
 #endif /* LEAF */
     }

+ 1 - 0
src/mod/server.mod/server.c

@@ -27,6 +27,7 @@
 #include "server.h"
 #include <stdarg.h>
 
+bool floodless = 0;		/* floodless iline? */
 bool strict_servernames;
 bool checked_hostmask;	/* Used in request_op()/check_hostmask() cleared on connect */
 int ctcp_mode;

+ 1 - 1
src/mod/server.mod/server.h

@@ -42,7 +42,7 @@ enum {
 
 extern bind_table_t	*BT_ctcp, *BT_ctcr, *BT_msgc;
 extern size_t		nick_len;
-extern bool		checked_hostmask, quiet_reject, trigger_on_ignore;
+extern bool		checked_hostmask, quiet_reject, trigger_on_ignore, floodless;
 extern int 		servidx, ctcp_mode, flud_thr, flud_ctcp_thr, answer_ctcp, serv;
 extern port_t		default_port, newserverport;
 extern time_t		server_online, cycle_time, flud_time, flud_ctcp_time;

+ 5 - 0
src/mod/server.mod/servmsg.c

@@ -656,6 +656,10 @@ static int gotnotice(char *from, char *msg)
     } else {
       /* Server notice? */
       if ((nick[0] == 0) || (uhost[0] == 0)) {
+        if (!server_online && 
+           (!strcmp(msg, "*** You are exempt from flood limits.") || 
+            !strcmp(msg, "*** You are exempt from user limits. congrats.")))
+          floodless = 1;
 	/* Hidden `250' connection count message from server */
 	if (strncmp(msg, "Highest connection count:", 25))
 	  putlog(LOG_SERV, "*", "-NOTICE- %s", msg);
@@ -948,6 +952,7 @@ static void disconnect_server(int idx, int dolost)
   serv = -1;
   servidx = -1;
   server_online = 0;
+  floodless = 0;
   botuserhost[0] = 0;
   if (dolost) {
     trying_server = 0;