Bug 330201

Summary: reconnection prevented if the sole configured nickname is in use
Product: [Applications] konversation Reporter: Hans-Peter Jansen <hpj>
Component: generalAssignee: argonel <argonel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: 1.5   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Hans-Peter Jansen 2014-01-20 13:51:22 UTC
The configure settings reconnect delay and reconnect retries is misleading, since when sitting behind a router, that is typically reconnecting every 24 hours, the reconnect most often fails,
if a single nickname is used only. This happens, when a classical ifup based network setup is used at least.



Reproducible: Always

Steps to Reproduce:
1. set reconnect delay to 30 secs, retries to unlimited, limit yourself to a single identity, and connect to irc.freenode.net:6667
2. forcefully disconnect your router
3. watch the server log in konversation
Actual Results:  
A dialog appears, saying that the nickname is in use already, and the reconnect is canceled.

Expected Results:  
Unless reconnect retries are exhausted, reconnect attempts should be made

Due to the _quick_ reconnect or due to a protocol problem, the nickname is still marked as used on the server and the dialog "No nicknames were accepted (irc/server.cpp:1209)" appears. The dialog times out and returns no new nickname -> connection is disconnected in irc/inputfilter.cpp:1252.

Although unlimited reconnect attempts were chosen, the reconnect attempt stops after the first try!
Comment 1 argonel 2015-03-13 23:02:30 UTC
Git commit b47c04197f0e65a38a264fabda4523ac991eb364 by eli mackenzie.
Committed on 13/03/2015 at 20:01.
Pushed by argonel into branch '1.6'.

Prevent an in-use nickname from aborting reconnect

In the event there is only one nickname configured and the connection
times out while waiting for the user to supply a replacement nickname,
the reconnection will now proceed with the existing nickname in the
hope that it will become available.

M  +1    -1    src/commit.h
M  +5    -2    src/irc/inputfilter.cpp
M  +11   -10   src/irc/server.cpp

http://commits.kde.org/konversation/b47c04197f0e65a38a264fabda4523ac991eb364