X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/212380e3f42f585dc1ea927402252eb943f91f7b..24170ac312f9e042993a5377ed82769f4ae74e55:/extensions/m_webirc.c diff --git a/extensions/m_webirc.c b/extensions/m_webirc.c index 58aa48d..1ddb634 100644 --- a/extensions/m_webirc.c +++ b/extensions/m_webirc.c @@ -21,21 +21,20 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: m_webirc.c 2757 2006-11-10 22:58:15Z jilles $ + * $Id: m_webirc.c 3458 2007-05-18 19:51:22Z jilles $ */ /* Usage: * auth { * user = "webirc@"; # if identd used, put ident username instead * password = ""; # encryption possible - * spoof = "webirc." + * spoof = "webirc."; * class = "users"; * }; * Possible flags: * encrypted - password is encrypted (recommended) - * kline_exempt - k/g lines on the cgiirc ip are ignored - * gline_exempt - glines on the cgiirc ip are ignored + * kline_exempt - klines on the cgiirc ip are ignored * dlines are checked on the cgiirc ip (of course). - * k/d/g/x lines, auth blocks, user limits, etc are checked using the + * k/d/x lines, auth blocks, user limits, etc are checked using the * real host/ip. * The password should be specified unencrypted in webirc_password in * cgiirc.config @@ -43,7 +42,7 @@ #include "stdinc.h" #include "client.h" /* client struct */ -#include "irc_string.h" +#include "match.h" #include "hostmask.h" #include "send.h" /* sendto_one */ #include "numeric.h" /* ERR_xxx */ @@ -54,12 +53,13 @@ #include "s_serv.h" #include "hash.h" #include "s_conf.h" +#include "reject.h" static int mr_webirc(struct Client *, struct Client *, int, const char **); struct Message webirc_msgtab = { "WEBIRC", 0, 0, 0, MFLG_SLOW | MFLG_UNREG, - {{mr_webirc, 4}, mg_reg, mg_ignore, mg_ignore, mg_ignore, mg_reg} + {{mr_webirc, 5}, mg_reg, mg_ignore, mg_ignore, mg_ignore, mg_reg} }; mapi_clist_av1 webirc_clist[] = { &webirc_msgtab, NULL }; @@ -67,7 +67,6 @@ DECLARE_MODULE_AV1(webirc, NULL, NULL, webirc_clist, NULL, NULL, "$Revision: 207 /* * mr_webirc - webirc message handler - * parv[0] = sender prefix * parv[1] = password * parv[2] = fake username (we ignore this) * parv[3] = fake hostname @@ -89,10 +88,10 @@ mr_webirc(struct Client *client_p, struct Client *source_p, int parc, const char IsGotId(client_p) ? client_p->username : "webirc", IsGotId(client_p) ? client_p->username : "webirc", (struct sockaddr *) &client_p->localClient->ip, - client_p->localClient->ip.ss_family); + client_p->localClient->ip.ss_family, NULL); if (aconf == NULL || !(aconf->status & CONF_CLIENT)) return 0; - if (!IsConfDoSpoofIp(aconf) || irccmp(aconf->name, "webirc.")) + if (!IsConfDoSpoofIp(aconf) || irccmp(aconf->info.name, "webirc.")) { /* XXX */ sendto_one(source_p, "NOTICE * :Not a CGI:IRC auth block"); @@ -107,7 +106,7 @@ mr_webirc(struct Client *client_p, struct Client *source_p, int parc, const char if (EmptyString(parv[1])) encr = ""; else if (IsConfEncrypted(aconf)) - encr = crypt(parv[1], aconf->passwd); + encr = rb_crypt(parv[1], aconf->passwd); else encr = parv[1]; @@ -118,16 +117,16 @@ mr_webirc(struct Client *client_p, struct Client *source_p, int parc, const char } - strlcpy(source_p->sockhost, parv[4], sizeof(source_p->sockhost)); + rb_strlcpy(source_p->sockhost, parv[4], sizeof(source_p->sockhost)); if(strlen(parv[3]) <= HOSTLEN) - strlcpy(source_p->host, parv[3], sizeof(source_p->host)); + rb_strlcpy(source_p->host, parv[3], sizeof(source_p->host)); else - strlcpy(source_p->host, source_p->sockhost, sizeof(source_p->host)); + rb_strlcpy(source_p->host, source_p->sockhost, sizeof(source_p->host)); - inetpton_sock(parv[4], (struct sockaddr *)&source_p->localClient->ip); + rb_inet_pton_sock(parv[4], (struct sockaddr *)&source_p->localClient->ip); - /* Check dlines now, k/glines will be checked on registration */ + /* Check dlines now, klines will be checked on registration */ if((aconf = find_dline((struct sockaddr *)&source_p->localClient->ip, source_p->localClient->ip.ss_family))) {