Opened 12 years ago

Closed 12 years ago

#914 closed defect (fixed)

irc: reconnecting doesn’t cope with 433: nickname already in use

Reported by: michael Owned by: felix winkelmann
Priority: major Milestone:
Component: unknown Version: 4.8.x
Keywords: irc Cc:
Estimated difficulty:

Description

I’m using the irc egg in version 1.9.5.

When reconnecting to an IRC server, the nickname might already be in use, but the irc egg doesn’t cope with that.

Here is an excerpt from my strace log:

17:10:55.379237 sendto(7, "USER nobody 0 * :nobody\r\n", 25, 0, NULL, 0) = 25
17:10:55.379322 sendto(7, "NICK g107\r\n", 11, 0, NULL, 0) = 11
17:10:55.379421 sendto(7, "JOIN #irc-test\r\n", 16, 0, NULL, 0) = 16
17:10:55.379468 recvfrom(7, 0x7fff459a4738, 1024, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:10:55.379572 select(1024, [6 7 8 9], [], NULL, {60, 0}) = 1 (in [7], left {59, 961303})
17:10:55.418484 recvfrom(7, ":ircd.twice-irc.de NOTICE AUTH :*** Looking up your hostname...\r\n:ircd.twice-irc.de NOTICE AUTH :*** Checking ident...\r\n", 1024, 0, NULL, NULL) = 120
17:10:55.418976 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.419202 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.419391 select(1024, [6 8 9], [], NULL, {0, 0}) = 0 (Timeout)
17:10:55.419904 recvfrom(7, 0x7f622b965e08, 1024, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:10:55.419979 select(1024, [6 7 8 9], [], NULL, {60, 0}) = 1 (in [7], left {59, 968384})
17:10:55.451824 recvfrom(7, ":ircd.twice-irc.de NOTICE AUTH :*** Found your hostname\r\n", 1024, 0, NULL, NULL) = 57
17:10:55.452089 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.452318 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.452545 select(1024, [6 8 9], [], NULL, {0, 0}) = 0 (Timeout)
17:10:55.452979 recvfrom(7, 0x7f622b965e08, 1024, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:10:55.453048 select(1024, [6 7 8 9], [], NULL, {60, 0}) = 1 (in [7], left {59, 931924})
17:10:55.521367 recvfrom(7, ":ircd.twice-irc.de NOTICE AUTH :*** Received identd response\r\n", 1024, 0, NULL, NULL) = 62
17:10:55.521728 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.521875 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.521985 select(1024, [6 8 9], [], NULL, {0, 0}) = 0 (Timeout)
17:10:55.522348 recvfrom(7, 0x7f622b965e08, 1024, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:10:55.522520 select(1024, [6 7 8 9], [], NULL, {60, 0}) = 1 (in [7], left {59, 967937})
17:10:55.554816 recvfrom(7, ":ircd.twice-irc.de 433 * g107 :Nickname is already in use.\r\n:ircd.twice-irc.de 451 JOIN :You have not registered\r\n", 1024, 0, NULL, NULL) = 114
17:10:55.555234 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 20001}, ...}) = 0
17:10:55.555438 getrusage(RUSAGE_SELF, {ru_utime={0, 172010}, ru_stime={0, 24001}, ...}) = 0
17:10:55.555657 select(1024, [6 8 9], [], NULL, {0, 0}) = 0 (Timeout)
17:10:55.556246 recvfrom(7, 0x7f622b965e08, 1024, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
17:10:55.556408 select(1024, [6 7 8 9], [], NULL, {60, 0}) = 1 (in [7], left {24, 64165})
17:11:31.492510 recvfrom(7, "ERROR :Closing Link: [188.111.72.14] (Ping timeout)\r\n", 1024, 0, NULL, NULL) = 53

Attachments (1)

914_fix.patch (416 bytes) - added by Christian Kellermann 12 years ago.
patch to correctly detect error codes from ircd

Download all attachments as: .zip

Change History (4)

comment:1 Changed 12 years ago by felix winkelmann

Milestone: 4.8.0

Changed 12 years ago by Christian Kellermann

Attachment: 914_fix.patch added

patch to correctly detect error codes from ircd

comment:2 Changed 12 years ago by Christian Kellermann

Owner: set to felix winkelmann
Status: newassigned

The attached patch fixes this problem. The source contained a silly typo...

comment:3 Changed 12 years ago by felix winkelmann

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.