From 56e7ca23435fdc0f3ba6d323b1b8e117a6de4aeb Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Mon, 7 Aug 2006 03:11:10 +0000 Subject: [PATCH] Require confirmation cookie for giveownership. src/chanserv.c (CSMSG_CONFIRM_GIVEOWNERSHIP): New translation string. (cmd_giveownership): Fail for non-force unconfirmed giveownerships. git-archimport-id: srvx@srvx.net--2006/srvx--devo--1.3--patch-23 --- ChangeLog | 14 ++++++++++++++ src/chanserv.c | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9d9f54e..5f25c67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,20 @@ # arch-tag: automatic-ChangeLog--srvx@srvx.net--2006/srvx--devo--1.3 # +2006-08-07 03:11:10 GMT Michael Poole patch-23 + + Summary: + Require confirmation cookie for giveownership. + Revision: + srvx--devo--1.3--patch-23 + + src/chanserv.c (CSMSG_CONFIRM_GIVEOWNERSHIP): New translation string. + (cmd_giveownership): Fail for non-force unconfirmed giveownerships. + + modified files: + ChangeLog src/chanserv.c + + 2006-07-29 01:36:39 GMT Michael Poole patch-22 Summary: diff --git a/src/chanserv.c b/src/chanserv.c index cdee6db..93acc37 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -197,6 +197,7 @@ static const struct message_entry msgtab[] = { { "CSMSG_MULTIPLE_OWNERS", "There is more than one owner in %s; please use $bCLVL$b, $bDELOWNER$b and/or $bADDOWNER$b instead." }, { "CSMSG_TRANSFER_WAIT", "You must wait %s before you can give ownership of $b%s$b to someone else." }, { "CSMSG_NO_TRANSFER_SELF", "You cannot give ownership to your own account." }, + { "CSMSG_CONFIRM_GIVEOWNERSHIP", "To really give ownership to $b%1$s$b, you must use 'giveownership %1$s %2$s'." }, { "CSMSG_OWNERSHIP_GIVEN", "Ownership of $b%s$b has been transferred to account $b%s$b." }, /* Ban management */ @@ -5499,6 +5500,7 @@ static CHANSERV_FUNC(cmd_giveownership) struct userData *new_owner, *curr_user; struct chanData *cData = channel->channel_info; struct do_not_register *dnr; + const char *confirm; unsigned int force; unsigned short co_access; char reason[MAXLEN]; @@ -5563,6 +5565,12 @@ static CHANSERV_FUNC(cmd_giveownership) chanserv_show_dnrs(user, cmd, NULL, new_owner_hi->handle); return 0; } + confirm = make_confirmation_string(curr_user); + if(!force && ((argc < 3) || strcmp(argv[2], confirm))) + { + reply("CSMSG_CONFIRM_GIVEOWNERSHIP", new_owner_hi->handle, confirm); + return 0; + } if(new_owner->access >= UL_COOWNER) co_access = new_owner->access; else -- 2.20.1