]> jfr.im git - irc/quakenet/snircd.git/blobdiff - ircd/m_gline.c
merge 07 in
[irc/quakenet/snircd.git] / ircd / m_gline.c
index 47ab28757baf3e3533ccf6a9c36083d82eda035e..79fd974b9cc64f2e5042bf7830a81d3ff8059aaf 100644 (file)
@@ -153,23 +153,26 @@ ms_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
     flags |= GLINE_FORCE;
 
   if (!(target[0] == '*' && target[1] == '\0')) {
-    if (!(acptr = FindNServer(target)))
+    if (!( (acptr = FindNServer(target)) || 
+           (acptr = SeekServer(target)) ) )
       return 0; /* no such server */
 
     if (!IsMe(acptr)) { /* manually propagate */
       if (!lastmod)
        sendcmdto_one(sptr, CMD_GLINE, acptr,
-                     (parc == 3) ? "%C %s" : "%C %s %s :%s", acptr, mask,
+                     (parc == 3) ? "%s %s" : "%s %s %s :%s", target, mask,
                      parv[3], reason);
       else
-       sendcmdto_one(sptr, CMD_GLINE, acptr, "%C %s%s %s %s :%s", acptr,
+       sendcmdto_one(sptr, CMD_GLINE, acptr, "%s %s%s %s %s :%s", target,
                      flags & GLINE_OPERFORCE ? "!" : "", mask, parv[3],
                      parv[4], reason);
 
       return 0;
     }
 
-    flags |= GLINE_LOCAL;
+    /* For asuka we don't want glines sent this way treated as local
+     * flags |= GLINE_LOCAL;
+     */
   }
 
   if (*mask == '-')
@@ -331,6 +334,9 @@ mo_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
 int
 m_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
 {
+  if (feature_bool(FEAT_HIS_USERGLINE))
+    return send_reply(sptr, ERR_DISABLED, "GLINE");
+
   if (parc < 2)
     return send_reply(sptr, ERR_NOSUCHGLINE, "");