]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/irc-oper.c
Remove imp.h and exp.h header files
[ngircd-alex.git] / src / ngircd / irc-oper.c
index 4ccc76a6d830fdc66ead9139ad316687ea2b050e..1a2150f175bfd6e009c641e61176f5b7f758a0db 100644 (file)
@@ -16,7 +16,6 @@
  * IRC operator commands
  */
 
-#include "imp.h"
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -38,7 +37,6 @@
 #include "messages.h"
 #include "op.h"
 
-#include <exp.h>
 #include "irc-oper.h"
 
 /**
 static bool
 Bad_OperPass(CLIENT *Client, char *errtoken, char *errmsg)
 {
-       Log(LOG_WARNING, "Got invalid OPER from \"%s\": \"%s\" -- %s",
+       Log(LOG_WARNING, "Got invalid OPER from \"%s\": \"%s\" -- %s!",
            Client_Mask(Client), errtoken, errmsg);
-       return IRC_WriteErrClient(Client, ERR_PASSWDMISMATCH_MSG,
+       /* Increase penalty to slow down possible brute force attacks */
+       IRC_SetPenalty(Client, 10);
+       return IRC_WriteStrClient(Client, ERR_PASSWDMISMATCH_MSG,
                                  Client_ID(Client));
 } /* Bad_OperPass */
 
@@ -208,18 +208,14 @@ IRC_CONNECT(CLIENT * Client, REQUEST * Req)
 
        /* Bad number of parameters? */
        if (Req->argc != 1 && Req->argc != 2 && Req->argc != 3 &&
-           Req->argc != 5 && Req->argc != 6) {
-               IRC_SetPenalty(Client, 2);
+           Req->argc != 5 && Req->argc != 6)
                return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
                                          Client_ID(Client), Req->command);
-       }
 
        /* Invalid port number? */
-       if ((Req->argc > 1) && atoi(Req->argv[1]) < 1) {
-               IRC_SetPenalty(Client, 2);
+       if ((Req->argc > 1) && atoi(Req->argv[1]) < 1)
                return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
                                          Client_ID(Client), Req->command);
-       }
 
        if (Client_Type(Client) != CLIENT_SERVER
            && !Client_HasMode(Client, 'o'))
@@ -389,17 +385,16 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
        CLIENT *from, *c, *c_next;
        char reason[COMMAND_LEN], class_c;
        struct list_head *list;
+       time_t timeout;
        int class;
 
        assert(Client != NULL);
        assert(Req != NULL);
 
        /* Bad number of parameters? */
-       if (Req->argc != 1 && Req->argc != 3) {
-               IRC_SetPenalty(Client, 2);
+       if (Req->argc != 1 && Req->argc != 3)
                return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
                                          Client_ID(Client), Req->command);
-       }
 
        from = Op_Check(Client, Req);
        if (!from)
@@ -435,8 +430,11 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
                }
        } else {
                /* Add new mask to list */
+               timeout = atol(Req->argv[1]);
+               if (timeout > 0)
+                       timeout += time(NULL);
                if (Class_AddMask(class, Req->argv[0],
-                                 time(NULL) + atol(Req->argv[1]),
+                                 timeout,
                                  Req->argv[2])) {
                        Log(LOG_NOTICE|LOG_snotice,
                            "\"%s\" added \"%s\" to %c-Line list: \"%s\" (%ld seconds).",