Client_CheckID(): fix connection information

This patch fixes the following silly log messages:
'ID "XXX" already registered (on connection -1)!'

If the ID is already registered on a local connection, the local
connection ID is printed; and if the ID is connected via a remote
server, "via network" is displayed.
This commit is contained in:
Alexander Barton 2009-07-17 16:16:04 +02:00
parent 63cbc6cd42
commit 805bf03490
1 changed files with 3 additions and 3 deletions

View File

@ -758,18 +758,18 @@ Client_CheckID( CLIENT *Client, char *ID )
assert( Client->conn_id > NONE ); assert( Client->conn_id > NONE );
assert( ID != NULL ); assert( ID != NULL );
/* Nick too long? */ /* ID too long? */
if (strlen(ID) > CLIENT_ID_LEN) { if (strlen(ID) > CLIENT_ID_LEN) {
IRC_WriteStrClient(Client, ERR_ERRONEUSNICKNAME_MSG, Client_ID(Client), ID); IRC_WriteStrClient(Client, ERR_ERRONEUSNICKNAME_MSG, Client_ID(Client), ID);
return false; return false;
} }
/* does ID already exist? */ /* ID already in use? */
c = My_Clients; c = My_Clients;
while (c) { while (c) {
if (strcasecmp(c->id, ID) == 0) { if (strcasecmp(c->id, ID) == 0) {
snprintf(str, sizeof(str), "ID \"%s\" already registered", ID); snprintf(str, sizeof(str), "ID \"%s\" already registered", ID);
if (Client->conn_id != c->conn_id) if (c->conn_id != NONE)
Log(LOG_ERR, "%s (on connection %d)!", str, c->conn_id); Log(LOG_ERR, "%s (on connection %d)!", str, c->conn_id);
else else
Log(LOG_ERR, "%s (via network)!", str); Log(LOG_ERR, "%s (via network)!", str);