Allow last account mask to be deleted with odelmask.
authorMichael Poole <mdpoole@troilus.org>
Sat, 23 Dec 2006 05:50:25 +0000 (05:50 +0000)
committerMichael Poole <mdpoole@troilus.org>
Sat, 23 Dec 2006 05:50:25 +0000 (05:50 +0000)
src/nickserv.c (nickserv_delmask): Add parameter to distinguish between
    normal and override use.
  (cmd_delmask): Pass the new argument.
  (cmd_odelmask): Likewise.
git-archimport-id: srvx@srvx.net--2006/srvx--devo--1.3--patch-78

ChangeLog
src/nickserv.c

index fc7f62679e195798e88c7d9f2216423cd7faddd7..aa719b9c95393adac70f97a596712d0374cc6c5b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,22 @@
 # arch-tag: automatic-ChangeLog--srvx@srvx.net--2006/srvx--devo--1.3
 #
 
+2006-12-23 05:50:25 GMT        Michael Poole <mdpoole@troilus.org>     patch-78
+
+    Summary:
+      Allow last account mask to be deleted with odelmask.
+    Revision:
+      srvx--devo--1.3--patch-78
+
+    src/nickserv.c (nickserv_delmask): Add parameter to distinguish between
+        normal and override use.
+      (cmd_delmask): Pass the new argument.
+      (cmd_odelmask): Likewise.
+
+    modified files:
+     ChangeLog src/nickserv.c
+
+
 2006-12-23 05:40:12 GMT        Michael Poole <mdpoole@troilus.org>     patch-77
 
     Summary:
index 95085006a4874ea9cf590a8b347f93dd1a0f50a6..39428a031c7eaccb056730195454781025362bf2 100644 (file)
@@ -1985,13 +1985,13 @@ static NICKSERV_FUNC(cmd_oaddmask)
 }
 
 static int
-nickserv_delmask(struct userNode *user, struct handle_info *hi, const char *del_mask)
+nickserv_delmask(struct userNode *user, struct handle_info *hi, const char *del_mask, int force)
 {
     unsigned int i;
     for (i=0; i<hi->masks->used; i++) {
        if (!strcmp(del_mask, hi->masks->list[i])) {
            char *old_mask = hi->masks->list[i];
-           if (hi->masks->used == 1) {
+           if (hi->masks->used == 1 && !force) {
                send_message(user, nickserv, "NSMSG_DELMASK_NOTLAST");
                return 0;
            }
@@ -2008,7 +2008,7 @@ nickserv_delmask(struct userNode *user, struct handle_info *hi, const char *del_
 static NICKSERV_FUNC(cmd_delmask)
 {
     NICKSERV_MIN_PARMS(2);
-    return nickserv_delmask(user, user->handle_info, argv[1]);
+    return nickserv_delmask(user, user->handle_info, argv[1], 0);
 }
 
 static NICKSERV_FUNC(cmd_odelmask)
@@ -2017,7 +2017,7 @@ static NICKSERV_FUNC(cmd_odelmask)
     NICKSERV_MIN_PARMS(3);
     if (!(hi = get_victim_oper(user, argv[1])))
         return 0;
-    return nickserv_delmask(user, hi, argv[2]);
+    return nickserv_delmask(user, hi, argv[2], 1);
 }
 
 int