Version: 0.15.1 (using KDE KDE 3.3.2) Installed from: SuSE RPMs OS: Linux I have added a channel which is protected +k in server settings on the server list. This channel is the last channel (at bottom of the list) which i want to join on that network. The password is definetly correct. However, Konversation does not want to join that channel. Some Interesting things from RAW Log (i try to keep the private information out, so i will post password here, but not the server, if some dumb people try to join our private chan, we change have to change our pass): Your host is ***.***.**, running version Unreal3.2.2-iZ ***.***.** Unreal3.2.2-iZ iowghraAsORTVSxNCWqBzvdHtGpD lvhopsmntikrRcaqOALQbSeKVfMGCuzNTj ***.***.***CMDS=KNOCK,MAP,DCCALLOW,USERIP SAFELIST HCN MAXCHANNELS=20 CHANLIMIT=#:20 MAXLIST=b:60,e:60 NICKLEN=30 CHANNELLEN=32 TOPICLEN=307 KICKLEN=307 AWAYLEN=307 MAXTARGETS=20 WALLCHOPS :are supported by this server ***.***.*** WATCH=128 SILENCE=15 MODES=12 CHANTYPES=# PREFIX=(qaohv)*!@%+ CHANMODES=be,kfL,lj,psmntirRcOAQKVGCuzNSMT NETWORK=*** CASEMAPPING=ascii EXTBAN=~,cqnr ELIST=MNUCT STATUSMSG=~&@%+ EXCEPTS :are supported by this server JOIN #ec,#elektrofahndung,#bb,#ohren-sm,#ec-linux,#radio.intern ,,,,,rec0t3j1 (then konvi joins all channels, and makes a WHO) #radio.intern :Cannot join channel (+k) ...joining this channel with /join #radio.intern rec0t3j1 manually works perfect. I also tried to give this command via Commands in the Server Settings to the Network, this does not work either.
As discussed on IRC.
No, this is a valid bug.
You said this is a server bug. And we don't have to workaround server bugs.
Some servers delete multiple adjacent delimeters, some don't. This is not specified in the RFC, so we must accomodate both.
its really an ambiguity in the specification. rfc1459 is probably one of the worst RFCs ever written. (argonel) the join line at the moment works on some networks but not on the one i am using, so there is need of a join line that works on all networks, i think. using dummy keys e.g. as you suggested or always putting the key protected channels on top of the list.
CVS commit by psn: Insert a fake key to make +k channels work on some servers BUG:98207 M +1 -1 server.cpp 1.461 --- kdeextragear-2/konversation/konversation/server.cpp #1.460:1.461 @@ -212,5 +212,5 @@ void Server::init(KonversationMainWindow channels += (*it).name(); - keys += (*it).password(); + keys += ((*it).password().isEmpty() ? "''" : (*it).password()); }
commit 791b86edffedf2e7c5b18928a5225da843f1b367 Author: Peter Simonsson <peter.simonsson@gmail.com> Date: Sat Apr 2 20:58:20 2005 +0000 Insert a fake key to make +k channels work on some servers BUG:98207 svn path=/trunk/kdeextragear-2/konversation/; revision=402715 diff --git a/konversation/server.cpp b/konversation/server.cpp index 61dd182..b2a946a 100644 --- a/konversation/server.cpp +++ b/konversation/server.cpp @@ -211,7 +211,7 @@ void Server::init(KonversationMainWindow* mainWindow, const QString& nick, const } channels += (*it).name(); - keys += (*it).password(); + keys += ((*it).password().isEmpty() ? "''" : (*it).password()); } setAutoJoinChannel(channels);