X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/54656d7650e3559c37fc3630bd73b3cbe443f05f..fb87421d0e13c6e62a7c7a62a597e3b53ef772ed:/src/s_serv.c diff --git a/src/s_serv.c b/src/s_serv.c index a43c60c..e66c021 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -54,6 +54,7 @@ #include "msg.h" #include "reject.h" #include "sslproc.h" +#include "irc_dictionary.h" #ifndef INADDR_NONE #define INADDR_NONE ((unsigned int) 0xffffffff) @@ -469,6 +470,8 @@ burst_TS6(struct Client *client_p) char *t; int tlen, mlen; int cur_len = 0; + struct Metadata *md; + struct DictionaryIter iter; hclientinfo.client = hchaninfo.client = client_p; @@ -520,6 +523,12 @@ burst_TS6(struct Client *client_p) use_id(target_p), target_p->user->suser); } + DICTIONARY_FOREACH(md, &iter, target_p->user->metadata) + { + sendto_one(client_p, ":%s ENCAP * METADATA %s %s :%s", + use_id(target_p), use_id(target_p), md->name, md->value); + } + if(ConfigFileEntry.burst_away && !EmptyString(target_p->user->away)) sendto_one(client_p, ":%s AWAY :%s", use_id(target_p), @@ -547,8 +556,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++;