Prevent "GLINE +test", "GLINE +test" from creating duplicate G-lines.
[ircu2.10.12-pk.git] / ircd / gline.c
index 6de036232afe2728ec89f376f85bc8822c52d79e..5994e3eab4b86986752a7d8dee57cbd9ed83d28f 100644 (file)
@@ -641,10 +641,7 @@ gline_find(char *userhost, unsigned int flags)
     return 0;
 
   DupString(t_uh, userhost);
-  canon_userhost(t_uh, &user, &host, 0);
-
-  if (BadPtr(user))
-    return 0;
+  canon_userhost(t_uh, &user, &host, "*");
 
   for (gline = GlobalGlineList; gline; gline = sgline) {
     sgline = gline->gl_next;
@@ -657,14 +654,12 @@ gline_find(char *userhost, unsigned int flags)
     else if (flags & GLINE_EXACT) {
       if (((gline->gl_host && host && ircd_strcmp(gline->gl_host, host) == 0)
            || (!gline->gl_host && !host)) &&
-          ((!user && ircd_strcmp(gline->gl_user, "*") == 0) ||
-          ircd_strcmp(gline->gl_user, user) == 0))
+          (ircd_strcmp(gline->gl_user, user) == 0))
        break;
     } else {
       if (((gline->gl_host && host && match(gline->gl_host, host) == 0)
            || (!gline->gl_host && !host)) &&
-         ((!user && ircd_strcmp(gline->gl_user, "*") == 0) ||
-          match(gline->gl_user, user) == 0))
+         (match(gline->gl_user, user) == 0))
       break;
     }
   }