Mercurial > pidgin
changeset 30270:adef21420870
Some fixes to IRC handling in purple-url-handler, mainly to fix
https://bugzilla.redhat.com/show_bug.cgi?id=614426
I probably broke it horribly in the process, but given that it wasn't even
verifying the account was an IRC account before it can't be much more
broken now. can it?
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Tue, 20 Jul 2010 02:27:17 +0000 |
parents | e874875a74a7 |
children | b2b4af06a0b5 |
files | libpurple/purple-url-handler |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/purple-url-handler Mon Jul 19 18:25:47 2010 +0000 +++ b/libpurple/purple-url-handler Tue Jul 20 02:27:17 2010 +0000 @@ -73,7 +73,8 @@ def findaccount(protocolname, accountname="", matcher=None): if matcher: for account in cpurple.PurpleAccountsGetAll(): - if accountname != "" and accountname != cpurple.PurpleAccountGetUsername(a): + if (protocolname != cpurple.PurpleAccountGetProtocolID(account)) or \ + (accountname != "" and accountname != cpurple.PurpleAccountGetUsername(account)): continue if matcher(account): bring_account_online(account) @@ -182,7 +183,7 @@ def irc(uri): protocol = "prpl-irc" - match = re.match(r"^irc:(//([^/]*)/)?([^?]*)(\?(.*))?", uri) + match = re.match(r"^irc:(//([^/]*))?/?([^?]*)(\?(.*))?", uri) if not match: print "Invalid irc URI: %s" % uri return @@ -207,7 +208,7 @@ def correct_server(account): username = cpurple.PurpleAccountGetUsername(account) - return ("@" in username) and (server == (username.split("@"))[1]) + return ((server == "") or ("@" in username) and (server == (username.split("@"))[1])) account = findaccount(protocol, matcher=correct_server)