Version: 1.0.1 (using KDE KDE 3.5.5) Installed from: Debian testing/unstable Packages OS: Linux In scripts for konversation you can only access the ip of the actual server, the actual channel and the name of the application (normally konversation). That lead's to problems if you 're connected twice to a server with different irc-networks. This could happen if you use irssi-proxy or a similar tool. Then you 've the same server ip for different networks and some scripts won't work as they should (e.g. sayclip will print out it's information on in all networks which are accessed via irssi-proxy). To avoid that it would be useful to provide a possibility to give scripts also the actual port of a server and let konversation accept the target server for a script in form auf ip:port .
The course taken to fix this is to have unique connection ids which are understood by the DCOP calls in addition to hostnames, and preferred, and used by the script launcher. I.e. a script will be handed a unique connection id instead of the server host name, and the DCOP code then takes care of talking to the correct connection. This is implemented in my working copy, and will be merged soon.
SVN commit 798634 by hein: Merge the rewrite of connection management and instanciation, along with re- lated code. This brings about a large set of changes and improvements, so get a beverage and make yourself comfortable: - Improved behavior with regard to reusing existing connections in connection attempts that provide an initial channel to join, such as command line argu- ments, the DCOP interface, the bookmark system or irc:// links). Previously, the application would have inconsistently either reused an existing or crea- ted a new connection. CCBUG:150377 - Better dialog messages in the interactive variant of the decision to either reuse or create a new connection (from the Server List dialog and the Quick connect dialog). - Improved and more consistent display of connection names (i.e. network or server host name) throughout the application. - Much improved irc:// URL support for connection intanciation, with support added for IPv6 host names and many of the features proposed by the Mirashi specification. - Eliminated redundant irc:// URL parsing codepaths in favor of a single one. - Added support for irc:// URLs to the chat views. - Removed "konversationircprotocolhandler" shell script. The Konversation exe- cutable now understands irc:// URLs directly. - Initiating connections from command line arguments and options now works also when the application is already running. - Fixed a bug that would cause a connection initiated from command line options not to get past the identity validation stage when the configuration file was unitialized and empty. - The server list dialog will now always be closed when starting Konversation with command line arguments to initiate a connection, consistent with the configuration-based auto-connect behavior - Providing a channel in the creation of a new connection (i.e. via command line arguments, the DCOP interface, the Quick Connect dialog, the bookmark system or irc:// links) now consistently pre-empts the stored auto-join channel list if the target of the connection is a network or the hostname is found to be part of a configured network. Previously, this would only work for Quick Connect and the bookmark system (which caused the infamous Sabayon user flood in #kde due to their "Get Support" desktop link connecting to Freenode, which in an unconfigured Konversation has #kde in its auto-join list).. - Connections now have globally unique IDs. - The DCOP interface now understands connection IDs in addition to host names. - The scripting systems now uses globally unique connection IDs rather than server host names to refer to connections, fixing a bug where scripted res- ponses were being handed to all connections sharing a hostname (which was actually intentional in the absence of connection IDs, but undesirable for users). BUG:137843 BUG:139861 - Ported the DCC code away from relying on server group IDs to refer to connec- tions, made it use connection IDs instead. Fixes potential bugs with multiple concurrent connections to the same network. - Improved iteration behavior over a network's server list on connection losses. - The "Reconnect" action now works also when Konversation doesn't consider the connection to be in a disconnected state. - Improved the server status view messages related to reconnection attempts. - Improved the naming of preferences related to automatic reconnection attempts to be less confusing. - Made it possible to set the number of automatic reconnection attempts to un- limited. - Provided better default values to the preferences related to automatic reconn- ection attempts. - Consistently apply the "Reconnect delay" setting (previously confusingly named "Reconnect timeout"), which wasn't done before. - Fixed a bug that could cause the connection process to claim that a DNS look- up was successful when it actually wasn't. - Fixed opening bookmarks with spaces in the target address name (which may be a network name, and networks may have spaces in their name). - Properly update the state of the "Add/Remove to Watched Nicknames" nickname context menu actions when the connection isn't to a config-backed network, in which case there's no way to store and make use of those list entries. - Fixed a crash when quitting the application with a resident connection that disconnected due to an SSL error. - Fixed crashes in the DCOP interface if no connection was present. - Lay the groundwork for the upcoming auto-away merge. - Massive code cleanups. This was also the biggest outstanding to-do item for the upcoming 1.1 release. M +65 -0 ChangeLog M +2 -3 src/Makefile.am M +28 -20 src/channel.cpp M +2 -2 src/channel.h M +1 -1 src/channellistpanel.cpp M +3 -9 src/chatwindow.cpp M +1 -3 src/chatwindow.h M +1 -1 src/commit.h M +3 -3 src/common.cpp M +18 -2 src/common.h M +3 -3 src/config/konversation.kcfg M +14 -19 src/config/preferences.cpp M +1 -1 src/config/preferences.h M +17 -6 src/connectionbehavior_preferences.ui A src/connectionmanager.cpp [License: GPL (v2+)] A src/connectionmanager.h [License: GPL (v2+)] A src/connectionsettings.cpp [License: GPL (v2+)] A src/connectionsettings.h [License: GPL (v2+)] M +7 -7 src/dcctransfer.cpp M +3 -3 src/dcctransfer.h M +4 -3 src/dcctransferdetailedinfopanel.cpp M +7 -7 src/dcctransfermanager.cpp M +3 -3 src/dcctransfermanager.h M +1 -1 src/dcctransferpanel.cpp M +4 -3 src/dcctransferrecv.cpp M +4 -3 src/dcctransfersend.cpp M +3 -6 src/inputfilter.cpp M +1 -1 src/inputfilter.h M +2 -2 src/ircqueue.cpp M +12 -6 src/ircview.cpp M +1 -1 src/ircview.h M +27 -23 src/joinchanneldialog.cpp M +36 -22 src/konvdcop.cpp M +13 -4 src/konvdcop.h M +56 -366 src/konversationapplication.cpp M +13 -44 src/konversationapplication.h D src/konversationircprotocolhandler M +23 -47 src/konversationmainwindow.cpp M +2 -5 src/konversationmainwindow.h M +4 -2 src/konvibookmarkhandler.cpp M +0 -2 src/konvibookmarkhandler.h M +1 -1 src/konviface.h D src/konviiphelper.cpp D src/konviiphelper.h M +1 -1 src/konvirc.protocol M +1 -1 src/konvirc6.protocol M +3 -11 src/main.cpp M +6 -6 src/nickinfo.cpp M +5 -2 src/nicklistview.cpp M +31 -32 src/nicksonline.cpp M +1 -1 src/notificationhandler.cpp M +18 -51 src/outputfilter.cpp M +11 -3 src/outputfilter.h M +10 -5 src/query.cpp M +1 -1 src/query.h M +9 -7 src/quickconnectdialog.cpp M +9 -6 src/quickconnectdialog.h M +4 -4 src/scriptlauncher.cpp M +451 -718 src/server.cpp M +80 -124 src/server.h M +2 -2 src/serverdialog.cpp M +6 -8 src/servergroupdialog.cpp M +2 -31 src/servergroupsettings.cpp M +3 -11 src/servergroupsettings.h M +2 -2 src/serverison.cpp M +14 -9 src/serverlistdialog.cpp M +5 -4 src/serverlistdialog.h M +14 -9 src/serversettings.cpp M +7 -6 src/serversettings.h M +4 -1 src/sslsocket.cpp M +17 -25 src/statuspanel.cpp M +2 -2 src/statuspanel.h M +9 -2 src/topiclabel.cpp M +1 -1 src/topiclabel.h M +30 -94 src/viewcontainer.cpp M +2 -4 src/viewcontainer.h M +4 -2 src/warnings_preferences.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=798634