keep in sync with OGN upstream (SVN-321)
[ircu2.10.12-pk.git] / ircd / gline.c
index 24be0026a7eb2ecbc04c7331ac6051143c94f5c8..243e36e5b6c3f094a3d1861295f6be572d93c560 100644 (file)
@@ -721,7 +721,7 @@ gline_modify(struct Client *cptr, struct Client *sptr, struct Gline *gline,
             time_t lastmod, time_t lifetime, unsigned int flags)
 {
   char buf[BUFSIZE], *op = "";
-  int pos = 0, disable_gl = 0;
+  int pos = 0, non_auto = 0, disable_gl = 0;
 
   assert(gline);
   assert(!GlineIsLocal(gline));
@@ -872,6 +872,7 @@ gline_modify(struct Client *cptr, struct Client *sptr, struct Gline *gline,
 
   /* Now, handle reason changes... */
   if (flags & GLINE_REASON) {
+    non_auto = non_auto || ircd_strncmp(gline->gl_reason, "AUTO", 4);
     MyFree(gline->gl_reason); /* release old reason */
     DupString(gline->gl_reason, reason); /* store new reason */
     if (pos < BUFSIZE)
@@ -886,7 +887,9 @@ gline_modify(struct Client *cptr, struct Client *sptr, struct Gline *gline,
      * However, we additionally save the exact message in the log, so we have both information
      * in there. But the ops don't need to be bothered twice.
      */
-    sendto_opmask_butone(0, SNO_GLINE, "%s deleting global %s for %s%s%s",
+    non_auto = non_auto || ircd_strncmp(gline->gl_reason, "AUTO", 4);
+    sendto_opmask_butone(0, non_auto ? SNO_GLINE : SNO_AUTO,
+             "%s deleting global %s for %s%s%s",
                       (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
                       cli_name(sptr) : cli_name((cli_user(sptr))->server),
                       GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
@@ -898,7 +901,9 @@ gline_modify(struct Client *cptr, struct Client *sptr, struct Gline *gline,
            gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "");
   }
   else {
-    sendto_opmask_butone(0, SNO_GLINE, "%s modifying global %s for %s%s%s:%s",
+    non_auto = non_auto || ircd_strncmp(gline->gl_reason, "AUTO", 4);
+    sendto_opmask_butone(0, non_auto ? SNO_GLINE : SNO_AUTO,
+            "%s modifying global %s for %s%s%s:%s",
                       (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
                       cli_name(sptr) : cli_name((cli_user(sptr))->server),
                       GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",