Pārlūkot izejas kodu

* 1.1.4
* Fixed checking for +x in detect_flood()
* Moved whois_access() to flags.c
* Added chk_noflood()


svn: 782

Bryan Drewery 22 gadi atpakaļ
vecāks
revīzija
717c8d55c3
7 mainītis faili ar 29 papildinājumiem un 19 dzēšanām
  1. 3 0
      doc/UPDATES
  2. 22 0
      src/flags.c
  3. 2 0
      src/flags.h
  4. 1 1
      src/main.c
  5. 1 1
      src/mod/server.mod/servmsg.c
  6. 0 16
      src/users.c
  7. 0 1
      src/users.h

+ 3 - 0
doc/UPDATES

@@ -1,5 +1,8 @@
 This is a summary of ChangeLog basically.
 
+1.1.4
+1.+x is now correctly recognized in more places.
+
 1.1.3
 1.Fixed a very fatal bug with channel ctcps.
 2.Fixed a bug in cmd_botcmd.

+ 22 - 0
src/flags.c

@@ -614,6 +614,11 @@ int chk_devoice(struct flag_record fr, struct chanset_t *chan)
     return 0;
 }
 
+int chk_noflood(struct flag_record fr, struct chanset_t *chan)
+{
+  return (chan_noflood(fr) || glob_noflood(fr));
+}
+
 int isupdatehub()
 {
 #ifdef HUB
@@ -631,6 +636,7 @@ int ischanhub()
   else
     return 0;
 }
+
 int dovoice(struct chanset_t *chan)
 {
   struct flag_record fr = { FR_GLOBAL | FR_CHAN, 0, 0 };
@@ -655,3 +661,19 @@ int dolimit(struct chanset_t *chan)
   return 0;
 }
 
+int whois_access(struct userrec *user, struct userrec *whois_user)
+{
+  struct flag_record fr = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
+  struct flag_record whois = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
+
+  get_user_flagrec(user, &fr, NULL);
+  get_user_flagrec(whois_user, &whois, NULL);
+
+  if ((glob_master(whois) && !glob_master(fr)) ||
+     (glob_owner(whois) && !glob_owner(fr)) ||
+     (glob_admin(whois) && !glob_admin(fr)) ||
+     (glob_bot(whois) && !glob_master(fr)))
+    return 0;
+  return 1;
+}
+

+ 2 - 0
src/flags.h

@@ -198,10 +198,12 @@ int chk_op(struct flag_record, struct chanset_t *);
 int chk_deop(struct flag_record, struct chanset_t *);
 int chk_voice(struct flag_record, struct chanset_t *);
 int chk_devoice(struct flag_record, struct chanset_t *);
+int chk_noflood(struct flag_record, struct chanset_t *);
 int ischanhub();
 int isupdatehub();
 int dovoice(struct chanset_t *);
 int dolimit(struct chanset_t *);
+int whois_access(struct userrec *, struct userrec *);
 
 #endif				/* MAKING_MODS */
 

+ 1 - 1
src/main.c

@@ -58,7 +58,7 @@
 extern int		optind;
 
 const time_t 	buildts = CVSBUILD;		/* build timestamp (UTC) */
-const char	egg_version[1024] = "1.1.3";
+const char	egg_version[1024] = "1.1.4";
 
 int 	localhub = 1; 		/* we set this to 0 if we get a -B */
 int 	role;

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

@@ -278,7 +278,7 @@ static int detect_flood(char *floodnick, char *floodhost, char *from, int which)
 
   u = get_user_by_host(from);
   atr = u ? u->flags : 0;
-  if (atr & (USER_BOT))
+  if ((atr & USER_BOT) || (atr & USER_NOFLOOD))
     return 0;
 
 #ifdef S_AUTHCMDS

+ 0 - 16
src/users.c

@@ -1276,19 +1276,3 @@ void autolink_cycle(char *start)
 }
 #endif /* LEAF */
 
-int whois_access(struct userrec *user, struct userrec *whois_user)
-{
-  struct flag_record fr = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
-  struct flag_record whois = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
-
-  get_user_flagrec(user, &fr, NULL);
-  get_user_flagrec(whois_user, &whois, NULL);
-
-  if ((glob_master(whois) && !glob_master(fr)) ||
-     (glob_owner(whois) && !glob_owner(fr)) ||
-     (glob_admin(whois) && !glob_admin(fr)) ||
-     (glob_bot(whois) && !glob_master(fr)))
-    return 0;
-  return 1;
-}
-

+ 0 - 1
src/users.h

@@ -179,7 +179,6 @@ int def_dupuser(struct userrec *new, struct userrec *old,
 
 
 #ifndef MAKING_MODS
-int whois_access(struct userrec *, struct userrec *);
 #ifdef HUB
 void backup_userfile();
 #endif /* HUB */