X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fconn-func.c;h=72d38b8621ff559c9c93903989e7c091b018be79;hb=22cae1b5fc6779a1d74a5ca10ba6c8af45028e98;hp=b56e0f0742fb5298f5d53bac0583c40a52b02873;hpb=139f5961a078dfd23a469d98c3942f42595854aa;p=ngircd-alex.git diff --git a/src/ngircd/conn-func.c b/src/ngircd/conn-func.c index b56e0f07..72d38b86 100644 --- a/src/ngircd/conn-func.c +++ b/src/ngircd/conn-func.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2008 Alexander Barton (alex@barton.de) + * Copyright (c)2001-2018 Alexander Barton (alex@barton.de) and Contributors. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,18 +18,17 @@ * Connection management: Global functions */ -#include "imp.h" #include -#include -#include "log.h" +#include +#ifdef DEBUG +# include "log.h" +#endif #include "conn.h" -#include "client.h" -#include "exp.h" +#include "conf.h" #include "conn-func.h" - /** * Update "idle timestamp", the time of the last visible user action * (e. g. like sending messages, joining or leaving channels). @@ -73,7 +72,6 @@ Conn_GetIdle( CONN_ID Idx ) return time( NULL ) - My_Connections[Idx].lastprivmsg; } /* Conn_GetIdle */ - GLOBAL time_t Conn_LastPing( CONN_ID Idx ) { @@ -81,7 +79,6 @@ Conn_LastPing( CONN_ID Idx ) return My_Connections[Idx].lastping; } /* Conn_LastPing */ - /** * Add "penalty time" for a connection. * @@ -89,7 +86,7 @@ Conn_LastPing( CONN_ID Idx ) * is read. This function only increases the penalty, it is not possible to * decrease the penalty time. * - * @param Idex Connection index. + * @param Idx Connection index. * @param Seconds Seconds to add. * @see Conn_ResetPenalty */ @@ -101,6 +98,14 @@ Conn_SetPenalty(CONN_ID Idx, time_t Seconds) assert(Idx > NONE); assert(Seconds >= 0); + /* Limit new penalty to maximum configured, when less than 10 seconds. * + The latter is used to limit brute force attacks, therefore we don't * + want to limit that! */ + if (Conf_MaxPenaltyTime >= 0 + && Seconds > Conf_MaxPenaltyTime + && Seconds < 10) + Seconds = Conf_MaxPenaltyTime; + t = time(NULL); if (My_Connections[Idx].delaytime < t) My_Connections[Idx].delaytime = t; @@ -116,7 +121,6 @@ Conn_SetPenalty(CONN_ID Idx, time_t Seconds) #endif } /* Conn_SetPenalty */ - GLOBAL void Conn_ClearFlags( void ) { @@ -125,7 +129,6 @@ Conn_ClearFlags( void ) for( i = 0; i < Pool_Size; i++ ) My_Connections[i].flag = 0; } /* Conn_ClearFlags */ - GLOBAL int Conn_Flag( CONN_ID Idx ) { @@ -133,7 +136,6 @@ Conn_Flag( CONN_ID Idx ) return My_Connections[Idx].flag; } /* Conn_Flag */ - GLOBAL void Conn_SetFlag( CONN_ID Idx, int Flag ) { @@ -141,12 +143,11 @@ Conn_SetFlag( CONN_ID Idx, int Flag ) My_Connections[Idx].flag = Flag; } /* Conn_SetFlag */ - GLOBAL CONN_ID Conn_First( void ) { CONN_ID i; - + for( i = 0; i < Pool_Size; i++ ) { if( My_Connections[i].sock != NONE ) return i; @@ -154,14 +155,13 @@ Conn_First( void ) return NONE; } /* Conn_First */ - GLOBAL CONN_ID Conn_Next( CONN_ID Idx ) { CONN_ID i = NONE; assert( Idx > NONE ); - + for( i = Idx + 1; i < Pool_Size; i++ ) { if( My_Connections[i].sock != NONE ) return i; @@ -169,7 +169,6 @@ Conn_Next( CONN_ID Idx ) return NONE; } /* Conn_Next */ - GLOBAL UINT16 Conn_Options( CONN_ID Idx ) { @@ -177,7 +176,6 @@ Conn_Options( CONN_ID Idx ) return My_Connections[Idx].options; } /* Conn_Options */ - /** * Set connection option. */ @@ -188,7 +186,6 @@ Conn_SetOption(CONN_ID Idx, int Option) Conn_OPTION_ADD(&My_Connections[Idx], Option); } /* Conn_SetOption */ - /** * Get the start time of the connection. * The result is the start time in seconds since 1970-01-01, as reported @@ -224,7 +221,6 @@ Conn_SendQ( CONN_ID Idx ) return array_bytes(&My_Connections[Idx].wbuf); } /* Conn_SendQ */ - /** * return number of messages sent on this connection so far */ @@ -236,7 +232,6 @@ Conn_SendMsg( CONN_ID Idx ) return My_Connections[Idx].msg_out; } /* Conn_SendMsg */ - /** * return number of (uncompressed) bytes sent * on this connection so far @@ -248,7 +243,6 @@ Conn_SendBytes( CONN_ID Idx ) return My_Connections[Idx].bytes_out; } /* Conn_SendBytes */ - /** * return number of bytes pending in read buffer */ @@ -264,7 +258,6 @@ Conn_RecvQ( CONN_ID Idx ) return array_bytes(&My_Connections[Idx].rbuf); } /* Conn_RecvQ */ - /** * return number of messages received on this connection so far */ @@ -275,7 +268,6 @@ Conn_RecvMsg( CONN_ID Idx ) return My_Connections[Idx].msg_in; } /* Conn_RecvMsg */ - /** * return number of (uncompressed) bytes received on this * connection so far @@ -297,19 +289,16 @@ Conn_IPA(CONN_ID Idx) return ng_ipaddr_tostr(&My_Connections[Idx].addr); } - GLOBAL void Conn_ResetWCounter( void ) { WCounter = 0; } /* Conn_ResetWCounter */ - GLOBAL long Conn_WCounter( void ) { return WCounter; } /* Conn_WCounter */ - /* -eof- */