Adium

Opened 13 years ago

Closed 12 years ago

#5152 closed defect (fixed)

Adium thinks it can message Jabber contacts with any of your Jabber accounts even if it can't actually do so

Reported by: anonymous Owned by: evands
Milestone: Adium 1.3 Component: Service/XMPP (Jabber)
Version: Severity: normal
Keywords: Cc:
Patch Status:

Description (last modified by Peter Hosey)

If you have multiple Jabber based accounts (LJTalk and GTalk for example) setup, the "Accounts" tab in the "Get Info" display lists all Jabber services under "ON Account". For "In Group" it lists the erronious entries as "(Not Listed)".

Also, in the chat window (if you haven't sent a message yet that sessiion to the buddy), it allows you to select from all the Jabber accounts even if only one can really talk to that buddy.

Having this display like this is misleading.

Change History (14)

comment:1 Changed 13 years ago by Eric Richie

priority: highnormal

This is actually 2 different issues although they are most likely related. The first part is a duplicate of #4897. However I feel that the second part is definitely a valid issue.

comment:2 Changed 13 years ago by Peter Hosey

Description: modified (diff)

Striking out duplicate portion using WikiFormatting.

comment:3 Changed 13 years ago by Eric Richie

Milestone: Needs dev review
Summary: Get Info information for Jabber buddies has spurious info when multiple Jabber accounts et upAdium thinks it can message jabber contacts with any of your jabber accounts even if it can't actually do so

I'm thinking this may have to wait for smack.

comment:4 Changed 13 years ago by Bear

This is not just Jabber, it seems to affect other protocols as well.

Specifically this happens when someone has more than one AIM accounts and it also happens happens when you have an AIM and ICQ account defined.

So it's not just a jabber issue.

For reference this is with 1.0b13.

comment:5 Changed 13 years ago by Eric Richie

AIM accounts are irrelevant because they don't require any sort of authorization to message them. I believe the point of this ticket is that accounts are listed that are not authorized to talk to that contact (and therefore incapable of sending a message to them prior to authorization).

comment:6 Changed 13 years ago by Peter Hosey

It's not authorization.

The problem is that not all Jabber servers are connected to all other Jabber servers. Adium assumes the opposite, so if I have my Jabber account boredzo@…, Adium will assume that I can message my GTalk contact jdoe@…, both of these being Jabber-compatible services.

But that's not necessarily the case; madeupjabberserver.tld may not be connected to GTalk and the Jabber cloud at large, in which case such IMs will fail. I can see how that would be distracting. (“What? Message failed? Oh, it picked the wrong service to send from again. Dangit.”)

Is there some way that we can ping a contact over each service to see whether they can be IM'd from that service? (Obviously, this information should be remembered, which implies that it should be invalidated when an account is added or deleted.)

comment:7 Changed 13 years ago by Colin Barrett

Would a heuristic as simple as having S2S (server to server) unenabled on a jabber server mean that it cannot communicate with the "jabber cloud?" Is there a way to ask the Jabber server if it has S2S on? If so, are there a large number of cases where S2S is on but the server is not connected to the Jabber cloud? If that heuristic is not good enough, perhaps instead of "disabling" those accounts from sending outside their domains, we should just move them to the bottom of the list, perhaps separated by a separator line.

Also, I'd like to point out that if your SMTP server is restricted, it will just bounce the message back. I think people are used to the idea of a message "bouncing". However, we're not terribly friendly in that area.

comment:8 Changed 13 years ago by Andreas Monitzer

You could send an xmpp ping (#5823) to every available contact from all connected xmpp accounts, but this would be quite chatty. I personally wouldn't like my client to send random pings all over the place. That might even raise a red flag in a corporate environment. Maybe the default selection in that popup should be an account that has this user on its roster (when there's one), if it's not done that way already anyways.

comment:9 Changed 13 years ago by Jordan

Component: JabberAdium Core
Patch Status: None
Summary: Adium thinks it can message jabber contacts with any of your jabber accounts even if it can't actually do soAdium thinks it can message contacts with any of your accounts even if it can't actually do so
Version: 1.0b81.0.3

Definitely still an issue - confirmed on 1.0 branch (around 1.0.4b4) with two Gtalk accounts.

What's really weird is if you've got two MSN accounts and each one has the other account as a contact and you sign on both with Adium... it has both accounts as a combined contact and you can send from and to either account ... thereby having a conversation with yourself. Not only that but it allows you to set the source and destination to the same account! When you do this, the source and destination options disappear and you send a message but it never echos back. I assume this winds up the same with every type of service...

Can't it just look up which account the contact belongs to and only allow it to be sent from that account?

So this is not jabber specific.

comment:10 Changed 13 years ago by Peter Hosey

Component: Adium CoreJabber
Summary: Adium thinks it can message contacts with any of your accounts even if it can't actually do soAdium thinks it can message Jabber contacts with any of your Jabber accounts even if it can't actually do so

jas8522: What? Please read the entire comment thread—this is a Jabber-specific ticket, to do with private-XMPP-server accounts not being able to talk to the big Jabber cloud (J/GT/LJ/Giz).

Fixing ticket accordingly.

am: We'd only need to do that on starting a chat. It wouldn't be very much traffic (maybe a dozen pings in a pathological case), and even then, it would only be for that instant rather than periodically.

comment:11 Changed 12 years ago by Jordan

Milestone: Needs dev reviewAdium X 1.3
pending: 0

You can ignore my last comment, but my interpretation of this ticket is that when opening a message window with a contact on one particular Jabber account, one is able to select other Jabber accounts to send messages from - even if the contact isn't a member of the contact list on all of those accounts. It appears this is a problem with all protocols, not just Jabber, as I've seen this with MSN and #8523 can reproduce this with AIM.

"Also, in the chat window (if you haven't sent a message yet that sessiion to the buddy), it allows you to select from all the Jabber accounts even if only one can really talk to that buddy."

That is the original statement supplied by the original poster and it seems to match with my interpretation. Also, I think they only said Jabber because that was what they could reproduce it with... after further testing it seems this can be broadened to all protocols.

comment:12 Changed 12 years ago by Jordan

Oh and one other thing: I understand that with many protocols you can indeed chat with buddies using accounts which do not have that buddy listed (as long as they don't have the account set to require authorization). This is definitely the same with MSN and many other protocols I'm sure. However I really don't think that the other accounts should be selectable just because it's possible.

Users are expecting to be able to only communicate with contacts that they have added to their contact list such that being able to send messages to users from accounts where the buddy is not a member should not be allowed by the UI. For example, I don't want to be able to message someone on my business account buddy list from my personal account... then they get my personal account address - bad idea. I know it's selectable, but what happens if it automatically selects the wrong one accidentally?

I figure if you *do* want to message someone from another account, you will add the buddy to that account's contact list, or associate them with both accounts via get info (if this option becomes available again - there's another ticket about that).

comment:13 Changed 12 years ago by Evan Schoenberg

Owner: changed from nobody to Evan Schoenberg
Status: newassigned

It won't automatically select the wrong one accidentally, though, because it defaults to the one you last used for the contact... or, if you've never messaged the contact, the one highest on your accounts list which has the contact on its list.

Making the distinction easier to visualize is a good idea, in any case.

comment:14 Changed 12 years ago by Evan Schoenberg

Resolution: fixed
Status: assignedclosed

(In [22534]) The accounts menu now distinguishes accounts which are on a service compatible with the selected contact and have that contact on their serverside list from those which don't have the contact on their serverside list. As far as I'm concerned, this fixes #5152, unless there's way to find out if a given XMPP server is connected to the Jabber cloud at large.

Note: See TracTickets for help on using tickets.