commit dd3a3bc6039bc1fd1a89ffb834f08665c8035b6a from: Alexander Barton date: Wed May 10 21:24:01 2006 UTC Use some more specific data types (e. g. pid_t vs. int), make "SPLint" happy :-) 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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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;