Bug 137843 - Have DCOP call signatures accept server:port in addition to port
Summary: Have DCOP call signatures accept server:port in addition to port
Status: RESOLVED FIXED
Alias: None
Product: konversation
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: Konversation Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-25 00:01 UTC by Daniel Roschka
Modified: 2008-04-18 20:05 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Roschka 2006-11-25 00:01:49 UTC
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 .
Comment 1 Eike Hein 2008-04-17 20:53:46 UTC
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.
Comment 2 Eike Hein 2008-04-18 20:05:41 UTC
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