]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_serv.c
Don't discard self-oppings from remote override opers.
[irc/rqf/shadowircd.git] / src / s_serv.c
index 88fecddc97ed877e64e45285acf3a68e131bac27..0cd1369401dd1166f1653eef606571a00ed78b38 100644 (file)
@@ -474,8 +474,6 @@ burst_TS6(struct Client *client_p)
 
        RB_DLINK_FOREACH(ptr, global_client_list.head)
        {
-               const char *awaymsg = NULL;
-
                target_p = ptr->data;
 
                if(!IsPerson(target_p))
@@ -508,6 +506,10 @@ burst_TS6(struct Client *client_p)
                                   IsIPSpoof(target_p) ? "0" : target_p->sockhost,
                                   target_p->id, target_p->info);
 
+               if(!EmptyString(target_p->certfp))
+                       sendto_one(client_p, ":%s ENCAP * CERTFP :%s",
+                                       use_id(target_p), target_p->certfp);
+
                if(!IsCapable(client_p, CAP_EUID))
                {
                        if(IsDynSpoof(target_p))
@@ -518,10 +520,10 @@ burst_TS6(struct Client *client_p)
                                                use_id(target_p), target_p->user->suser);
                }
 
-               if(ConfigFileEntry.burst_away && (awaymsg = get_metadata(target_p, "away")) != NULL)
+               if(ConfigFileEntry.burst_away && !EmptyString(target_p->user->away))
                        sendto_one(client_p, ":%s AWAY :%s",
                                   use_id(target_p),
-                                  awaymsg);
+                                  target_p->user->away);
 
                hclientinfo.target = target_p;
                call_hook(h_burst_client, &hclientinfo);
@@ -545,8 +547,12 @@ burst_TS6(struct Client *client_p)
                        msptr = uptr->data;
 
                        tlen = strlen(use_id(msptr->client_p)) + 1;
+                       if(is_owner(msptr))
+                               tlen++;
                        if(is_chanop(msptr))
                                tlen++;
+                       if(is_halfop(msptr))
+                               tlen++;
                        if(is_voiced(msptr))
                                tlen++;