X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fconn.h;h=626a6e9b02a023b433d1def077968704f79920bf;hb=d4ed05614712c88d772c8be0201612a00256665c;hp=e9ca711dfac0b4d24477798844aaeef3398a6472;hpb=b77dae34999581f42b3a436abdbe35c777b64b98;p=ngircd-alex.git diff --git a/src/ngircd/conn.h b/src/ngircd/conn.h index e9ca711d..626a6e9b 100644 --- a/src/ngircd/conn.h +++ b/src/ngircd/conn.h @@ -8,7 +8,7 @@ * (at your option) any later version. * Please read the file COPYING, README and AUTHORS for more information. * - * $Id: conn.h,v 1.29 2002/12/30 17:14:59 alex Exp $ + * $Id: conn.h,v 1.45 2007/10/04 15:03:56 alex Exp $ * * Connection management (header) */ @@ -18,87 +18,84 @@ #define __conn_h__ -#include /* wg. time_t, s.u. */ +#include /* for time_t, see below */ -#ifdef USE_ZLIB -#define CONN_ZIP 4 /* Kompression mit zlib */ +#define CONN_ISCLOSING 1 /* Conn_Close() already called */ +#define CONN_ISCONNECTING 2 /* connect() in progress */ + +#ifdef ZLIB +#define CONN_ZIP 4 /* zlib compressed link */ #endif -typedef INT CONN_ID; +typedef int CONN_ID; +#include "client.h" #ifdef CONN_MODULE #include "defines.h" #include "resolve.h" +#include "array.h" -#ifdef USE_ZLIB +#ifdef ZLIB #include typedef struct _ZipData { z_stream in; /* "Handle" for input stream */ z_stream out; /* "Handle" for output stream */ - CHAR rbuf[READBUFFER_LEN]; /* Read buffer */ - INT rdatalen; /* Length of data in read buffer (compressed) */ - CHAR wbuf[WRITEBUFFER_LEN]; /* Write buffer */ - INT wdatalen; /* Length of data in write buffer (uncompressed) */ - LONG bytes_in, bytes_out; /* Counter for statistics (uncompressed!) */ + array rbuf; /* Read buffer (compressed) */ + array wbuf; /* Write buffer (uncompressed) */ + long bytes_in, bytes_out; /* Counter for statistics (uncompressed!) */ } ZIPDATA; -#endif /* USE_ZLIB */ +#endif /* ZLIB */ typedef struct _Connection { - INT sock; /* Socket handle */ + int sock; /* Socket handle */ struct sockaddr_in addr; /* Client address */ - RES_STAT *res_stat; /* Status of resolver process, if any */ - CHAR host[HOST_LEN]; /* Hostname */ - CHAR rbuf[READBUFFER_LEN]; /* Read buffer */ - INT rdatalen; /* Length of data in read buffer */ - CHAR wbuf[WRITEBUFFER_LEN]; /* Write buffer */ - INT wdatalen; /* Length of data in write buffer */ - time_t starttime; /* Start time of link */ + RES_STAT res_stat; /* Status of resolver process */ + char host[HOST_LEN]; /* Hostname */ + array rbuf; /* Read buffer */ + array wbuf; /* Write buffer */ + time_t signon; /* Signon ("connect") time */ time_t lastdata; /* Last activity */ time_t lastping; /* Last PING */ time_t lastprivmsg; /* Last PRIVMSG */ time_t delaytime; /* Ignore link ("penalty") */ - LONG bytes_in, bytes_out; /* Received and sent bytes */ - LONG msg_in, msg_out; /* Received and sent IRC messages */ - INT flag; /* Flag (see "irc-write" module) */ - INT options; /* Link options */ -#ifdef USE_ZLIB + long bytes_in, bytes_out; /* Received and sent bytes */ + long msg_in, msg_out; /* Received and sent IRC messages */ + int flag; /* Flag (see "irc-write" module) */ + UINT16 options; /* Link options / connection state */ + CLIENT *client; /* pointer to client structure */ +#ifdef ZLIB ZIPDATA zip; /* Compression information */ -#endif /* USE_ZLIB */ +#endif /* ZLIB */ } CONNECTION; GLOBAL CONNECTION *My_Connections; GLOBAL CONN_ID Pool_Size; -GLOBAL LONG WCounter; +GLOBAL long WCounter; #endif /* CONN_MODULE */ -GLOBAL VOID Conn_Init PARAMS((VOID )); -GLOBAL VOID Conn_Exit PARAMS(( VOID )); - -GLOBAL INT Conn_InitListeners PARAMS(( VOID )); -GLOBAL VOID Conn_ExitListeners PARAMS(( VOID )); - -GLOBAL BOOLEAN Conn_NewListener PARAMS(( CONST UINT Port )); +GLOBAL void Conn_Init PARAMS((void )); +GLOBAL void Conn_Exit PARAMS(( void )); -GLOBAL VOID Conn_Handler PARAMS(( VOID )); +GLOBAL unsigned int Conn_InitListeners PARAMS(( void )); +GLOBAL void Conn_ExitListeners PARAMS(( void )); -GLOBAL BOOLEAN Conn_Write PARAMS(( CONN_ID Idx, CHAR *Data, INT Len )); -GLOBAL BOOLEAN Conn_WriteStr PARAMS(( CONN_ID Idx, CHAR *Format, ... )); +GLOBAL void Conn_Handler PARAMS(( void )); -GLOBAL VOID Conn_Close PARAMS(( CONN_ID Idx, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN InformClient )); +GLOBAL bool Conn_WriteStr PARAMS(( CONN_ID Idx, char *Format, ... )); +GLOBAL void Conn_Close PARAMS(( CONN_ID Idx, char *LogMsg, char *FwdMsg, bool InformClient )); -GLOBAL INT Conn_MaxFD; - +GLOBAL void Conn_SyncServerStruct PARAMS(( void )); +GLOBAL CLIENT* Conn_GetClient PARAMS((CONN_ID i)); #endif - /* -eof- */