From 756d11ce2c24ed4cdd68a7f43219e3bbb68181eb Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Mon, 15 Feb 2010 16:00:28 -0500 Subject: [PATCH] Add email argument to oregister Conflicts: src/nickserv.help --- src/nickserv.c | 25 +++++++++++++++++++++++-- src/nickserv.help | 20 ++++++++++++++++---- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/nickserv.c b/src/nickserv.c index 0fe8227..a48565d 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -1300,15 +1300,34 @@ static NICKSERV_FUNC(cmd_oregister) char *mask; struct userNode *settee; struct handle_info *hi; + const char *pass, *email; NICKSERV_MIN_PARMS(3); + pass = argv[2]; + argv[2] = "****"; + if (!is_valid_handle(argv[1])) { reply("NSMSG_BAD_HANDLE", argv[1]); return 0; } - if (argc < 4) { + if (argc < 5 || !nickserv_conf.email_enabled) { + email = NULL; + } else { + const char *str; + email = argv[4]; + if (!is_valid_email_addr(email)) { + send_message(user, nickserv, "NSMSG_BAD_EMAIL_ADDR"); + return 0; + } + if ((str = mail_prohibited_address(email))) { + send_message(user, nickserv, "NSMSG_EMAIL_PROHIBITED", email, str); + return 0; + } + } + + if (argc < 4 || !strcmp(argv[3], "*")) { mask = NULL; settee = NULL; } else if (strchr(argv[3], '@')) { @@ -1334,12 +1353,14 @@ static NICKSERV_FUNC(cmd_oregister) free(mask); return 0; } - if (!(hi = nickserv_register(user, settee, argv[1], argv[2], 0))) { + if (!(hi = nickserv_register(user, settee, argv[1], pass, 0))) { free(mask); return 0; } if (mask) string_list_append(hi->masks, mask); + if (email) + nickserv_set_email_addr(hi, email); return 1; } diff --git a/src/nickserv.help b/src/nickserv.help index cee38d8..81db93d 100644 --- a/src/nickserv.help +++ b/src/nickserv.help @@ -309,13 +309,25 @@ "You may use *Account instead of Nick as the name argument; the * makes $N use the name of an account directly (useful if the user is not online).", "$uSee Also:$u oaddmask"); "OREGISTER" { - "/services/nickserv/disable_nicks" ( - "/msg $N@$s OREGISTER ", + "/services/nickserv/email_enabled && /services/nickserv/disable_nicks" ( + "/msg $N@$s OREGISTER [user@host|nick|*] [email]", "Registers an account with $b$N$b using the specified account, password, and user@host. If the nick of an online user is specified, then that user's user@host is used. If no nickname or hostmask is used, it uses a default hostmask the first time the user authenticates.", + "If an email is specified, the account will only be registered if the email is valid and not blacklisted and after registering, the email will be set on the account.", "$uSee Also:$u ounregister" ); - "!/services/nickserv/disable_nicks" ( - "/msg $N@$s OREGISTER ", + "/services/nickserv/email_enabled && !/services/nickserv/disable_nicks" ( + "/msg $N@$s OREGISTER [user@host|nick|*] [email]", + "Registers an account with $b$N$b using the specified account, password, and user@host. If the nick of an online user is specified, then that user's user@host is used. If no nickname or hostmask is used, it uses a default hostmask the first time the user authenticates.", + "If an email is specified, the account will only be registered if the email is valid and not blacklisted and after registering, the email will be set on the account.", + "$uSee Also:$u oregnick, ounregister, ounregnick" + ); + "!/services/nickserv/email_enabled && /services/nickserv/disable_nicks" ( + "/msg $N@$s OREGISTER [user@host|nick|*]", + "Registers an account with $b$N$b using the specified account, password, and user@host. If the nick of an online user is specified, then that user's user@host is used. If no nickname or hostmask is used, it uses a default hostmask the first time the user authenticates.", + "$uSee Also:$u ounregister" + ); + "!/services/nickserv/email_enabled && !/services/nickserv/disable_nicks" ( + "/msg $N@$s OREGISTER [user@host|nick|*]", "Registers an account with $b$N$b using the specified account, password, and user@host. If the nick of an online user is specified, then that user's user@host is used. If no nickname or hostmask is used, it uses a default hostmask the first time the user authenticates.", "$uSee Also:$u oregnick, ounregister, ounregnick" ); -- 2.20.1