assert( Client != NULL );
assert( Req != NULL );
-#ifndef STRICT_RFC
/* Some IRC clients, for example BitchX, send the NICK and USER
* commands in the wrong order ... */
- if( Client_Type( Client ) == CLIENT_UNKNOWN
- || Client_Type( Client ) == CLIENT_GOTPASS
- || Client_Type( Client ) == CLIENT_GOTNICK
- || Client_Type( Client ) == CLIENT_GOTUSER
- || Client_Type( Client ) == CLIENT_USER
- || ( Client_Type( Client ) == CLIENT_SERVER && Req->argc == 1 ))
-#else
- if( Client_Type( Client ) == CLIENT_UNKNOWN
- || Client_Type( Client ) == CLIENT_GOTPASS
- || Client_Type( Client ) == CLIENT_GOTNICK
- || Client_Type( Client ) == CLIENT_USER
- || ( Client_Type( Client ) == CLIENT_SERVER && Req->argc == 1 ))
+ if(Client_Type(Client) == CLIENT_UNKNOWN
+ || Client_Type(Client) == CLIENT_GOTPASS
+ || Client_Type(Client) == CLIENT_GOTNICK
+#ifndef STRICT_RFC
+ || Client_Type(Client) == CLIENT_GOTUSER
#endif
+ || Client_Type(Client) == CLIENT_USER
+ || Client_Type(Client) == CLIENT_SERVICE
+ || (Client_Type(Client) == CLIENT_SERVER && Req->argc == 1))
{
/* User registration or change of nickname */
return CONNECTED;
}
- if(( Client_Type( target ) != CLIENT_USER )
- && ( Client_Type( target ) != CLIENT_SERVER ))
- {
+ if (Client_Type(target) != CLIENT_USER &&
+ Client_Type(target) != CLIENT_SERVICE &&
+ Client_Type(target) != CLIENT_SERVER) {
/* New client */
Log( LOG_DEBUG, "Connection %d: got valid NICK command ...",
Client_Conn( Client ));
return Hello_User( Client );
else
Client_SetType( Client, CLIENT_GOTNICK );
- }
- else
- {
+ } else {
/* Nickname change */
if (Client_Conn(target) > NONE) {
/* Local client */
Log(LOG_INFO,
- "User \"%s\" changed nick (connection %d): \"%s\" -> \"%s\".",
- Client_Mask(target), Client_Conn(target),
- Client_ID(target), Req->argv[0]);
+ "%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
- {
+ } else {
/* Remote client */
- Log( LOG_DEBUG,
- "User \"%s\" changed nick: \"%s\" -> \"%s\".",
- Client_Mask( target ), Client_ID( target ),
- Req->argv[0] );
+ 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)
* RFC 1459: announce the new client only after receiving the
* USER command, first we need more information! */
if (Req->argc < 7) {
- LogDebug("User \"%s\" is beeing registered (RFC 1459) ...",
+ LogDebug("Client \"%s\" is beeing registered (RFC 1459) ...",
Client_Mask(c));
Client_SetType(c, CLIENT_GOTNICK);
} else
if (strcmp(Client_Password(Client), Conf_ServerPwd) != 0) {
/* Bad password! */
Log(LOG_ERR,
- "User \"%s\" rejected (connection %d): Bad password!",
+ "Client \"%s\" rejected (connection %d): Bad password!",
Client_Mask(Client), Client_Conn(Client));
Conn_Close(Client_Conn(Client), NULL, "Bad password", true);
return DISCONNECTED;
static void
Introduce_Client(CLIENT *From, CLIENT *Client)
{
+ char *type;
+
Client_SetType(Client, CLIENT_USER);
if (From) {
- LogDebug("User \"%s\" (+%s) registered (via %s, on %s, %d hop%s).",
- Client_Mask(Client), Client_Modes(Client),
+ if (Conf_IsService(Conf_GetServer(Client_Conn(From)), Client_ID(Client))) {
+ type = "Service";
+ Client_SetType(Client, CLIENT_SERVICE);
+ } else
+ type = "User";
+ LogDebug("%s \"%s\" (+%s) registered (via %s, on %s, %d hop%s).",
+ type, Client_Mask(Client), Client_Modes(Client),
Client_ID(From), Client_ID(Client_Introducer(Client)),
Client_Hops(Client), Client_Hops(Client) > 1 ? "s": "");
} else