commit - b90bedbcb2f860ae2202f8a870fe49c4ed2cc7e7
commit + 6667bb6b772a05cb0327ddae23f1f72ceb194ef1
blob - 10b6ee71e90bae4d2f2a42023ea1ebc02d52def3
blob + 9acfc8aeae185a9bda84565c6b5ec291d8fcc50c
--- ChangeLog
+++ ChangeLog
ngIRCd CVSHEAD
+ - The info text ("real name") of users is set to "-" if none has been
+ specified using the USER command (e. g. "USER user * * :"). Reason:
+ the original ircd doesn't like empty ones and would KILL such users.
- Fixed (optional) TCP Wrapper test which was broken and could result in
false results. Thanks to Fuminori Tanizaki <tany@mcnet.ad.jp>!
- The type of service (TOS) of all sockets is set to "interactive" now.
--
-$Id: ChangeLog,v 1.224 2004/02/03 20:28:30 alex Exp $
+$Id: ChangeLog,v 1.225 2004/02/04 19:56:04 alex Exp $
blob - 185dd1246ac868d8255506c115be9023b30af9f9
blob + 6f9ab92b20a7e55efda1c6c29c8349fa7eae67a7
--- src/ngircd/irc-login.c
+++ src/ngircd/irc-login.c
#include "portab.h"
-static char UNUSED id[] = "$Id: irc-login.c,v 1.38 2004/01/17 03:17:49 alex Exp $";
+static char UNUSED id[] = "$Id: irc-login.c,v 1.39 2004/02/04 19:56:05 alex Exp $";
#include "imp.h"
#include <assert.h>
if( Client_Type( Client ) == CLIENT_GOTNICK || Client_Type( Client ) == CLIENT_GOTPASS )
#endif
{
- /* Falsche Anzahl Parameter? */
+ /* Wrong number of parameters? */
if( Req->argc != 4 ) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
+ /* User name */
#ifdef IDENTAUTH
ptr = Client_User( Client );
- if( ! ptr || ! *ptr || *ptr == '~' )
-#endif
+ if( ! ptr || ! *ptr || *ptr == '~' ) Client_SetUser( Client, Req->argv[0], FALSE );
+#else
Client_SetUser( Client, Req->argv[0], FALSE );
- Client_SetInfo( Client, Req->argv[3] );
+#endif
+ /* "Real name" or user info text: Don't set it to the empty string, the original ircd
+ * can't deal with such "real names" (e. g. "USER user * * :") ... */
+ if( *Req->argv[3] ) Client_SetInfo( Client, Req->argv[3] );
+ else Client_SetInfo( Client, "-" );
+
Log( LOG_DEBUG, "Connection %d: got valid USER command ...", Client_Conn( Client ));
if( Client_Type( Client ) == CLIENT_GOTNICK ) return Hello_User( Client );
else Client_SetType( Client, CLIENT_GOTUSER );