mirror of
https://github.com/osmarks/ngircd.git
synced 2025-11-17 14:07:13 +00:00
New configuration option "NoIdent" to disable IDENT lookups
The new configuration option "NoIdent" in ngircd.conf can be used to disable IDENT lookups even when the ngIRCd daemon is compiled with IDENT lookups enabled.
This commit is contained in:
@@ -259,6 +259,7 @@ Conf_Test( void )
|
||||
printf( " OperServerMode = %s\n", yesno_to_str(Conf_OperServerMode));
|
||||
printf( " PredefChannelsOnly = %s\n", yesno_to_str(Conf_PredefChannelsOnly));
|
||||
printf( " NoDNS = %s\n", yesno_to_str(Conf_NoDNS));
|
||||
printf( " NoIdent = %s\n", yesno_to_str(Conf_NoIdent));
|
||||
|
||||
#ifdef WANT_IPV6
|
||||
printf(" ConnectIPv4 = %s\n", yesno_to_str(Conf_ConnectIPv6));
|
||||
@@ -519,6 +520,7 @@ Set_Defaults( bool InitServers )
|
||||
|
||||
Conf_OperCanMode = false;
|
||||
Conf_NoDNS = false;
|
||||
Conf_NoIdent = false;
|
||||
Conf_PredefChannelsOnly = false;
|
||||
Conf_OperServerMode = false;
|
||||
|
||||
@@ -903,6 +905,19 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
|
||||
Conf_NoDNS = Check_ArgIsTrue( Arg );
|
||||
return;
|
||||
}
|
||||
if (strcasecmp(Var, "NoIdent") == 0) {
|
||||
/* don't do IDENT lookups when clients connect? */
|
||||
Conf_NoIdent = Check_ArgIsTrue(Arg);
|
||||
#ifndef IDENTAUTH
|
||||
if (!Conf_NoIdent) {
|
||||
/* user has enabled ident lookups explicitly, but ... */
|
||||
Config_Error(LOG_WARNING,
|
||||
"%s: line %d: NoIdent=False, but ngircd was built without IDENT support",
|
||||
NGIRCd_ConfFile, Line);
|
||||
}
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
#ifdef WANT_IPV6
|
||||
/* the default setting for all the WANT_IPV6 special options is 'true' */
|
||||
if( strcasecmp( Var, "ConnectIPv6" ) == 0 ) {
|
||||
|
||||
@@ -143,6 +143,9 @@ GLOBAL bool Conf_OperCanMode;
|
||||
/* Disable all DNS functions? */
|
||||
GLOBAL bool Conf_NoDNS;
|
||||
|
||||
/* Disable IDENT lookups, even when compiled with support for it */
|
||||
GLOBAL bool Conf_NoIdent;
|
||||
|
||||
/*
|
||||
* try to connect to remote systems using the ipv6 protocol,
|
||||
* if they have an ipv6 address? (default yes)
|
||||
|
||||
@@ -1167,7 +1167,7 @@ New_Connection( int Sock )
|
||||
#endif
|
||||
ng_ipaddr_t new_addr;
|
||||
char ip_str[NG_INET_ADDRSTRLEN];
|
||||
int new_sock, new_sock_len;
|
||||
int new_sock, new_sock_len, identsock;
|
||||
CLIENT *c;
|
||||
long cnt;
|
||||
|
||||
@@ -1270,10 +1270,14 @@ New_Connection( int Sock )
|
||||
|
||||
Client_SetHostname(c, My_Connections[new_sock].host);
|
||||
|
||||
identsock = new_sock;
|
||||
#ifdef IDENTAUTH
|
||||
if (Conf_NoIdent)
|
||||
identsock = -1;
|
||||
#endif
|
||||
if (!Conf_NoDNS)
|
||||
Resolve_Addr(&My_Connections[new_sock].res_stat, &new_addr,
|
||||
My_Connections[new_sock].sock, cb_Read_Resolver_Result);
|
||||
|
||||
identsock, cb_Read_Resolver_Result);
|
||||
Conn_SetPenalty(new_sock, 4);
|
||||
return new_sock;
|
||||
} /* New_Connection */
|
||||
|
||||
@@ -175,13 +175,12 @@ Do_IdentQuery(int identsock, array *resolved_addr)
|
||||
#ifdef IDENTAUTH
|
||||
char *res;
|
||||
|
||||
assert(identsock >= 0);
|
||||
if (identsock < 0)
|
||||
return;
|
||||
|
||||
#ifdef DEBUG
|
||||
Log_Resolver(LOG_DEBUG, "Doing IDENT lookup on socket %d ...", identsock);
|
||||
#endif
|
||||
if (identsock < 0)
|
||||
return;
|
||||
res = ident_id( identsock, 10 );
|
||||
#ifdef DEBUG
|
||||
Log_Resolver(LOG_DEBUG, "Ok, IDENT lookup on socket %d done: \"%s\"",
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
MaxConnectionsIP = 0
|
||||
OperCanUseMode = yes
|
||||
MaxJoins = 4
|
||||
NoIdent = yes
|
||||
|
||||
[Operator]
|
||||
Name = TestOp
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
MaxConnectionsIP = 0
|
||||
OperCanUseMode = yes
|
||||
MaxJoins = 4
|
||||
NoIdent = yes
|
||||
|
||||
[Operator]
|
||||
Name = TestOp
|
||||
|
||||
Reference in New Issue
Block a user