diff --git a/src/ngircd/client.c b/src/ngircd/client.c index a8a2ddfa..1d01f784 100644 --- a/src/ngircd/client.c +++ b/src/ngircd/client.c @@ -402,7 +402,8 @@ Client_SetAway( CLIENT *Client, char *Txt ) assert( Txt != NULL ); strlcpy( Client->away, Txt, sizeof( Client->away )); - Log( LOG_DEBUG, "User \"%s\" is away: %s", Client_Mask( Client ), Txt ); + LogDebug("%s \"%s\" is away: %s", Client_TypeText(Client), + Client_Mask(Client), Txt); } /* Client_SetAway */ diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index f64570ad..b557b531 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -396,9 +396,9 @@ IRC_TOPIC( CLIENT *Client, REQUEST *Req ) /* Set new topic */ Channel_SetTopic(chan, from, Req->argv[1]); - Log(LOG_DEBUG, "User \"%s\" set topic on \"%s\": %s", - Client_Mask(from), Channel_Name(chan), - Req->argv[1][0] ? Req->argv[1] : ""); + LogDebug("%s \"%s\" set topic on \"%s\": %s", + Client_TypeText(from), Client_Mask(from), Channel_Name(chan), + Req->argv[1][0] ? Req->argv[1] : ""); /* im Channel bekannt machen und an Server weiterleiten */ IRC_WriteStrServersPrefix( Client, from, "TOPIC %s :%s", Req->argv[0], Req->argv[1] ); diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 95ec959c..9a04a3f7 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.c @@ -672,7 +672,7 @@ Hello_User(CLIENT * Client) 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; @@ -742,6 +742,7 @@ Introduce_Client(CLIENT *From, CLIENT *Client) if (From) { 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).", diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index f4e3e0f9..76e3ab46 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -229,7 +229,9 @@ client_exit: ok = IRC_WriteStrClientPrefix( Client, Origin, "MODE %s :%s", Client_ID( Target ), the_modes ); IRC_WriteStrServersPrefix( Client, Origin, "MODE %s :%s", Client_ID( Target ), the_modes ); } - Log( LOG_DEBUG, "User \"%s\": Mode change, now \"%s\".", Client_Mask( Target ), Client_Modes( Target )); + LogDebug("%s \"%s\": Mode change, now \"%s\".", + Client_TypeText(Target), Client_Mask(Target), + Client_Modes(Target)); } IRC_SetPenalty( Client, 1 ); diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index ad9d32c9..0741aefa 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -419,7 +419,14 @@ Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors) if (cl) { /* Target is a user, enforce type */ +#ifndef STRICT_RFC + if (Client_Type(cl) != ForceType && + !(ForceType == CLIENT_USER && + (Client_Type(cl) == CLIENT_USER || + Client_Type(cl) == CLIENT_SERVICE))) { +#else if (Client_Type(cl) != ForceType) { +#endif if (!SendErrors) return CONNECTED; return IRC_WriteStrClient(from, ERR_NOSUCHNICK_MSG, diff --git a/src/ngircd/numeric.c b/src/ngircd/numeric.c index af1ac027..927989db 100644 --- a/src/ngircd/numeric.c +++ b/src/ngircd/numeric.c @@ -252,7 +252,8 @@ IRC_Num_ENDOFMOTD(CLIENT * Client, UNUSED REQUEST * Req) /* Announce all the users to the new server */ c = Client_First(); while (c) { - if (Client_Type(c) == CLIENT_USER) { + if (Client_Type(c) == CLIENT_USER || + Client_Type(c) == CLIENT_SERVICE) { if (!Announce_User(Client, c)) return DISCONNECTED; }