Ignore unknown commands received before the client is registered.

This commit is contained in:
Alexander Barton 2005-06-24 20:56:46 +00:00
parent de395db8e3
commit 162338b8c8
2 changed files with 24 additions and 9 deletions

View File

@ -11,9 +11,12 @@
ngIRCd CVSHEAD
- ngircd startup: never run with root privileges, i.e. always switch uid.
- Make Netsplit Messages RFC compliant.
- Fix handling of QUIT Messages: send only one message, even if client
- Don't generate error messages for unknown commands received before the
client is registered with the server (like the original ircd).
- Never run with root privileges but always switch the user ID.
- Make netsplit messages RFC compliant.
- Fix handling of QUIT Messages: send only one message, even if the client
is member of multiple channels.
- Don't exit server if closing of a socket fails; instead ignore it and
pray that this will be "the right thing" ...
@ -605,4 +608,4 @@ ngIRCd 0.0.1, 31.12.2001
--
$Id: ChangeLog,v 1.274 2005/06/17 19:04:53 fw Exp $
$Id: ChangeLog,v 1.275 2005/06/24 20:56:46 alex Exp $

View File

@ -12,7 +12,7 @@
#include "portab.h"
static char UNUSED id[] = "$Id: parse.c,v 1.62 2005/06/01 21:52:18 alex Exp $";
static char UNUSED id[] = "$Id: parse.c,v 1.63 2005/06/24 20:56:46 alex Exp $";
/**
* @file
@ -433,11 +433,23 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
return IRC_WriteStrClient( client, ERR_NOTREGISTERED_MSG, Client_ID( client ));
}
}
if( Client_Type( client ) != CLIENT_USER &&
Client_Type( client ) != CLIENT_SERVER &&
Client_Type( client ) != CLIENT_SERVICE )
return true;
/* Unbekannter Befehl */
Log( LOG_DEBUG, "Connection %d: Unknown command \"%s\", %d %s,%s prefix.", Client_Conn( client ), Req->command, Req->argc, Req->argc == 1 ? "parameter" : "parameters", Req->prefix ? "" : " no" );
if( Client_Type( client ) != CLIENT_SERVER ) return IRC_WriteStrClient( client, ERR_UNKNOWNCOMMAND_MSG, Client_ID( client ), Req->command );
else return true;
/* Unknown command and registered connection: generate error: */
Log( LOG_DEBUG, "Connection %d: Unknown command \"%s\", %d %s,%s prefix.",
Client_Conn( client ), Req->command, Req->argc,
Req->argc == 1 ? "parameter" : "parameters",
Req->prefix ? "" : " no" );
if( Client_Type( client ) != CLIENT_SERVER )
return IRC_WriteStrClient( client, ERR_UNKNOWNCOMMAND_MSG,
Client_ID( client ), Req->command );
return true;
} /* Handle_Request */