X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/48a038f4b53d6d9961dc0ce8cc215c511d40a1b9..b2c208be091670e3c5259eba77187bae6ac6eece:/modules/m_cap.c?ds=sidebyside diff --git a/modules/m_cap.c b/modules/m_cap.c index 5bf6eaea..7abfa9fe 100644 --- a/modules/m_cap.c +++ b/modules/m_cap.c @@ -31,10 +31,9 @@ */ #include "stdinc.h" -#include "tools.h" #include "class.h" #include "client.h" -#include "irc_string.h" +#include "match.h" #include "ircd.h" #include "numeric.h" #include "msg.h" @@ -70,7 +69,11 @@ static struct clicap int namelen; } clicap_list[] = { _CLICAP("multi-prefix", CLICAP_MULTI_PREFIX, 0, 0), - _CLICAP("sasl", CLICAP_SASL, 0, 0) + _CLICAP("sasl", CLICAP_SASL, 0, 0), + _CLICAP("account-notify", CLICAP_ACCOUNT_NOTIFY, 0, 0), + _CLICAP("extended-join", CLICAP_EXTENDED_JOIN, 0, 0), + _CLICAP("away-notify", CLICAP_AWAY_NOTIFY, 0, 0), + _CLICAP("tls", CLICAP_TLS, 0, 0), }; #define CLICAP_LIST_LEN (sizeof(clicap_list) / sizeof(struct clicap)) @@ -117,7 +120,7 @@ clicap_find(const char *data, int *negate, int *finished) if(data) { - strlcpy(buf, data, sizeof(buf)); + rb_strlcpy(buf, data, sizeof(buf)); p = buf; } @@ -175,9 +178,9 @@ clicap_generate(struct Client *source_p, const char *subcmd, int flags, int clea char *p; int buflen = 0; int curlen, mlen; - int i; + size_t i; - mlen = ircsprintf(buf, ":%s CAP %s %s", + mlen = rb_sprintf(buf, ":%s CAP %s %s", me.name, EmptyString(source_p->name) ? "*" : source_p->name, subcmd); @@ -251,7 +254,7 @@ clicap_generate(struct Client *source_p, const char *subcmd, int flags, int clea } } - curlen = ircsprintf(p, "%s ", clicap_list[i].name); + curlen = rb_sprintf(p, "%s ", clicap_list[i].name); p += curlen; buflen += curlen; } @@ -320,10 +323,10 @@ cap_end(struct Client *source_p, const char *arg) source_p->flags &= ~FLAGS_CLICAP; - if(source_p->name[0] && source_p->user) + if(source_p->name[0] && source_p->flags & FLAGS_SENTUSER) { char buf[USERLEN+1]; - strlcpy(buf, source_p->username, sizeof(buf)); + rb_strlcpy(buf, source_p->username, sizeof(buf)); register_local_user(source_p, source_p, buf); } } @@ -363,7 +366,7 @@ cap_req(struct Client *source_p, const char *arg) if(EmptyString(arg)) return; - buflen = ircsnprintf(buf, sizeof(buf), ":%s CAP %s ACK", + buflen = rb_snprintf(buf, sizeof(buf), ":%s CAP %s ACK", me.name, EmptyString(source_p->name) ? "*" : source_p->name); pbuf[0][0] = '\0';