]> git.pond.sub.org Git - empserver/commitdiff
(kill_cmd): Add authority check for deities before allowing a kill.
authorRon Koenderink <rkoenderink@yahoo.ca>
Mon, 21 Nov 2005 18:35:08 +0000 (18:35 +0000)
committerRon Koenderink <rkoenderink@yahoo.ca>
Mon, 21 Nov 2005 18:35:08 +0000 (18:35 +0000)
Closes #1215088.  Add banned host check before allowing a kill.

src/lib/player/login.c

index a3b628dcc108aba94edf6fe7afc29fe5cceafc13..0e866d8b00b5a1433ad2f3d6ffbeaf751d28ba71 100644 (file)
@@ -316,11 +316,24 @@ static int
 kill_cmd(void)
 {
     struct player *other;
+    struct natstr *np;
 
     if (player->cnum == 255 || !player->validated) {
        pr_id(player, C_CMDERR, "need country and password\n");
        return RET_FAIL;
     }
+    if (match_user(banfil, player)) {
+       logerror("Attempted login by BANNED host %s", praddr(player));
+       pr_id(player, C_EXIT, "Your login has been banned from this game\n");
+       io_shutdown(player->iop, IO_READ);
+       return RET_FAIL;
+    }
+    np = getnatp(player->cnum);
+    if (np->nat_stat & STAT_GOD && !match_user(authfil, player)) {
+       logerror("NON-AUTHed Login attempted by %s", praddr(player));
+       pr_id(player, C_EXIT, "You're not a deity!\n");
+       return RET_FAIL;
+    }
     other = getplayer(player->cnum);
     if (!other) {
        pr_id(player, C_EXIT, "country not in use\n");