From 439c945d56ecba14cce789c5725575667c066502 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Fri, 7 Mar 2003 14:35:52 +0000 Subject: [PATCH] Added support for TCP Wrappers. --- src/ngircd/conn.c | 28 ++++++++++++++++++++++++++-- src/ngircd/ngircd.c | 14 +++++++++----- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c index e3f88011..4b48ffb8 100644 --- a/src/ngircd/conn.c +++ b/src/ngircd/conn.c @@ -16,7 +16,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: conn.c,v 1.117 2003/02/23 12:04:05 alex Exp $"; +static char UNUSED id[] = "$Id: conn.c,v 1.118 2003/03/07 14:35:52 alex Exp $"; #include "imp.h" #include @@ -40,7 +40,11 @@ static char UNUSED id[] = "$Id: conn.c,v 1.117 2003/02/23 12:04:05 alex Exp $"; #endif #ifdef HAVE_STDINT_H -#include /* u.a. fuer Mac OS X */ +#include /* e.g. for Mac OS X */ +#endif + +#ifdef USE_TCPWRAP +#include /* for TCP Wrappers */ #endif #include "defines.h" @@ -87,6 +91,11 @@ LOCAL fd_set My_Listeners; LOCAL fd_set My_Sockets; LOCAL fd_set My_Connects; +#ifdef USE_TCPWRAP +INT allow_severity = LOG_INFO; +INT deny_severity = LOG_ERR; +#endif + GLOBAL VOID Conn_Init( VOID ) @@ -836,6 +845,9 @@ New_Connection( INT Sock ) /* Neue Client-Verbindung von Listen-Socket annehmen und * CLIENT-Struktur anlegen. */ +#ifdef USE_TCPWRAP + struct request_info req; +#endif struct sockaddr_in new_addr; INT new_sock, new_sock_len; RES_STAT *s; @@ -854,6 +866,18 @@ New_Connection( INT Sock ) Log( LOG_CRIT, "Can't accept connection: %s!", strerror( errno )); return; } + +#ifdef USE_TCPWRAP + /* Validate socket using TCP Wrappers */ + request_init( &req, RQ_DAEMON, PACKAGE, RQ_FILE, new_sock, RQ_CLIENT_SIN, &new_addr, NULL ); + if( ! hosts_access( &req )) + { + /* Access denied! */ + Log( deny_severity, "Refused connection from %s (by TCP Wrappers)!", inet_ntoa( new_addr.sin_addr )); + close( new_sock ); + return; + } +#endif /* Socket initialisieren */ Init_Socket( new_sock ); diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 3b794b4a..68c52829 100644 --- a/src/ngircd/ngircd.c +++ b/src/ngircd/ngircd.c @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: ngircd.c,v 1.72 2003/02/23 12:04:05 alex Exp $"; +static char UNUSED id[] = "$Id: ngircd.c,v 1.73 2003/03/07 14:35:52 alex Exp $"; #include "imp.h" #include @@ -369,6 +369,14 @@ NGIRCd_VersionAddition( VOID ) if( txt[0] ) strcat( txt, "+" ); strcat( txt, "ZLIB" ); #endif +#ifdef USE_TCPWRAP + if( txt[0] ) strcat( txt, "+" ); + strcat( txt, "TCPWRAP" ); +#endif +#ifdef RENDEZVOUS + if( txt[0] ) strcat( txt, "+" ); + strcat( txt, "RENDEZVOUS" ); +#endif #ifdef DEBUG if( txt[0] ) strcat( txt, "+" ); strcat( txt, "DEBUG" ); @@ -385,10 +393,6 @@ NGIRCd_VersionAddition( VOID ) if( txt[0] ) strcat( txt, "+" ); strcat( txt, "IRCPLUS" ); #endif -#ifdef RENDEZVOUS - if( txt[0] ) strcat( txt, "+" ); - strcat( txt, "RENDEZVOUS" ); -#endif if( txt[0] ) strlcat( txt, "-", sizeof( txt )); strlcat( txt, TARGET_CPU, sizeof( txt )); -- 2.39.2