#include "msg.h"
#include "reject.h"
#include "sslproc.h"
+#include "irc_dictionary.h"
#ifndef INADDR_NONE
#define INADDR_NONE ((unsigned int) 0xffffffff)
char *t;
int tlen, mlen;
int cur_len = 0;
+ struct Metadata *md;
+ struct DictionaryIter iter;
hclientinfo.client = hchaninfo.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))
use_id(target_p), target_p->user->suser);
}
+ DICTIONARY_FOREACH(md, &iter, target_p->user->metadata)
+ {
+ sendto_one(client_p, ":%s ENCAP * METADATA ADD %s %s :%s",
+ use_id(&me), 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),
msptr = uptr->data;
tlen = strlen(use_id(msptr->client_p)) + 1;
+ if(is_admin(msptr))
+ tlen++;
if(is_chanop(msptr))
tlen++;
+ if(is_halfop(msptr))
+ tlen++;
if(is_voiced(msptr))
tlen++;
}
sendto_one(client_p, "%s", buf);
+ DICTIONARY_FOREACH(md, &iter, chptr->metadata)
+ {
+ /* don't bother bursting +J metadata */
+ if(!(md->name[0] == 'K'))
+ sendto_one(client_p, ":%s ENCAP * METADATA ADD %s %s :%s",
+ use_id(&me), chptr->chname, md->name, md->value);
+ }
+
if(rb_dlink_list_length(&chptr->banlist) > 0)
burst_modes_TS6(client_p, chptr, &chptr->banlist, 'b');