TLDR <Sho_> apachelogger: basically, the idea is that the nicklist is a loop (a -> b -> c -> back to a), and resetNickSelection() tries to make the first entry in the datastructure whatevet the next nick after the current nick is (e.g. if you're b, it will compute c -> a -> b) Problem is that if I am on nick b, it should compute a->c->b as a is higher up in the preference list. ~~~ If one happens to get disconnected and times out subsequently Konversation will try to reconnect automatically. The logic for deciding which nick to use when this happens is flawed though as it *always* moves ahead one position in the list regardless of whether a previous nick is actually available. In my particular case I have the following nick list: a) sitter b) sitter_ c) apachelogger When experiencing sudden connection loss (e.g. by connecting to a VPN) a reconnect will happen after a couple hundred seconds which will then as expected use sitter_ as the nick. Waiting until sitter times out and then again having a connection loss (e.g. disconnecting from a VPN) will on the next reconnect move on to connect as apachelogger. If one is on the second nick entry and gets a reconnect Konversation should use attempt to use the first nick what with it being higher up in the list thus it should have highest priority. Reproducible: Always
Git commit b1dfa32c5c4122fafdd52a95225ff54de5ab4385 by Eike Hein. Committed on 20/02/2015 at 21:08. Pushed by hein into branch '1.6'. Simplify Server::resetNickSelection(). Just skip over the current nick, don't try to make it the invisible list head. This way we try harder to revert to nicks early in the config-backed list. M +9 -13 src/irc/server.cpp http://commits.kde.org/konversation/b1dfa32c5c4122fafdd52a95225ff54de5ab4385