- /* schon ein USER da? Dann registrieren! */
- if( Client_Type( Client ) == CLIENT_GOTUSER ) return Hello_User( Client );
- else Client_SetType( Client, CLIENT_GOTNICK );
- }
- else
- {
- /* Nick-Aenderung */
- Log( LOG_INFO, "User \"%s\" changed nick: \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0] );
-
- /* alle betroffenen User und Server ueber Nick-Aenderung informieren */
- if( Client_Type( Client ) == CLIENT_USER ) IRC_WriteStrClientPrefix( Client, Client, "NICK :%s", Req->argv[0] );
- IRC_WriteStrServersPrefix( Client, target, "NICK :%s", Req->argv[0] );
- IRC_WriteStrRelatedPrefix( target, target, FALSE, "NICK :%s", Req->argv[0] );
-
- /* neuen Client-Nick speichern */
+#ifndef STRICT_RFC
+ if (Conf_AuthPing) {
+ Conn_SetAuthPing(Client_Conn(Client), rand());
+ IRC_WriteStrClient(Client, "PING :%ld",
+ Conn_GetAuthPing(Client_Conn(Client)));
+ LogDebug("Connection %d: sent AUTH PING %ld ...",
+ Client_Conn(Client),
+ Conn_GetAuthPing(Client_Conn(Client)));
+ }
+#endif
+
+ /* If we received a valid USER command already then
+ * register the new client! */
+ if( Client_Type( Client ) == CLIENT_GOTUSER )
+ return Login_User( Client );
+ else
+ Client_SetType( Client, CLIENT_GOTNICK );
+ } else {
+ /* Nickname change */
+ if (Client_Conn(target) > NONE) {
+ /* Local client */
+ Log(LOG_INFO,
+ "%s \"%s\" changed nick (connection %d): \"%s\" -> \"%s\".",
+ Client_TypeText(target), Client_Mask(target),
+ Client_Conn(target), Client_ID(target),
+ Req->argv[0]);
+ Conn_UpdateIdle(Client_Conn(target));
+ } else {
+ /* Remote client */
+ LogDebug("%s \"%s\" changed nick: \"%s\" -> \"%s\".",
+ Client_TypeText(target),
+ Client_Mask(target), Client_ID(target),
+ Req->argv[0]);
+ }
+
+ /* Inform all users and servers (which have to know)
+ * of this nickname change */
+ if( Client_Type( Client ) == CLIENT_USER )
+ IRC_WriteStrClientPrefix( Client, Client,
+ "NICK :%s",
+ Req->argv[0] );
+ IRC_WriteStrServersPrefix( Client, target,
+ "NICK :%s", Req->argv[0] );
+ IRC_WriteStrRelatedPrefix( target, target, false,
+ "NICK :%s", Req->argv[0] );
+
+ /* Register old nickname for WHOWAS queries */
+ Client_RegisterWhowas( target );
+
+ /* Save new nickname */