]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blobdiff - opername.patch
checkoutput: remove misplaced : in RPL_CHKHEAD
[irc/quakenet/snircd-patchqueue.git] / opername.patch
index 9e1dfaac6fce18875752a2dbef4bcd7417e974d9..296e5d4c57c20a00a76468fd58bb7701bfed285a 100644 (file)
@@ -1,9 +1,13 @@
-Add opername to snomask, remote connect wallops, and logging
+Add opername to snomask, remote connect wallops, and as prefix to server jupes
 
-diff -r 897950943d34 include/client.h
---- a/include/client.h Mon Jan 12 18:45:19 2009 +0100
-+++ b/include/client.h Mon Jan 12 19:23:07 2009 +0100
-@@ -806,6 +806,7 @@
+in form of nick(opername)
+new function get_client_name_and_opername() add in s_misc.c
+mirrored after get_client_name() which can return either nick/server or nick[ident@ip]
+
+diff -r bb8b6e2e3236 include/client.h
+--- a/include/client.h
++++ b/include/client.h
+@@ -809,6 +809,7 @@
  #define IPV6USERBITS 64
  
  extern const char* get_client_name(const struct Client* sptr, int showip);
@@ -11,10 +15,10 @@ diff -r 897950943d34 include/client.h
  extern const char* client_get_default_umode(const struct Client* sptr);
  extern int client_get_ping(const struct Client* local_client);
  extern void client_drop_sendq(struct Connection* con);
-diff -r 897950943d34 ircd/channel.c
---- a/ircd/channel.c   Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/channel.c   Mon Jan 12 19:23:07 2009 +0100
-@@ -1850,8 +1850,8 @@
+diff -r bb8b6e2e3236 ircd/channel.c
+--- a/ircd/channel.c
++++ b/ircd/channel.c
+@@ -1910,8 +1910,8 @@
      if (mbuf->mb_dest & MODEBUF_DEST_HACK4)
        sendto_opmask_butone(0, SNO_HACK4, "HACK(4): %s MODE %s %s%s%s%s%s%s "
                           "[%Tu]",
@@ -25,37 +29,19 @@ diff -r 897950943d34 ircd/channel.c
                           mbuf->mb_channel->chname,
                           rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "",
                           addbuf, remstr, addstr,
-@@ -1859,7 +1859,7 @@
-     if (mbuf->mb_dest & MODEBUF_DEST_LOG)
-       log_write(LS_OPERMODE, L_INFO, LOG_NOSNOTICE,
--              "%#C OPMODE %H %s%s%s%s%s%s", mbuf->mb_source,
-+              "%s OPMODE %H %s%s%s%s%s%s", get_client_name_and_opername(mbuf->mb_source),
-               mbuf->mb_channel, rembuf_i ? "-" : "", rembuf,
-               addbuf_i ? "+" : "", addbuf, remstr, addstr);
-diff -r 897950943d34 ircd/gline.c
---- a/ircd/gline.c     Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/gline.c     Mon Jan 12 19:23:07 2009 +0100
-@@ -566,7 +566,7 @@
-   sendto_opmask_butone(0, snomask, "%s adding %s %s for %s%s%s%s%s, expiring at "
+diff -r bb8b6e2e3236 ircd/gline.c
+--- a/ircd/gline.c
++++ b/ircd/gline.c
+@@ -567,7 +567,7 @@
+                        SNO_AUTO, "%s adding %s%s %s for %s%s%s%s%s, expiring at "
                         "%Tu: %s",
                         (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
 -                         cli_name(sptr) :
 +                         get_client_name_and_opername(sptr) :
                           cli_name((cli_user(sptr))->server),
+                        (flags & GLINE_ACTIVE) ? "" : "deactivated ",
                       (flags & GLINE_LOCAL) ? "local" : "global",
-                      (flags & GLINE_BADCHAN) ? "BADCHAN" : "GLINE",
-@@ -579,7 +579,7 @@
-   /* and log it */
-   log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE,
--          "%#C adding %s %s for %s%s%s%s%s, expiring at %Tu: %s", sptr,
-+          "%s adding %s %s for %s%s%s%s%s, expiring at %Tu: %s", get_client_name_and_opername(sptr),
-           flags & GLINE_LOCAL ? "local" : "global",
-           flags & GLINE_BADCHAN ? "BADCHAN" : "GLINE",
-             flags & (GLINE_BADCHAN|GLINE_REALNAME) ? "" : nick,
-@@ -652,7 +652,7 @@
+@@ -642,7 +642,7 @@
    sendto_opmask_butone(0, SNO_GLINE, "%s activating global %s for %s%s%s%s%s, "
                         "expiring at %Tu: %s",
                         (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -64,16 +50,7 @@ diff -r 897950943d34 ircd/gline.c
                           cli_name((cli_user(sptr))->server),
                         GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
                         GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
-@@ -662,7 +662,7 @@
-                        gline->gl_expire + TSoffset, gline->gl_reason);
-   
-   log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE,
--            "%#C activating global %s for %s%s%s%s%s, expiring at %Tu: %s", sptr,
-+            "%s activating global %s for %s%s%s%s%s, expiring at %Tu: %s", get_client_name_and_opername(sptr),
-             GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
-             GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
-             GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : "!",
-@@ -725,7 +725,7 @@
+@@ -715,7 +715,7 @@
    sendto_opmask_butone(0, SNO_GLINE, "%s %s %s for %s%s%s%s%s, expiring at %Tu: "
                       "%s",
                         (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -82,16 +59,7 @@ diff -r 897950943d34 ircd/gline.c
                           cli_name((cli_user(sptr))->server),
                       msg, GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
                         GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
-@@ -735,7 +735,7 @@
-                      gline->gl_expire + TSoffset, gline->gl_reason);
-   log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE,
--            "%#C %s %s for %s%s%s%s%s, expiring at %Tu: %s", sptr, msg,
-+            "%s %s %s for %s%s%s%s%s, expiring at %Tu: %s", get_client_name_and_opername(sptr), msg,
-             GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
-             GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
-             GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : "!",
-@@ -940,7 +940,7 @@
+@@ -919,7 +919,7 @@
    /* All right, inform ops... */
    sendto_opmask_butone(0, SNO_GLINE, "%s modifying global %s for %s%s%s%s%s:%s",
                       (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -100,16 +68,7 @@ diff -r 897950943d34 ircd/gline.c
                       GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
                         GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
                         GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : "!",
-@@ -949,7 +949,7 @@
-   /* and log the change */
-   log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE,
--          "%#C modifying global %s for %s%s%s:%s", sptr,
-+          "%s modifying global %s for %s%s%s:%s", get_client_name_and_opername(sptr),
-           GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", gline->gl_user,
-           gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "",
-           buf);
-@@ -997,14 +997,14 @@
+@@ -966,7 +966,7 @@
    /* Inform ops and log it */
    sendto_opmask_butone(0, SNO_GLINE, "%s removing local %s for %s%s%s%s%s",
                       (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -118,36 +77,10 @@ diff -r 897950943d34 ircd/gline.c
                       GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
                         GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
                         GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : "!",
-                      gline->gl_user, gline->gl_host ? "@" : "",
-                      gline->gl_host ? gline->gl_host : "");
-   log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE,
--          "%#C removing local %s for %s%s%s%s%s", sptr,
-+          "%s removing local %s for %s%s%s%s%s", get_client_name_and_opername(sptr),
-           GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", 
-             GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : gline->gl_nick,
-             GlineIsBadChan(gline)|GlineIsRealName(gline) ? "" : "!",
-diff -r 897950943d34 ircd/ircd_log.c
---- a/ircd/ircd_log.c  Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/ircd_log.c  Mon Jan 12 19:23:07 2009 +0100
-@@ -469,11 +469,11 @@
- {
-   if (MyUser(victim))
-     log_write(IsServer(killer) ? LS_SERVKILL : LS_OPERKILL, L_TRACE, 0,
--            "A local client %#C KILLED by %#C Path: %s!%s %s",
--            victim, killer, inpath, path, msg);
-+            "A local client %#C KILLED by %s Path: %s!%s %s",
-+            victim, get_client_name_and_opername(killer), inpath, path, msg);
-   else
-     log_write(IsServer(killer) ? LS_SERVKILL : LS_OPERKILL, L_TRACE, 0,
--            "KILL from %C For %C Path: %s!%s %s", killer, victim, inpath,
-+            "KILL from %s For %C Path: %s!%s %s", get_client_name_and_opername(killer), victim, inpath,
-             path, msg);
- }
-diff -r 897950943d34 ircd/jupe.c
---- a/ircd/jupe.c      Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/jupe.c      Mon Jan 12 19:23:07 2009 +0100
-@@ -156,13 +156,13 @@
+diff -r bb8b6e2e3236 ircd/jupe.c
+--- a/ircd/jupe.c
++++ b/ircd/jupe.c
+@@ -156,7 +156,7 @@
    sendto_opmask_butone(0, SNO_NETWORK, "%s adding %sJUPE for %s, expiring at "
                         "%Tu: %s",
                         (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -156,14 +89,7 @@ diff -r 897950943d34 ircd/jupe.c
                           cli_name((cli_user(sptr))->server),
                       flags & JUPE_LOCAL ? "local " : "", server,
                       expire + TSoffset, reason);
-   log_write(LS_JUPE, L_INFO, LOG_NOSNOTICE,
--          "%#C adding %sJUPE for %s, expiring at %Tu: %s", sptr,
-+          "%s adding %sJUPE for %s, expiring at %Tu: %s", get_client_name_and_opername(sptr),
-           flags & JUPE_LOCAL ? "local " : "", server, expire + TSoffset,
-           reason);
-@@ -216,13 +216,13 @@
+@@ -211,7 +211,7 @@
    sendto_opmask_butone(0, SNO_NETWORK, "%s activating JUPE for %s, expiring "
                       "at %Tu: %s",
                         (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -172,14 +98,7 @@ diff -r 897950943d34 ircd/jupe.c
                           cli_name((cli_user(sptr))->server),
                       jupe->ju_server, jupe->ju_expire + TSoffset,
                       jupe->ju_reason);
-   log_write(LS_JUPE, L_INFO, LOG_NOSNOTICE,
--          "%#C activating JUPE for %s, expiring at %Tu: %s",sptr,
-+          "%s activating JUPE for %s, expiring at %Tu: %s", get_client_name_and_opername(sptr),
-           jupe->ju_server, jupe->ju_expire + TSoffset, jupe->ju_reason);
-   if (!(flags & JUPE_LOCAL)) /* don't propagate local changes */
-@@ -269,14 +269,14 @@
+@@ -264,7 +264,7 @@
    sendto_opmask_butone(0, SNO_NETWORK, "%s %s JUPE for %s, expiring at %Tu: "
                       "%s",
                         (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
@@ -188,32 +107,21 @@ diff -r 897950943d34 ircd/jupe.c
                           cli_name((cli_user(sptr))->server),
                       JupeIsLocal(jupe) ? "removing local" : "deactivating",
                       jupe->ju_server, jupe->ju_expire + TSoffset,
-                      jupe->ju_reason);
-   log_write(LS_JUPE, L_INFO, LOG_NOSNOTICE,
--          "%#C %s JUPE for %s, expiring at %Tu: %s", sptr,
-+          "%s %s JUPE for %s, expiring at %Tu: %s", get_client_name_and_opername(sptr),
-           JupeIsLocal(jupe) ? "removing local" : "deactivating",
-           jupe->ju_server, jupe->ju_expire + TSoffset, jupe->ju_reason);
-diff -r 897950943d34 ircd/m_connect.c
---- a/ircd/m_connect.c Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/m_connect.c Mon Jan 12 19:23:07 2009 +0100
-@@ -197,8 +197,9 @@
+diff -r bb8b6e2e3236 ircd/m_connect.c
+--- a/ircd/m_connect.c
++++ b/ircd/m_connect.c
+@@ -197,7 +197,7 @@
    sendwallto_group_butone(&me, WALL_WALLOPS, 0,
                         "Remote CONNECT %s %s from %s", aconf->name,
                        parv[2] ? parv[2] : "",
 -                      get_client_name(sptr, HIDE_IP));
--  log_write(LS_NETWORK, L_INFO, 0, "CONNECT From %C : %s %s", sptr, aconf->name,
 +                      get_client_name_and_opername(sptr));
-+  log_write(LS_NETWORK, L_INFO, 0, "CONNECT From %s : %s %s",
-+            get_client_name_and_opername(sptr), aconf->name,
+   log_write(LS_NETWORK, L_INFO, 0, "CONNECT From %C : %s %s", sptr, aconf->name,
            parv[2] ? parv[2] : "");
  
-   if (connect_server(aconf, sptr)) {
-diff -r 897950943d34 ircd/m_join.c
---- a/ircd/m_join.c    Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/m_join.c    Mon Jan 12 19:23:07 2009 +0100
+diff -r bb8b6e2e3236 ircd/m_join.c
+--- a/ircd/m_join.c
++++ b/ircd/m_join.c
 @@ -242,8 +242,8 @@
          }
          /* send accountability notice */
@@ -225,9 +133,36 @@ diff -r 897950943d34 ircd/m_join.c
          err = 0;
        }
  
-diff -r 897950943d34 ircd/m_kill.c
---- a/ircd/m_kill.c    Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/m_kill.c    Mon Jan 12 19:23:07 2009 +0100
+diff -r bb8b6e2e3236 ircd/m_jupe.c
+--- a/ircd/m_jupe.c
++++ b/ircd/m_jupe.c
+@@ -193,7 +193,7 @@
+   struct Jupe *ajupe;
+   unsigned int flags = 0;
+   time_t expire_off;
+-  char *server = parv[1], *target = 0, *reason;
++  char *server = parv[1], *target = 0, reason[BUFSIZE];
+   if (parc < 2) {
+     if (!HasPriv(sptr, PRIV_ROUTEINFO))
+@@ -214,12 +214,12 @@
+   if (parc == 4) {
+     expire_off = atoi(parv[2]);
+-    reason = parv[3];
++    ircd_snprintf(0, reason, sizeof(reason), "%s: %s", cli_user(sptr)->opername, parv[3]);
+     flags |= JUPE_LOCAL;
+   } else if (parc > 4) {
+     target = parv[2];
+     expire_off = atoi(parv[3]);
+-    reason = parv[4];
++    ircd_snprintf(0, reason, sizeof(reason), "%s: %s", cli_user(sptr)->opername, parv[4]);
+   } else
+     return need_more_params(sptr, "JUPE");
+diff -r bb8b6e2e3236 ircd/m_kill.c
+--- a/ircd/m_kill.c
++++ b/ircd/m_kill.c
 @@ -127,7 +127,7 @@
     */
    sendto_opmask_butone(0, snomask,
@@ -237,10 +172,26 @@ diff -r 897950943d34 ircd/m_kill.c
                         inpath, path, msg);
    log_write_kill(victim, sptr, inpath, path, msg);
  
-diff -r 897950943d34 ircd/m_rehash.c
---- a/ircd/m_rehash.c  Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/m_rehash.c  Mon Jan 12 19:23:07 2009 +0100
-@@ -121,10 +121,10 @@
+diff -r bb8b6e2e3236 ircd/m_oper.c
+--- a/ircd/m_oper.c
++++ b/ircd/m_oper.c
+@@ -192,9 +192,9 @@
+     send_umode_out(cptr, sptr, &old_mode, HasPriv(sptr, PRIV_PROPAGATE));
+     send_reply(sptr, RPL_YOUREOPER);
+-    sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is now operator (%c) as %s",
+-                       parv[0], cli_user(sptr)->realusername, cli_sockhost(sptr),
+-                       IsOper(sptr) ? 'O' : 'o', cli_user(sptr)->opername);
++    sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is now operator (%c)",
++                       get_client_name_and_opername(sptr), cli_user(sptr)->realusername, cli_sockhost(sptr),
++                       IsOper(sptr) ? 'O' : 'o');
+     log_write(LS_OPER, L_INFO, 0, "OPER (%s) by (%#R)", name, sptr);
+   }
+diff -r bb8b6e2e3236 ircd/m_rehash.c
+--- a/ircd/m_rehash.c
++++ b/ircd/m_rehash.c
+@@ -121,8 +121,8 @@
    }
  
    send_reply(sptr, RPL_REHASHING, configfile);
@@ -249,14 +200,11 @@ diff -r 897950943d34 ircd/m_rehash.c
 +  sendto_opmask_butone(0, SNO_OLDSNO, "%s is rehashing Server config file",
 +                     get_client_name_and_opername(sptr));
  
--  log_write(LS_SYSTEM, L_INFO, 0, "REHASH From %#C", sptr);
-+  log_write(LS_SYSTEM, L_INFO, 0, "REHASH From %s", get_client_name_and_opername(sptr));
+   log_write(LS_SYSTEM, L_INFO, 0, "REHASH From %#C", sptr);
  
-   return rehash(cptr, flag);
- }
-diff -r 897950943d34 ircd/m_settime.c
---- a/ircd/m_settime.c Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/m_settime.c Mon Jan 12 19:23:07 2009 +0100
+diff -r bb8b6e2e3236 ircd/m_settime.c
+--- a/ircd/m_settime.c
++++ b/ircd/m_settime.c
 @@ -177,7 +177,7 @@
    else /* tell opers about time change */
    {
@@ -275,16 +223,13 @@ diff -r 897950943d34 ircd/m_settime.c
                         (dt < 0) ? "forwards" : "backwards");
      TSoffset -= dt; /* apply time change */
      if (IsUser(sptr)) /* let user know what we did */
-diff -r 897950943d34 ircd/s_misc.c
---- a/ircd/s_misc.c    Mon Jan 12 18:45:19 2009 +0100
-+++ b/ircd/s_misc.c    Mon Jan 12 19:23:07 2009 +0100
-@@ -169,6 +169,20 @@
-   ircd_snprintf(0, nbuf, sizeof(nbuf), "%s[%s@%s]", cli_name(sptr),
-                 IsIdented(sptr) ? cli_username(sptr) : "",
-                 cli_sock_ip(sptr));
-+  return nbuf;
-+}
-+
+diff -r bb8b6e2e3236 ircd/s_misc.c
+--- a/ircd/s_misc.c
++++ b/ircd/s_misc.c
+@@ -172,6 +172,20 @@
+   return nbuf;
+ }
 +/** Return the name of the client and the opername for accountability purposes
 + * in snomask and other places.
 + * @param sptr Client to operate on.
@@ -296,9 +241,12 @@ diff -r 897950943d34 ircd/s_misc.c
 +  if (!IsUser(sptr) || !cli_user(sptr)->opername)
 +    return cli_name(sptr);
 +  ircd_snprintf(0, nbuf, sizeof(nbuf), "%s(%s)", cli_name(sptr), cli_user(sptr)->opername);
-   return nbuf;
- }
++  return nbuf;
++}
++
+ /**
+  * Exit one client, local or remote. Assuming for local client that
+  * all dependents already have been removed, and socket is closed.
 @@ -474,7 +488,7 @@
                           (cli_user(killer)->server == victim ||
                            cli_user(killer)->server == cli_serv(victim)->up) ?
@@ -308,3 +256,50 @@ diff -r 897950943d34 ircd/s_misc.c
                           cli_name(cli_user(killer)->server));
      else if (killer != &me && cli_serv(victim)->up != killer)
        sendto_opmask_butone(0, SNO_OLDSNO, "Received SQUIT %s from %s :",
+diff -r bb8b6e2e3236 ircd/s_user.c
+--- a/ircd/s_user.c
++++ b/ircd/s_user.c
+@@ -1530,9 +1530,9 @@
+       /* notify my operators a user has OPERed on a remote server */
+       if (!MyConnect(sptr)) {
+-         sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is now operator (O) as %s on %s",
+-         cli_name(sptr), cli_user(sptr)->realusername, cli_user(sptr)->realhost,
+-         cli_user(sptr)->opername ? cli_user(sptr)->opername : "<unknown>", cli_name(cli_user(sptr)->server));
++         sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is now operator (O) on %s",
++         get_client_name_and_opername(sptr), cli_user(sptr)->realusername, cli_user(sptr)->realhost,
++         cli_name(cli_user(sptr)->server));
+       }
+                        
+     }
+@@ -1545,9 +1545,8 @@
+     if (FlagHas(&setflags, FLAG_LOCOP) && !IsLocOp(sptr)) {
+       /* notify my operators a local operator has deOPERed */
+-      sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is no longer operator (o) as %s",
+-        cli_name(sptr), cli_user(sptr)->realusername, cli_sockhost(sptr),
+-        cli_user(sptr)->opername);
++      sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is no longer operator (o)",
++        get_client_name_and_opername(sptr), cli_user(sptr)->realusername, cli_sockhost(sptr));
+     }
+     if (FlagHas(&setflags, FLAG_OPER) && !IsOper(sptr)) {
+@@ -1557,13 +1556,12 @@
+       
+       /* notify my operators an operator has deOPERed on the network */
+       if (MyConnect(sptr)) {
+-        sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is no longer operator (O) as %s",
+-          cli_name(sptr), cli_user(sptr)->realusername, cli_sockhost(sptr),
+-          cli_user(sptr)->opername ? cli_user(sptr)->opername : "<unknown>");
++        sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is no longer operator (O)",
++          get_client_name_and_opername(sptr), cli_user(sptr)->realusername, cli_sockhost(sptr));
+       } else {
+-        sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is no longer operator (O) as %s on %s",
+-          cli_name(sptr), cli_user(sptr)->realusername, cli_user(sptr)->realhost,
+-          cli_user(sptr)->opername ? cli_user(sptr)->opername : "<unknown>", cli_name(cli_user(sptr)->server));
++        sendto_opmask_butone(0, SNO_OLDSNO, "%s (%s@%s) is no longer operator (O) on %s",
++          get_client_name_and_opername(sptr), cli_user(sptr)->realusername, cli_user(sptr)->realhost,
++          cli_name(cli_user(sptr)->server));
+       }
+       
+       client_set_privs(sptr, NULL); /* will clear propagate privilege */