]> jfr.im git - irc/quakenet/newserv.git/blobdiff - glines/glines_formats.c
CHANSERV: better batcher error handling for expired accounts/accounts with no email.
[irc/quakenet/newserv.git] / glines / glines_formats.c
index 252ed2240443facf22910d1de22f02c06c86b9d9..6a1649fc7dcc962cdd80f29df842926b764cb6a7 100644 (file)
@@ -81,14 +81,13 @@ gline *makegline(const char *mask) {
     }
 
     gl->flags |= GLINE_REALNAME;
-    gl->user = getsstring(mask + 2, REALLEN);
+
+    if (strcmp(mask + 2, "*") != 0)
+      gl->user = getsstring(mask + 2, REALLEN);
+
     return gl;
   }
 
-  /* Make sure it's not too long */
-  if (strlen(mask) > NICKLEN + USERLEN + HOSTLEN + 2)
-    return NULL;
-
   strncpy(dupmask, mask, sizeof(dupmask));
   canon_userhost(dupmask, &nick, &user, &host, "*");
 
@@ -105,7 +104,7 @@ gline *makegline(const char *mask) {
       count++;
 
   if (count >= 8) {
-    controlwall(NO_OPER, NL_GLINES, "Warning: Parsed invalid IPv6 G-Line: %s", mask);
+    controlwall(NO_OPER, NL_GLINES_AUTO, "Warning: Parsed invalid IPv6 G-Line: %s", mask);
     freegline(gl);
     return NULL;
   }
@@ -126,11 +125,7 @@ char *glinetostring(gline *gl) {
   static char mask[512]; /* check */
 
   if (gl->flags & GLINE_REALNAME) {
-   if (gl->user)
-     snprintf(mask, sizeof(mask), "$R%s", gl->user->content);
-   else
-     strncpy(mask, "$R*", sizeof(mask));
-
+   snprintf(mask, sizeof(mask), "$R%s", (gl->user) ? gl->user->content : "*");
    return mask;
   }