Commit Diff


commit - 0a3f562f365c9836f8f46d4218801895994a8136
commit + dd3a3bc6039bc1fd1a89ffb834f08665c8035b6a
blob - 14092b6a16d522dd585cdcb5025a2763f2b2b195
blob + 0c85a2938ea28960502a35757f1e7ab8e2304cf0
--- src/ngircd/conf.c
+++ src/ngircd/conf.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: conf.c,v 1.90 2006/02/08 15:20:21 fw Exp $";
+static char UNUSED id[] = "$Id: conf.c,v 1.91 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -86,7 +86,7 @@ strdup_warn(const char *str)
 static void
 ports_puts(array *a)
 {
-	unsigned int len;
+	size_t len;
 	UINT16 *ports;
 	len = array_length(a, sizeof(UINT16));
 	if (len--) {
@@ -223,7 +223,7 @@ Conf_Test( void )
 		puts( "[SERVER]" );
 		printf( "  Name = %s\n", Conf_Server[i].name );
 		printf( "  Host = %s\n", Conf_Server[i].host );
-		printf( "  Port = %d\n", Conf_Server[i].port );
+		printf( "  Port = %u\n", (unsigned int)Conf_Server[i].port );
 		printf( "  MyPassword = %s\n", Conf_Server[i].pwd_in );
 		printf( "  PeerPassword = %s\n", Conf_Server[i].pwd_out );
 		printf( "  Group = %d\n\n", Conf_Server[i].group );
blob - b70d68999a02ebc25b2279f5dc228034ff2dd09c
blob + f2e903f4b3311daba2e0090fad7b13827f55d480
--- src/ngircd/conf.h
+++ src/ngircd/conf.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: conf.h,v 1.39 2006/02/08 15:20:21 fw Exp $
+ * $Id: conf.h,v 1.40 2006/05/10 21:24:01 alex Exp $
  *
  * Configuration management (header)
  */
@@ -84,8 +84,8 @@ GLOBAL array Conf_ListenPorts;
 GLOBAL char Conf_ListenAddress[16];
 
 /* User and group ID the server should run with */
-GLOBAL unsigned int Conf_UID;
-GLOBAL unsigned int Conf_GID;
+GLOBAL uid_t Conf_UID;
+GLOBAL gid_t Conf_GID;
 
 /* A directory to chroot() in */
 GLOBAL char Conf_Chroot[FNAME_LEN];
blob - 6aaf26e458a1931ff380ed6fb6687c76f4b519ef
blob + 6170a8cd58ae1d4c44d5aaad877dabdaf41e9708
--- src/ngircd/conn-func.c
+++ src/ngircd/conn-func.c
@@ -16,7 +16,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: conn-func.c,v 1.9 2006/04/23 10:37:27 fw Exp $";
+static char UNUSED id[] = "$Id: conn-func.c,v 1.10 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -156,7 +156,7 @@ Conn_Next( CONN_ID Idx )
 } /* Conn_Next */
 
 
-GLOBAL int
+GLOBAL UINT16
 Conn_Options( CONN_ID Idx )
 {
 	assert( Idx > NONE );
@@ -185,7 +185,7 @@ Conn_StartTime( CONN_ID Idx )
 } /* Conn_StartTime */
 
 
-GLOBAL int
+GLOBAL size_t
 Conn_SendQ( CONN_ID Idx )
 {
 	/* Laenge der Daten im Schreibbuffer liefern */
@@ -220,7 +220,7 @@ Conn_SendBytes( CONN_ID Idx )
 } /* Conn_SendBytes */
 
 
-GLOBAL int
+GLOBAL size_t
 Conn_RecvQ( CONN_ID Idx )
 {
 	/* Laenge der Daten im Lesebuffer liefern */
blob - 217ee3ec77767fde5849a1fa81da5a4e825d3e09
blob + 9da3dfb80418591d247c39b3adff6d031177d0ae
--- src/ngircd/conn-func.h
+++ src/ngircd/conn-func.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: conn-func.h,v 1.4 2005/04/25 18:37:16 fw Exp $
+ * $Id: conn-func.h,v 1.5 2006/05/10 21:24:01 alex Exp $
  *
  * Connection management: Global functions (header)
  */
@@ -30,8 +30,8 @@ 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 size_t Conn_SendQ PARAMS(( CONN_ID Idx ));
+GLOBAL size_t 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 ));
@@ -47,7 +47,7 @@ GLOBAL void Conn_SetFlag PARAMS(( CONN_ID Idx, int Fla
 GLOBAL CONN_ID Conn_First PARAMS(( void ));
 GLOBAL CONN_ID Conn_Next PARAMS(( CONN_ID Idx ));
 
-GLOBAL int Conn_Options PARAMS(( CONN_ID Idx ));
+GLOBAL UINT16 Conn_Options PARAMS(( CONN_ID Idx ));
 
 GLOBAL void Conn_ResetWCounter PARAMS(( void ));
 GLOBAL long Conn_WCounter PARAMS(( void ));
blob - 46cb47ac3d803fbfdf50d17744d1e1840d2e504b
blob + ad397e00f05e61605b6010bb42eb22665ca09ee6
--- src/ngircd/conn-zip.c
+++ src/ngircd/conn-zip.c
@@ -19,7 +19,7 @@
 
 #ifdef ZLIB
 
-static char UNUSED id[] = "$Id: conn-zip.c,v 1.9 2005/08/02 22:48:57 alex Exp $";
+static char UNUSED id[] = "$Id: conn-zip.c,v 1.10 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -80,7 +80,7 @@ Zip_InitConn( CONN_ID Idx )
 
 
 GLOBAL bool
-Zip_Buffer( CONN_ID Idx, char *Data, int Len )
+Zip_Buffer( CONN_ID Idx, char *Data, size_t Len )
 {
 	/* Daten zum Komprimieren im "Kompressions-Puffer" sammeln.
 	* Es wird true bei Erfolg, sonst false geliefert. */
@@ -90,14 +90,15 @@ Zip_Buffer( CONN_ID Idx, char *Data, int Len )
 	assert( Len > 0 );
 	assert( Len <= ZWRITEBUFFER_LEN );
 
-	if (Len < 0 || Len > ZWRITEBUFFER_LEN) return false;
+	if (Len > ZWRITEBUFFER_LEN)
+		return false;
 
 	if ( array_bytes( &My_Connections[Idx].zip.wbuf ) >= ZWRITEBUFFER_LEN ) {
 		/* compression buffer is full, flush */
 		if( ! Zip_Flush( Idx )) return false;
 	}
 
-	return array_catb( &My_Connections[Idx].zip.wbuf, Data, Len );
+	return array_catb(&My_Connections[Idx].zip.wbuf, Data, Len);
 } /* Zip_Buffer */
 
 
@@ -109,20 +110,19 @@ Zip_Flush( CONN_ID Idx )
 
 	int result;
 	unsigned char zipbuf[WRITEBUFFER_LEN];
-	unsigned int zipbuf_used = 0;
+	int zipbuf_used = 0;
 	z_stream *out;
 
 	out = &My_Connections[Idx].zip.out;
 
 	out->next_in = array_start(&My_Connections[Idx].zip.wbuf);
-	assert(out->next_in);
 	if (!out->next_in)
 		return false;
 
-	out->avail_in = array_bytes(&My_Connections[Idx].zip.wbuf);
+	out->avail_in = (uInt)array_bytes(&My_Connections[Idx].zip.wbuf);
 
 	out->next_out = zipbuf;
-	out->avail_out = sizeof zipbuf;
+	out->avail_out = (uInt)sizeof zipbuf;
 
 	Log(LOG_DEBUG, "out->avail_in %d, out->avail_out %d", out->avail_in, out->avail_out);
 	result = deflate( out, Z_SYNC_FLUSH );
@@ -136,7 +136,8 @@ Zip_Flush( CONN_ID Idx )
 	assert(out->avail_out <= WRITEBUFFER_LEN);
 	zipbuf_used = WRITEBUFFER_LEN - out->avail_out;
 	Log(LOG_DEBUG, "zipbuf_used: %d", zipbuf_used);
-	if (!array_catb( &My_Connections[Idx].wbuf, (char*) zipbuf, zipbuf_used ))
+	if (!array_catb(&My_Connections[Idx].wbuf,
+			(char *)zipbuf, (size_t) zipbuf_used))
 		return false;
 
 	My_Connections[Idx].bytes_out += zipbuf_used;
@@ -156,7 +157,7 @@ Unzip_Buffer( CONN_ID Idx )
 
 	int result;
 	unsigned char unzipbuf[READBUFFER_LEN];
-	unsigned int unzipbuf_used = 0;
+	int unzipbuf_used = 0;
 	unsigned int z_rdatalen;
 	unsigned int in_len;
 	
@@ -164,20 +165,19 @@ Unzip_Buffer( CONN_ID Idx )
 
 	assert( Idx > NONE );
 
-	z_rdatalen = array_bytes(&My_Connections[Idx].zip.rbuf);
+	z_rdatalen = (unsigned int)array_bytes(&My_Connections[Idx].zip.rbuf);
 	if (z_rdatalen == 0)
 		return true;
 
 	in = &My_Connections[Idx].zip.in;
 	
 	in->next_in = array_start(&My_Connections[Idx].zip.rbuf);
-	assert(in->next_in);
 	if (!in->next_in)
 		return false;
 
 	in->avail_in = z_rdatalen;
 	in->next_out = unzipbuf;
-	in->avail_out = sizeof unzipbuf;
+	in->avail_out = (uInt)sizeof unzipbuf;
 
 	Log(LOG_DEBUG, "in->avail_in %d, in->avail_out %d", in->avail_in, in->avail_out);
 	result = inflate( in, Z_SYNC_FLUSH );
@@ -193,7 +193,8 @@ Unzip_Buffer( CONN_ID Idx )
 	unzipbuf_used = READBUFFER_LEN - in->avail_out;
 	Log(LOG_DEBUG, "unzipbuf_used: %d - %d = %d", READBUFFER_LEN,  in->avail_out, unzipbuf_used);
 	assert(unzipbuf_used <= READBUFFER_LEN);
-	if (!array_catb(&My_Connections[Idx].rbuf, (char*) unzipbuf, unzipbuf_used))
+	if (!array_catb(&My_Connections[Idx].rbuf, (char*) unzipbuf,
+			(size_t)unzipbuf_used))
 		return false;
 
 	if( in->avail_in > 0 ) {
blob - c6518b1402f3ddd3fc9b18eeab25725b78e5e1de
blob + 6458a4e2d12a90991cc53c7f5f4fecaf291c2b54
--- src/ngircd/conn-zip.h
+++ src/ngircd/conn-zip.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: conn-zip.h,v 1.3 2005/03/19 18:43:48 fw Exp $
+ * $Id: conn-zip.h,v 1.4 2006/05/10 21:24:01 alex Exp $
  *
  * Connection compression using ZLIB (header)
  */
@@ -22,7 +22,7 @@
 
 GLOBAL bool Zip_InitConn PARAMS(( CONN_ID Idx ));
 
-GLOBAL bool Zip_Buffer PARAMS(( CONN_ID Idx, char *Data, int Len ));
+GLOBAL bool Zip_Buffer PARAMS(( CONN_ID Idx, char *Data, size_t Len ));
 GLOBAL bool Zip_Flush PARAMS(( CONN_ID Idx ));
 GLOBAL bool Unzip_Buffer PARAMS(( CONN_ID Idx ));
 
blob - 13c8085524bf36aba2061202663fc1f32a6654ca
blob + 530be7cfec8d4288919f5d6aa97a0859b42cf8f2
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
@@ -17,7 +17,7 @@
 #include "portab.h"
 #include "io.h"
 
-static char UNUSED id[] = "$Id: conn.c,v 1.194 2006/05/09 14:49:08 alex Exp $";
+static char UNUSED id[] = "$Id: conn.c,v 1.195 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -216,12 +216,13 @@ Conn_Init( void )
 		if( Pool_Size > Conf_MaxConnections ) Pool_Size = Conf_MaxConnections;
 	}
 	
-	if (!array_alloc(&My_ConnArray, sizeof(CONNECTION),  Pool_Size)) {
+	if (!array_alloc(&My_ConnArray, sizeof(CONNECTION), (size_t)Pool_Size)) {
 		Log( LOG_EMERG, "Can't allocate memory! [Conn_Init]" );
 		exit( 1 );
 	}
 
-	/* XXX: My_Connetions/Pool_Size are needed by other parts of the code; remove them */
+	/* FIXME: My_Connetions/Pool_Size is needed by other parts of the
+	 * code; remove them! */
 	My_Connections = (CONNECTION*) array_start(&My_ConnArray);
 
 	LogDebug("Allocated connection pool for %d items (%ld bytes).",
@@ -266,10 +267,11 @@ Conn_Exit( void )
 } /* Conn_Exit */
 
 
-static unsigned int
+static int
 ports_initlisteners(array *a, void (*func)(int,short))
 {
-	unsigned int created = 0, len;
+	int created = 0;
+	size_t len;
 	int fd;
 	UINT16 *port;
 
@@ -301,7 +303,7 @@ Conn_InitListeners( void )
 {
 	/* Initialize ports on which the server should accept connections */
 
-	unsigned int created;
+	int created;
 
 	if (!io_library_init(CONNECTION_POOL)) {
 		Log(LOG_EMERG, "Cannot initialize IO routines: %s", strerror(errno));
@@ -328,7 +330,7 @@ Conn_ExitListeners( void )
 	Log( LOG_INFO, "Shutting down all listening sockets (%d total)...", arraylen );
 	fd = array_start(&My_Listeners);
 	while(arraylen--) {
-		assert(fd);
+		assert(fd != NULL);
 		assert(*fd >= 0);
 		io_close(*fd);
 		LogDebug("Listening socket %d closed.", *fd );
@@ -354,7 +356,7 @@ NewListener( const UINT16 Port )
 	/* Server-"Listen"-Socket initialisieren */
 	memset( &addr, 0, sizeof( addr ));
 	memset( &inaddr, 0, sizeof( inaddr ));
-	addr.sin_family = AF_INET;
+	addr.sin_family = (sa_family_t)AF_INET;
 	addr.sin_port = htons( Port );
 	if( Conf_ListenAddress[0] )
 	{
@@ -381,7 +383,7 @@ NewListener( const UINT16 Port )
 
 	if( ! Init_Socket( sock )) return -1;
 
-	if( bind( sock, (struct sockaddr *)&addr, (socklen_t)sizeof( addr )) != 0 ) {
+	if (bind(sock, (struct sockaddr *)&addr, (int)sizeof(addr)) != 0) {
 		Log( LOG_CRIT, "Can't bind socket: %s!", strerror( errno ));
 		close( sock );
 		return -1;
@@ -424,8 +426,11 @@ NewListener( const UINT16 Port )
 	}
 
 	/* Add port number to description if non-standard */
-	if( Port != 6667 ) snprintf( name, sizeof( name ), "%s (port %u)", info, Port );
-	else strlcpy( name, info, sizeof( name ));
+	if (Port != 6667)
+		snprintf(name, sizeof name, "%s (port %u)", info,
+		 	 (unsigned int)Port);
+	else
+	 	strlcpy(name, info, sizeof name);
 
 	/* Register service */
 	Rendezvous_Register( name, MDNS_TYPE, Port );
@@ -482,7 +487,7 @@ Conn_Handler( void )
 			if ( My_Connections[i].sock <= NONE )
 				continue;
 
-			wdatalen = array_bytes(&My_Connections[i].wbuf);
+			wdatalen = (unsigned int)array_bytes(&My_Connections[i].wbuf);
 
 #ifdef ZLIB
 			if (( wdatalen > 0 ) || ( array_bytes(&My_Connections[i].zip.wbuf)> 0 ))
@@ -611,7 +616,7 @@ va_dcl
 
 
 GLOBAL bool
-Conn_Write( CONN_ID Idx, char *Data, unsigned int Len )
+Conn_Write( CONN_ID Idx, char *Data, size_t Len )
 {
 	/* Daten in Socket schreiben. Bei "fatalen" Fehlern wird
 	 * der Client disconnectiert und false geliefert. */
@@ -824,14 +829,15 @@ Conn_SyncServerStruct( void )
 } /* SyncServerStruct */
 
 
+/**
+ * Send out data of write buffer; connect new sockets.
+ */
 static bool
 Handle_Write( CONN_ID Idx )
 {
-	/* Daten aus Schreibpuffer versenden bzw. Connection aufbauen */
+	ssize_t len;
+	size_t wdatalen;
 
-	int len;
-	unsigned int wdatalen;
-
 	assert( Idx > NONE );
 	if ( My_Connections[Idx].sock < 0 ) {
 		LogDebug("Handle_Write() on closed socket, connection %d", Idx);
@@ -876,7 +882,7 @@ Handle_Write( CONN_ID Idx )
 	}
 
 	/* move any data not yet written to beginning */
-	array_moveleft(&My_Connections[Idx].wbuf, 1, len);
+	array_moveleft(&My_Connections[Idx].wbuf, 1, (size_t)len);
 
 	return true;
 } /* Handle_Write */
@@ -898,11 +904,11 @@ New_Connection( int Sock )
 
 	assert( Sock > NONE );
 	/* Connection auf Listen-Socket annehmen */
-	new_sock_len = sizeof( new_addr );
-	new_sock = accept( Sock, (struct sockaddr *)&new_addr, (socklen_t *)&new_sock_len );
-	if( new_sock < 0 )
-	{
-		Log( LOG_CRIT, "Can't accept connection: %s!", strerror( errno ));
+	new_sock_len = (int)sizeof new_addr;
+	new_sock = accept(Sock, (struct sockaddr *)&new_addr,
+			  (socklen_t *)&new_sock_len);
+	if (new_sock < 0) {
+		Log(LOG_CRIT, "Can't accept connection: %s!", strerror(errno));
 		return -1;
 	}
 
@@ -947,7 +953,8 @@ New_Connection( int Sock )
 			return -1;
 		}
 
-		if (!array_alloc(&My_ConnArray, sizeof( CONNECTION ), new_sock)) {
+		if (!array_alloc(&My_ConnArray, sizeof(CONNECTION),
+				 (size_t)new_sock)) {
 			Log( LOG_EMERG, "Can't allocate memory! [New_Connection]" );
 			Simple_Message( new_sock, "ERROR: Internal error" );
 			close( new_sock );
@@ -1023,7 +1030,7 @@ Read_Request( CONN_ID Idx )
 	/* Daten von Socket einlesen und entsprechend behandeln.
 	 * Tritt ein Fehler auf, so wird der Socket geschlossen. */
 
-	int len;
+	ssize_t len;
 	char readbuf[1024];
 	CLIENT *c;
 
@@ -1061,10 +1068,14 @@ Read_Request( CONN_ID Idx )
 		return;
 	}
 #ifdef ZLIB
-	if ( Conn_OPTION_ISSET( &My_Connections[Idx], CONN_ZIP )) {
-		if (!array_catb( &My_Connections[Idx].zip.rbuf, readbuf, len)) {
-			Log( LOG_ERR, "Could not append recieved data to zip input buffer (connn %d): %d bytes!", Idx, len );
-			Conn_Close( Idx, "Receive buffer overflow!", NULL, false );
+	if (Conn_OPTION_ISSET(&My_Connections[Idx], CONN_ZIP)) {
+		if (!array_catb(&My_Connections[Idx].zip.rbuf, readbuf,
+				(size_t) len)) {
+			Log(LOG_ERR,
+			    "Could not append recieved data to zip input buffer (connn %d): %d bytes!",
+			    Idx, len);
+			Conn_Close(Idx, "Receive buffer overflow!", NULL,
+				   false);
 			return;
 		}
 	} else
@@ -1107,7 +1118,7 @@ Handle_Buffer( CONN_ID Idx )
 	char *ptr1, *ptr2;
 #endif
 	char *ptr;
-	int len, delta;
+	size_t len, delta;
 	bool result;
 	time_t starttime;
 #ifdef ZLIB
@@ -1156,7 +1167,7 @@ Handle_Buffer( CONN_ID Idx )
 
 		len = ( ptr - (char*) array_start(&My_Connections[Idx].rbuf)) + delta;
 
-		if( len < 0 || len > ( COMMAND_LEN - 1 )) {
+		if( len > ( COMMAND_LEN - 1 )) {
 			/* Request must not exceed 512 chars (incl. CR+LF!), see
 			 * RFC 2812. Disconnect Client if this happens. */
 			Log( LOG_ERR, "Request too long (connection %d): %d bytes (max. %d expected)!",
@@ -1331,7 +1342,7 @@ New_Server( int Server )
 	}
 
 	memset( &new_addr, 0, sizeof( new_addr ));
-	new_addr.sin_family = AF_INET;
+	new_addr.sin_family = (sa_family_t)AF_INET;
 	new_addr.sin_addr = inaddr;
 	new_addr.sin_port = htons( Conf_Server[Server].port );
 
@@ -1343,15 +1354,18 @@ New_Server( int Server )
 
 	if( ! Init_Socket( new_sock )) return;
 
-	res = connect( new_sock, (struct sockaddr *)&new_addr, sizeof( new_addr ));
+	res = connect(new_sock, (struct sockaddr *)&new_addr,
+			(socklen_t)sizeof(new_addr));
 	if(( res != 0 ) && ( errno != EINPROGRESS )) {
 		Log( LOG_CRIT, "Can't connect socket: %s!", strerror( errno ));
 		close( new_sock );
 		return;
 	}
 	
-	if (!array_alloc(&My_ConnArray, sizeof(CONNECTION), new_sock)) {
-		Log( LOG_ALERT, "Cannot allocate memory for server connection (socket %d)", new_sock);
+	if (!array_alloc(&My_ConnArray, sizeof(CONNECTION), (size_t)new_sock)) {
+		Log(LOG_ALERT,
+		    "Cannot allocate memory for server connection (socket %d)",
+		    new_sock);
 		close( new_sock );
 		return;
 	}
@@ -1598,7 +1612,7 @@ Conn_GetClient( CONN_ID Idx ) 
 	CONNECTION *c;
 	assert( Idx >= 0 );
 
-	c = array_get(&My_ConnArray, sizeof (CONNECTION), Idx);
+	c = array_get(&My_ConnArray, sizeof (CONNECTION), (size_t)Idx);
 	
 	assert(c != NULL);
 	
blob - d061d8358d8dbfaa66fc786e2af445f50bb568e6
blob + b1e158e0266a6771b89accac0cde5e66a0c8df1a
--- src/ngircd/conn.h
+++ 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.41 2006/04/23 10:37:27 fw Exp $
+ * $Id: conn.h,v 1.42 2006/05/10 21:24:01 alex Exp $
  *
  * Connection management (header)
  */
@@ -88,7 +88,7 @@ GLOBAL void Conn_ExitListeners PARAMS(( void ));
 
 GLOBAL void Conn_Handler PARAMS(( void ));
 
-GLOBAL bool Conn_Write PARAMS(( CONN_ID Idx, char *Data, unsigned int Len ));
+GLOBAL bool Conn_Write PARAMS(( CONN_ID Idx, char *Data, size_t Len ));
 GLOBAL bool Conn_WriteStr PARAMS(( CONN_ID Idx, char *Format, ... ));
 
 GLOBAL void Conn_Close PARAMS(( CONN_ID Idx, char *LogMsg, char *FwdMsg, bool InformClient ));
blob - 48d447ca4fb1f1124bb38b0d47e02f975775be03
blob + 37afbd3c8da11e9fbf7fdc5e146dfe1a12d49abe
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-info.c,v 1.32 2006/04/23 10:37:27 fw Exp $";
+static char UNUSED id[] = "$Id: irc-info.c,v 1.33 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -913,7 +913,7 @@ IRC_Show_MOTD( CLIENT *Client )
 	if (!Show_MOTD_Start( Client ))
 		return DISCONNECTED;
 
-	while (fgets( line, sizeof( line ), fd )) {
+	while (fgets( line, (int)sizeof line, fd )) {
 		ngt_TrimLastChr( line, '\n');
 
 		if( ! Show_MOTD_Sendline( Client, line)) {
blob - a62022378503e8d49c91899edfe706d4a1c76f1b
blob + 1bfa9e15622c2999a86624992010e52a32777921
--- src/ngircd/irc-mode.c
+++ src/ngircd/irc-mode.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-mode.c,v 1.44 2005/07/31 20:13:08 alex Exp $";
+static char UNUSED id[] = "$Id: irc-mode.c,v 1.45 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -71,15 +71,20 @@ IRC_MODE( CLIENT *Client, REQUEST *Req )
 	else origin = Client;
 	
 	/* Channel or user mode? */
-	cl = chan = NULL;
-	if( Client_IsValidNick( Req->argv[0] )) cl = Client_Search( Req->argv[0] );
-	if( Channel_IsValidName( Req->argv[0] )) chan = Channel_Search( Req->argv[0] );
+	cl = NULL; chan = NULL;
+	if (Client_IsValidNick(Req->argv[0]))
+		cl = Client_Search(Req->argv[0]);
+	if (Channel_IsValidName(Req->argv[0]))
+		chan = Channel_Search(Req->argv[0]);
 
-	if( cl ) return Client_Mode( Client, Req, origin, cl );
-	if( chan ) return Channel_Mode( Client, Req, origin, chan );
+	if (cl)
+		return Client_Mode(Client, Req, origin, cl);
+	if (chan)
+		return Channel_Mode(Client, Req, origin, chan);
 
 	/* No target found! */
-	return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->argv[0] );
+	return IRC_WriteStrClient(Client, ERR_NOSUCHNICK_MSG,
+			Client_ID(Client), Req->argv[0]);
 } /* IRC_MODE */
 
 
blob - 2baa6d3d5f811e6fe003f56b9be5023878ba9118
blob + c9241b345b2d726df041302680abbe60e29bcef7
--- src/ngircd/irc-oper.c
+++ src/ngircd/irc-oper.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-oper.c,v 1.25 2006/04/23 10:37:27 fw Exp $";
+static char UNUSED id[] = "$Id: irc-oper.c,v 1.26 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -150,35 +150,52 @@ IRC_RESTART( CLIENT *Client, REQUEST *Req )
 } /* IRC_RESTART */
 
 
+/**
+ * Connect configured or new server.
+ */
 GLOBAL bool
-IRC_CONNECT(CLIENT *Client, REQUEST *Req )
+IRC_CONNECT(CLIENT * Client, REQUEST * Req)
 {
-	/* Connect configured or new server */
 
-	assert( Client != NULL );
-	assert( Req != NULL );
+	assert(Client != NULL);
+	assert(Req != NULL);
 
 	/* Not a local IRC operator? */
-	if(( ! Client_HasMode( Client, 'o' )) || ( ! Client_OperByMe( Client ))) return IRC_WriteStrClient( Client, ERR_NOPRIVILEGES_MSG, Client_ID( Client ));
+	if ((!Client_HasMode(Client, 'o')) || (!Client_OperByMe(Client)))
+		return IRC_WriteStrClient(Client, ERR_NOPRIVILEGES_MSG,
+					  Client_ID(Client));
 
 	/* Bad number of parameters? */
-	if(( Req->argc != 2 ) && ( Req->argc != 5 )) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
+	if ((Req->argc != 2) && (Req->argc != 5))
+		return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
+					  Client_ID(Client), Req->command);
 
 	/* Invalid port number? */
-	if( atoi( Req->argv[1] ) < 1 )  return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
+	if (atoi(Req->argv[1]) < 1)
+		return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
+					  Client_ID(Client), Req->command);
 
-	Log( LOG_NOTICE|LOG_snotice, "Got CONNECT command from \"%s\" for \"%s\".", Client_Mask( Client ), Req->argv[0]);
+	Log(LOG_NOTICE | LOG_snotice,
+	    "Got CONNECT command from \"%s\" for \"%s\".", Client_Mask(Client),
+	    Req->argv[0]);
 
-	if( Req->argc == 2 )
-	{
+	if (Req->argc == 2) {
 		/* Connect configured server */
-		if( ! Conf_EnableServer( Req->argv[0], atoi( Req->argv[1] ))) return IRC_WriteStrClient( Client, ERR_NOSUCHSERVER_MSG, Client_ID( Client ), Req->argv[0] );
-	}
-	else
-	{
+		if (!Conf_EnableServer
+		    (Req->argv[0], (UINT16) atoi(Req->argv[1])))
+			return IRC_WriteStrClient(Client, ERR_NOSUCHSERVER_MSG,
+						  Client_ID(Client),
+						  Req->argv[0]);
+	} else {
 		/* Add server */
-		if( ! Conf_AddServer( Req->argv[0], atoi( Req->argv[1] ), Req->argv[2], Req->argv[3], Req->argv[4] )) return IRC_WriteStrClient( Client, ERR_NOSUCHSERVER_MSG, Client_ID( Client ), Req->argv[0] );
+		if (!Conf_AddServer
+		    (Req->argv[0], (UINT16) atoi(Req->argv[1]), Req->argv[2],
+		     Req->argv[3], Req->argv[4]))
+			return IRC_WriteStrClient(Client, ERR_NOSUCHSERVER_MSG,
+						  Client_ID(Client),
+						  Req->argv[0]);
 	}
+
 	return CONNECTED;
 } /* IRC_CONNECT */
 
blob - fbfa90332b90ec6f89490161c304cfb8ae490d51
blob + ddb307e32ec48adbc73dcfdbe50ec869a64b8495
--- src/ngircd/irc-write.c
+++ src/ngircd/irc-write.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-write.c,v 1.19 2005/07/31 20:13:08 alex Exp $";
+static char UNUSED id[] = "$Id: irc-write.c,v 1.20 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -400,7 +400,7 @@ va_dcl
 
 
 GLOBAL void
-IRC_SetPenalty( CLIENT *Client, int Seconds )
+IRC_SetPenalty( CLIENT *Client, time_t Seconds )
 {
 	CONN_ID c;
 	
@@ -410,7 +410,8 @@ IRC_SetPenalty( CLIENT *Client, int Seconds )
 	if( Client_Type( Client ) == CLIENT_SERVER ) return;
 	
 	c = Client_Conn( Client );
-	if( c > NONE ) Conn_SetPenalty( c, Seconds );		
+	if (c > NONE)
+		Conn_SetPenalty(c, Seconds);
 } /* IRC_SetPenalty */
 
 
blob - d7d742c54b460ec3e9fb130ad423156a928b3bd7
blob + 40169b19117b67011878ecb5bda6cc753806034b
--- src/ngircd/irc-write.h
+++ src/ngircd/irc-write.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: irc-write.h,v 1.7 2005/03/19 18:43:49 fw Exp $
+ * $Id: irc-write.h,v 1.8 2006/05/10 21:24:01 alex Exp $
  *
  * Sending IRC commands over the network (header)
  */
@@ -30,7 +30,7 @@ GLOBAL void IRC_WriteStrServersPrefixFlag PARAMS(( CLI
 
 GLOBAL bool IRC_WriteStrRelatedPrefix PARAMS(( CLIENT *Client, CLIENT *Prefix, bool Remote, char *Format, ... ));
 
-GLOBAL void IRC_SetPenalty PARAMS(( CLIENT *Client, int Seconds ));
+GLOBAL void IRC_SetPenalty PARAMS(( CLIENT *Client, time_t Seconds ));
 
 
 #endif
blob - 33ee22684be0dd9165a5626f2cd9d0e0f32909e2
blob + 6889cff2758f035d67eaa6dffb820e8ff39d018e
--- src/ngircd/irc.c
+++ src/ngircd/irc.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc.c,v 1.129 2006/04/23 10:37:27 fw Exp $";
+static char UNUSED id[] = "$Id: irc.c,v 1.130 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -329,13 +329,15 @@ static char *
 Option_String( CONN_ID Idx )
 {
 	static char option_txt[8];
-	int options;
-
-	options = Conn_Options( Idx );
+	UINT16 options;
 
-	strcpy( option_txt, "F" );	/* No idea what this means but the original ircd sends it ... */
+	options = Conn_Options(Idx);
+
+	strcpy(option_txt, "F");	/* No idea what this means, but the
+					 * original ircd sends it ... */
 #ifdef ZLIB
-	if( options & CONN_ZIP ) strcat( option_txt, "z" );
+	if(options & CONN_ZIP)		/* zlib compression supported. */
+		strcat(option_txt, "z");
 #endif
 
 	return option_txt;
blob - 57d1f76fdfcb6cfad9ffdc0a595c7290b9ec93c9
blob + 7f79471ab77010bb19f8402c2ffa0376c3789f5d
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
@@ -12,7 +12,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: ngircd.c,v 1.111 2005/11/21 16:31:30 alex Exp $";
+static char UNUSED id[] = "$Id: ngircd.c,v 1.112 2006/05/10 21:24:01 alex Exp $";
 
 /**
  * @file
@@ -62,7 +62,7 @@ static void Signal_Handler PARAMS(( int Signal ));
 static void Show_Version PARAMS(( void ));
 static void Show_Help PARAMS(( void ));
 
-static void Pidfile_Create PARAMS(( long ));
+static void Pidfile_Create PARAMS(( pid_t pid ));
 static void Pidfile_Delete PARAMS(( void ));
 
 static void Fill_Version PARAMS(( void ));
@@ -601,7 +601,7 @@ Pidfile_Delete( void )
  * @param pid The process ID to be stored in this file.
  */
 static void
-Pidfile_Create( long pid )
+Pidfile_Create(pid_t pid)
 {
 	int pidfd;
 	char pidbuf[64];
@@ -620,13 +620,13 @@ Pidfile_Create( long pid )
 		return;
 	}
 
-	len = snprintf( pidbuf, sizeof pidbuf, "%ld\n", pid );
-	if (len < 0|| len < (int)sizeof pid) {
+	len = snprintf(pidbuf, sizeof pidbuf, "%ld\n", (long)pid);
+	if (len < 0 || len >= (int)sizeof pidbuf) {
 		Log( LOG_ERR, "Error converting pid");
 		return;
 	}
 	
-	if( write( pidfd, pidbuf, len) != len)
+	if (write(pidfd, pidbuf, (size_t)len) != (ssize_t)len)
 		Log( LOG_ERR, "Can't write PID file (%s): %s", Conf_PidFile, strerror( errno ));
 
 	if( close(pidfd) != 0 )
@@ -663,7 +663,7 @@ Setup_FDStreams( void )
 
 
 static bool
-NGIRCd_getNobodyID(unsigned int *uid, unsigned int *gid )
+NGIRCd_getNobodyID(uid_t *uid, gid_t *gid )
 {
 	struct passwd *pwd;
 
@@ -689,7 +689,7 @@ NGIRCd_Init( bool NGIRCd_NoDaemon ) 
 	struct passwd *pwd;
 	struct group *grp;
 	int real_errno;
-	long pid;
+	pid_t pid;
 
 	if (initialized)
 		return true;
@@ -749,7 +749,7 @@ NGIRCd_Init( bool NGIRCd_NoDaemon ) 
 	 * connected to ther controlling terminal. Use "--nodaemon"
 	 * to disable this "daemon mode" (useful for debugging). */
 	if ( ! NGIRCd_NoDaemon ) {
-		pid = (long)fork( );
+		pid = fork( );
 		if( pid > 0 ) {
 			/* "Old" process: exit. */
 			exit( 0 );
blob - e056e726ce8589eef6706cd024c5d159d9dae1dc
blob + 7c106292b068dfa5c68fd7dc2dd38f368446dbe0
--- src/ngircd/rendezvous.c
+++ src/ngircd/rendezvous.c
@@ -21,7 +21,7 @@
 #ifdef ZEROCONF
 
 
-static char UNUSED id[] = "$Id: rendezvous.c,v 1.7 2005/07/31 20:13:08 alex Exp $";
+static char UNUSED id[] = "$Id: rendezvous.c,v 1.8 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -144,7 +144,7 @@ GLOBAL void Rendezvous_Exit( void )
 } /* Rendezvous_Exit */
 
 
-GLOBAL bool Rendezvous_Register( char *Name, char *Type, unsigned int Port )
+GLOBAL bool Rendezvous_Register( char *Name, char *Type, UINT16 Port )
 {
 	/* Register new service */
 
@@ -310,7 +310,8 @@ static void Registration_Reply_Handler( DNSServiceRegi
 			strcpy( txt, "name conflict!" );
 			break;
 		default:
-			sprintf( txt, "error code %ld!", (long)ErrCode );
+			snprintf(txt, sizeof txt, "error code %ld!",
+			 	 (long)ErrCode);
 	}
 
 	Log( LOG_INFO, "Can't register \"%s\" with Rendezvous: %s", s->Desc, txt );
@@ -347,7 +348,8 @@ static sw_result HOWL_API Registration_Reply_Handler( 
 			strcpy( txt, "name conflict!" );
 			break;
 		default:
-			sprintf( txt, "error code %ld!", (long)Status );
+			snprintf(txt, sizeof txt, "error code %ld!",
+			 	 (long)Status);
 	}
 
 	Log( LOG_INFO, "Can't register \"%s\" with Rendezvous: %s", s->Desc, txt );
blob - 4f1f06ad2fbb355bf899ba0dd8e29b7c0aee9bf9
blob + 3e65f8e9df8feeaded22d9b1b7771c4d1632e86b
--- src/ngircd/rendezvous.h
+++ src/ngircd/rendezvous.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: rendezvous.h,v 1.3 2005/07/08 16:18:39 alex Exp $
+ * $Id: rendezvous.h,v 1.4 2006/05/10 21:24:01 alex Exp $
  *
  * "Rendezvous" functions (Header)
  */
@@ -23,7 +23,7 @@
 GLOBAL void Rendezvous_Init( void );
 GLOBAL void Rendezvous_Exit( void );
 
-GLOBAL bool Rendezvous_Register( char *Name, char *Type, unsigned int Port );
+GLOBAL bool Rendezvous_Register( char *Name, char *Type, UINT16 Port );
 
 GLOBAL bool Rendezvous_Unregister( char *Name );
 GLOBAL void Rendezvous_UnregisterListeners( void );
blob - e46e4823b31792a83f198a540e6ef15e065888b0
blob + 7f10698d3aab9437e9f71947343753b154c37660
--- src/ngircd/resolve.c
+++ src/ngircd/resolve.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: resolve.c,v 1.23 2006/02/08 15:24:10 fw Exp $";
+static char UNUSED id[] = "$Id: resolve.c,v 1.24 2006/05/10 21:24:01 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -50,10 +50,11 @@ static bool register_callback PARAMS((RES_STAT *s, voi
 static char *Get_Error PARAMS(( int H_Error ));
 #endif
 
-static int
+static pid_t
 Resolver_fork(int *pipefds)
 {
-	int pid;
+	pid_t pid;
+
 	if (pipe(pipefds) != 0) {
                 Log( LOG_ALERT, "Resolver: Can't create output pipe: %s!", strerror( errno ));
                 return -1;
@@ -77,11 +78,16 @@ Resolver_fork(int *pipefds)
 }
 
 
+/**
+ * Resolve IP (asynchronous!).
+ */
 GLOBAL bool
-Resolve_Addr( RES_STAT *s, struct sockaddr_in *Addr, int identsock, void (*cbfunc)(int, short))
+Resolve_Addr(RES_STAT * s, struct sockaddr_in *Addr, int identsock,
+	     void (*cbfunc) (int, short))
 {
-	/* Resolve IP (asynchronous!). */
-	int pid, pipefd[2];
+	int pipefd[2];
+	pid_t pid;
+
 	assert(s != NULL);
 
 	pid = Resolver_fork(pipefd);
@@ -102,11 +108,15 @@ Resolve_Addr( RES_STAT *s, struct sockaddr_in *Addr, i
 } /* Resolve_Addr */
 
 
+/**
+ * Resolve hostname (asynchronous!).
+ */
 GLOBAL bool
 Resolve_Name( RES_STAT *s, const char *Host, void (*cbfunc)(int, short))
 {
-	/* Resolve hostname (asynchronous!). */
-	int pid, pipefd[2];
+	int pipefd[2];
+	pid_t pid;
+
 	assert(s != NULL);
 
 	pid = Resolver_fork(pipefd);
@@ -236,7 +246,7 @@ Do_ResolveName( const char *Host, int w_fd )
 	char ip[16];
 	struct hostent *h;
 	struct in_addr *addr;
-	int len;
+	size_t len;
 
 	Log_Resolver( LOG_DEBUG, "Now resolving \"%s\" ...", Host );
 
@@ -259,7 +269,7 @@ Do_ResolveName( const char *Host, int w_fd )
 #endif
 	/* Write result into pipe to parent */
 	len = strlen( ip );
-	if( write( w_fd, ip, len ) != len) {
+	if ((size_t)write( w_fd, ip, len ) != len) {
 		Log_Resolver( LOG_CRIT, "Resolver: Can't write to parent: %s!", strerror( errno ));
 		close( w_fd );
 	}
@@ -294,7 +304,7 @@ Get_Error( int H_Error )
 static bool
 register_callback( RES_STAT *s, void (*cbfunc)(int, short))
 {
-	assert(cbfunc);
+	assert(cbfunc != NULL);
 	assert(s != NULL);
 	assert(s->resolver_fd >= 0);
 
@@ -324,11 +334,15 @@ Resolve_Shutdown( RES_STAT *s)
 }
 
                 
+/**
+ * Read result of resolver sub-process from pipe
+ */
 GLOBAL size_t
 Resolve_Read( RES_STAT *s, void* readbuf, size_t buflen)
 {
-	/* Read result of resolver sub-process from pipe */
-	int err, bytes_read;
+	int err;
+	ssize_t bytes_read;
+
 	assert(buflen > 0);
 
 	/* Read result from pipe */
@@ -353,7 +367,7 @@ Resolve_Read( RES_STAT *s, void* readbuf, size_t bufle
 		return 0;
 	}
 
-	return bytes_read;
+	return (size_t)bytes_read;
 }
 /* -eof- */
 
blob - 47153bbdb855c47b6f8741604ce1ef6283822af4
blob + ad8ebad0d3fc5589598aacf836b8b9071708d7ed
--- src/ngircd/resolve.h
+++ src/ngircd/resolve.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: resolve.h,v 1.12 2006/02/08 15:24:10 fw Exp $
+ * $Id: resolve.h,v 1.13 2006/05/10 21:24:02 alex Exp $
  *
  * Asynchronous resolver (header)
  */
@@ -22,7 +22,7 @@
 
 /* This struct must not be accessed directly */
 typedef struct _Res_Stat {
-	int pid;			/* PID of resolver process */
+	pid_t pid;			/* PID of resolver process */
 	int resolver_fd;		/* pipe fd for lookup result. */
 } RES_STAT;