X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/2125182293262c2b32b7f3796b37b4b588b89484..ea41b24fd4807e3565bf5f8f293e2efc4c20b62d:/modules/m_user.c diff --git a/modules/m_user.c b/modules/m_user.c index 16fa9fc2..fc657c9b 100644 --- a/modules/m_user.c +++ b/modules/m_user.c @@ -20,8 +20,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA - * - * $Id: m_user.c 3416 2007-04-15 20:18:54Z jilles $ */ #include "stdinc.h" @@ -35,21 +33,23 @@ #include "msg.h" #include "parse.h" #include "modules.h" -#include "blacklist.h" #include "s_assert.h" -static int mr_user(struct Client *, struct Client *, int, const char **); +static const char user_desc[] = + "Provides the USER command to register a new connection"; + +static void mr_user(struct MsgBuf *, struct Client *, struct Client *, int, const char **); struct Message user_msgtab = { - "USER", 0, 0, 0, MFLG_SLOW, + "USER", 0, 0, 0, 0, {{mr_user, 5}, mg_reg, mg_ignore, mg_ignore, mg_ignore, mg_reg} }; mapi_clist_av1 user_clist[] = { &user_msgtab, NULL }; -DECLARE_MODULE_AV1(user, NULL, NULL, user_clist, NULL, NULL, "$Revision: 3416 $"); +DECLARE_MODULE_AV2(user, NULL, NULL, user_clist, NULL, NULL, NULL, NULL, user_desc); -static int do_local_user(struct Client *client_p, struct Client *source_p, - const char *username, const char *realname); +static void do_local_user(struct Client *client_p, struct Client *source_p, + const char *username, const char *realname); /* mr_user() * parv[1] = username (login name, account) @@ -57,33 +57,32 @@ static int do_local_user(struct Client *client_p, struct Client *source_p, * parv[3] = server host name (ignored) * parv[4] = users gecos */ -static int -mr_user(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) +static void +mr_user(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { static char buf[BUFSIZE]; char *p; - if (strlen(client_p->id) == 3) + if (strlen(client_p->id) == 3 || (source_p->preClient && !EmptyString(source_p->preClient->id))) { exit_client(client_p, client_p, client_p, "Mixing client and server protocol"); - return 0; + return; } if(source_p->flags & FLAGS_SENTUSER) - return 0; + return; if((p = strchr(parv[1], '@'))) *p = '\0'; - rb_snprintf(buf, sizeof(buf), "%s %s", parv[2], parv[3]); + snprintf(buf, sizeof(buf), "%s %s", parv[2], parv[3]); rb_free(source_p->localClient->fullcaps); source_p->localClient->fullcaps = rb_strdup(buf); do_local_user(client_p, source_p, parv[1], parv[4]); - return 0; } -static int +static void do_local_user(struct Client *client_p, struct Client *source_p, const char *username, const char *realname) { @@ -92,7 +91,6 @@ do_local_user(struct Client *client_p, struct Client *source_p, make_user(source_p); - lookup_blacklists(source_p); source_p->flags |= FLAGS_SENTUSER; rb_strlcpy(source_p->info, realname, sizeof(source_p->info)); @@ -103,8 +101,6 @@ do_local_user(struct Client *client_p, struct Client *source_p, if(source_p->name[0]) { /* NICK already received, now I have USER... */ - return register_local_user(client_p, source_p); + register_local_user(client_p, source_p); } - - return 0; }