- Reorganized code for new modules "conn-func.c" and "conn-func.h".
This commit is contained in:
parent
0b04bfa7c0
commit
b77dae3499
|
@ -14,12 +14,12 @@
|
|||
|
||||
#include "portab.h"
|
||||
|
||||
#define __conn_zip_c__
|
||||
#define CONN_MODULE
|
||||
|
||||
|
||||
#ifdef USE_ZLIB
|
||||
|
||||
static char UNUSED id[] = "$Id: conn-zip.c,v 1.1 2002/12/30 16:07:23 alex Exp $";
|
||||
static char UNUSED id[] = "$Id: conn-zip.c,v 1.2 2002/12/30 17:15:06 alex Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
|
@ -27,6 +27,7 @@ static char UNUSED id[] = "$Id: conn-zip.c,v 1.1 2002/12/30 16:07:23 alex Exp $"
|
|||
#include <zlib.h>
|
||||
|
||||
#include "conn.h"
|
||||
#include "conn-func.h"
|
||||
#include "log.h"
|
||||
|
||||
#include "exp.h"
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
*/
|
||||
|
||||
|
||||
#define __conn_c__
|
||||
#define CONN_MODULE
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: conn.c,v 1.112 2002/12/30 16:07:23 alex Exp $";
|
||||
static char UNUSED id[] = "$Id: conn.c,v 1.113 2002/12/30 17:14:59 alex Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
|
@ -54,6 +54,7 @@ static char UNUSED id[] = "$Id: conn.c,v 1.112 2002/12/30 16:07:23 alex Exp $";
|
|||
#include "client.h"
|
||||
#include "conf.h"
|
||||
#include "conn-zip.h"
|
||||
#include "conn-func.h"
|
||||
#include "log.h"
|
||||
#include "parse.h"
|
||||
#include "tool.h"
|
||||
|
@ -82,8 +83,6 @@ LOCAL fd_set My_Listeners;
|
|||
LOCAL fd_set My_Sockets;
|
||||
LOCAL fd_set My_Connects;
|
||||
|
||||
LOCAL LONG WCounter;
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_Init( VOID )
|
||||
|
@ -615,252 +614,6 @@ Conn_Close( CONN_ID Idx, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN InformClient )
|
|||
} /* Conn_Close */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_UpdateIdle( CONN_ID Idx )
|
||||
{
|
||||
/* Idle-Timer zuruecksetzen */
|
||||
|
||||
assert( Idx > NONE );
|
||||
My_Connections[Idx].lastprivmsg = time( NULL );
|
||||
}
|
||||
|
||||
|
||||
GLOBAL time_t
|
||||
Conn_GetIdle( CONN_ID Idx )
|
||||
{
|
||||
/* Idle-Time einer Verbindung liefern (in Sekunden) */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return time( NULL ) - My_Connections[Idx].lastprivmsg;
|
||||
} /* Conn_GetIdle */
|
||||
|
||||
|
||||
GLOBAL time_t
|
||||
Conn_LastPing( CONN_ID Idx )
|
||||
{
|
||||
/* Zeitpunkt des letzten PING liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].lastping;
|
||||
} /* Conn_LastPing */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_SetPenalty( CONN_ID Idx, time_t Seconds )
|
||||
{
|
||||
/* Penalty-Delay fuer eine Verbindung (in Sekunden) setzen;
|
||||
* waehrend dieser Zeit wird der entsprechende Socket vom Server
|
||||
* bei Lese-Operationen komplett ignoriert. Der Delay kann mit
|
||||
* dieser Funktion nur erhoeht, nicht aber verringert werden. */
|
||||
|
||||
time_t t;
|
||||
|
||||
assert( Idx > NONE );
|
||||
assert( Seconds >= 0 );
|
||||
|
||||
t = time( NULL ) + Seconds;
|
||||
if( t > My_Connections[Idx].delaytime ) My_Connections[Idx].delaytime = t;
|
||||
} /* Conn_SetPenalty */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_ResetPenalty( CONN_ID Idx )
|
||||
{
|
||||
assert( Idx > NONE );
|
||||
My_Connections[Idx].delaytime = 0;
|
||||
} /* Conn_ResetPenalty */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_ClearFlags( VOID )
|
||||
{
|
||||
/* Alle Connection auf "nicht-markiert" setzen */
|
||||
|
||||
CONN_ID i;
|
||||
|
||||
for( i = 0; i < Pool_Size; i++ ) My_Connections[i].flag = 0;
|
||||
} /* Conn_ClearFlags */
|
||||
|
||||
|
||||
GLOBAL INT
|
||||
Conn_Flag( CONN_ID Idx )
|
||||
{
|
||||
/* Ist eine Connection markiert (TRUE) oder nicht? */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].flag;
|
||||
} /* Conn_Flag */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_SetFlag( CONN_ID Idx, INT Flag )
|
||||
{
|
||||
/* Connection markieren */
|
||||
|
||||
assert( Idx > NONE );
|
||||
My_Connections[Idx].flag = Flag;
|
||||
} /* Conn_SetFlag */
|
||||
|
||||
|
||||
GLOBAL CONN_ID
|
||||
Conn_First( VOID )
|
||||
{
|
||||
/* Connection-Struktur der ersten Verbindung liefern;
|
||||
* Ist keine Verbindung vorhanden, wird NONE geliefert. */
|
||||
|
||||
CONN_ID i;
|
||||
|
||||
for( i = 0; i < Pool_Size; i++ )
|
||||
{
|
||||
if( My_Connections[i].sock != NONE ) return i;
|
||||
}
|
||||
return NONE;
|
||||
} /* Conn_First */
|
||||
|
||||
|
||||
GLOBAL CONN_ID
|
||||
Conn_Next( CONN_ID Idx )
|
||||
{
|
||||
/* Naechste Verbindungs-Struktur liefern; existiert keine
|
||||
* weitere, so wird NONE geliefert. */
|
||||
|
||||
CONN_ID i = NONE;
|
||||
|
||||
assert( Idx > NONE );
|
||||
|
||||
for( i = Idx + 1; i < Pool_Size; i++ )
|
||||
{
|
||||
if( My_Connections[i].sock != NONE ) return i;
|
||||
}
|
||||
return NONE;
|
||||
} /* Conn_Next */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_SetOption( CONN_ID Idx, INT Option )
|
||||
{
|
||||
/* Option fuer Verbindung setzen.
|
||||
* Initial sind alle Optionen _nicht_ gesetzt. */
|
||||
|
||||
assert( Idx > NONE );
|
||||
assert( Option != 0 );
|
||||
|
||||
My_Connections[Idx].options |= Option;
|
||||
} /* Conn_SetOption */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_UnsetOption( CONN_ID Idx, INT Option )
|
||||
{
|
||||
/* Option fuer Verbindung loeschen */
|
||||
|
||||
assert( Idx > NONE );
|
||||
assert( Option != 0 );
|
||||
|
||||
My_Connections[Idx].options &= ~Option;
|
||||
} /* Conn_UnsetOption */
|
||||
|
||||
|
||||
GLOBAL INT
|
||||
Conn_Options( CONN_ID Idx )
|
||||
{
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].options;
|
||||
} /* Conn_Options */
|
||||
|
||||
|
||||
GLOBAL time_t
|
||||
Conn_StartTime( CONN_ID Idx )
|
||||
{
|
||||
/* Zeitpunkt des Link-Starts liefern (in Sekunden) */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].starttime;
|
||||
} /* Conn_Uptime */
|
||||
|
||||
|
||||
GLOBAL INT
|
||||
Conn_SendQ( CONN_ID Idx )
|
||||
{
|
||||
/* Laenge der Daten im Schreibbuffer liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
#ifdef USE_ZLIB
|
||||
if( My_Connections[Idx].options & CONN_ZIP ) return My_Connections[Idx].zip.wdatalen;
|
||||
else
|
||||
#endif
|
||||
return My_Connections[Idx].wdatalen;
|
||||
} /* Conn_SendQ */
|
||||
|
||||
|
||||
GLOBAL LONG
|
||||
Conn_SendMsg( CONN_ID Idx )
|
||||
{
|
||||
/* Anzahl gesendeter Nachrichten liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].msg_out;
|
||||
} /* Conn_SendMsg */
|
||||
|
||||
|
||||
GLOBAL LONG
|
||||
Conn_SendBytes( CONN_ID Idx )
|
||||
{
|
||||
/* Anzahl gesendeter Bytes (unkomprimiert) liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].bytes_out;
|
||||
} /* Conn_SendBytes */
|
||||
|
||||
|
||||
GLOBAL INT
|
||||
Conn_RecvQ( CONN_ID Idx )
|
||||
{
|
||||
/* Laenge der Daten im Lesebuffer liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
#ifdef USE_ZLIB
|
||||
if( My_Connections[Idx].options & CONN_ZIP ) return My_Connections[Idx].zip.rdatalen;
|
||||
else
|
||||
#endif
|
||||
return My_Connections[Idx].rdatalen;
|
||||
} /* Conn_RecvQ */
|
||||
|
||||
|
||||
GLOBAL LONG
|
||||
Conn_RecvMsg( CONN_ID Idx )
|
||||
{
|
||||
/* Anzahl empfangener Nachrichten liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].msg_in;
|
||||
} /* Conn_RecvMsg */
|
||||
|
||||
|
||||
GLOBAL LONG
|
||||
Conn_RecvBytes( CONN_ID Idx )
|
||||
{
|
||||
/* Anzahl empfangener Bytes (unkomprimiert) liefern */
|
||||
|
||||
assert( Idx > NONE );
|
||||
return My_Connections[Idx].bytes_in;
|
||||
} /* Conn_RecvBytes */
|
||||
|
||||
|
||||
GLOBAL VOID
|
||||
Conn_ResetWCounter( VOID )
|
||||
{
|
||||
WCounter = 0;
|
||||
} /* Conn_ResetWCounter */
|
||||
|
||||
|
||||
GLOBAL LONG
|
||||
Conn_WCounter( VOID )
|
||||
{
|
||||
return WCounter;
|
||||
} /* Conn_WCounter */
|
||||
|
||||
|
||||
LOCAL BOOLEAN
|
||||
Try_Write( CONN_ID Idx )
|
||||
{
|
||||
|
|
|
@ -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.28 2002/12/30 16:07:23 alex Exp $
|
||||
* $Id: conn.h,v 1.29 2002/12/30 17:14:59 alex Exp $
|
||||
*
|
||||
* Connection management (header)
|
||||
*/
|
||||
|
@ -29,7 +29,7 @@
|
|||
typedef INT CONN_ID;
|
||||
|
||||
|
||||
#if defined(__conn_c__) || defined(__conn_zip_c__)
|
||||
#ifdef CONN_MODULE
|
||||
|
||||
#include "defines.h"
|
||||
#include "resolve.h"
|
||||
|
@ -74,8 +74,9 @@ typedef struct _Connection
|
|||
|
||||
GLOBAL CONNECTION *My_Connections;
|
||||
GLOBAL CONN_ID Pool_Size;
|
||||
GLOBAL LONG WCounter;
|
||||
|
||||
#endif /* defined() */
|
||||
#endif /* CONN_MODULE */
|
||||
|
||||
|
||||
GLOBAL VOID Conn_Init PARAMS((VOID ));
|
||||
|
@ -93,34 +94,6 @@ GLOBAL BOOLEAN Conn_WriteStr PARAMS(( CONN_ID Idx, CHAR *Format, ... ));
|
|||
|
||||
GLOBAL VOID Conn_Close PARAMS(( CONN_ID Idx, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN InformClient ));
|
||||
|
||||
GLOBAL VOID Conn_UpdateIdle PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL time_t Conn_GetIdle PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL time_t Conn_LastPing PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL time_t Conn_StartTime PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL INT Conn_SendQ PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL INT Conn_RecvQ PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL LONG Conn_SendMsg PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL LONG Conn_RecvMsg PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL LONG Conn_SendBytes PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL LONG Conn_RecvBytes PARAMS(( CONN_ID Idx ));
|
||||
|
||||
GLOBAL VOID Conn_SetPenalty PARAMS(( CONN_ID Idx, time_t Seconds ));
|
||||
GLOBAL VOID Conn_ResetPenalty PARAMS(( CONN_ID Idx ));
|
||||
|
||||
GLOBAL VOID Conn_ClearFlags PARAMS(( VOID ));
|
||||
GLOBAL INT Conn_Flag PARAMS(( CONN_ID Idx ));
|
||||
GLOBAL VOID Conn_SetFlag PARAMS(( CONN_ID Idx, INT Flag ));
|
||||
|
||||
GLOBAL CONN_ID Conn_First PARAMS(( VOID ));
|
||||
GLOBAL CONN_ID Conn_Next PARAMS(( CONN_ID Idx ));
|
||||
|
||||
GLOBAL VOID Conn_SetOption PARAMS(( CONN_ID Idx, INT Option ));
|
||||
GLOBAL VOID Conn_UnsetOption PARAMS(( CONN_ID Idx, INT Option ));
|
||||
GLOBAL INT Conn_Options PARAMS(( CONN_ID Idx ));
|
||||
|
||||
GLOBAL VOID Conn_ResetWCounter PARAMS(( VOID ));
|
||||
GLOBAL LONG Conn_WCounter PARAMS(( VOID ));
|
||||
|
||||
|
||||
GLOBAL INT Conn_MaxFD;
|
||||
|
||||
|
|
Loading…
Reference in New Issue