#4187: Doesnt cope with bonjour contacts having multiple presence records

View: New views
15 Messages — Rating Filter:   Alert me  

#4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
-------------------+--------------------------------------------------------
Reporter:  sjoerd  |       Owner:  datallah
    Type:  defect  |      Status:  new    
Priority:  minor   |   Component:  Bonjour
 Version:  2.3.0   |    Keywords:          
 Pending:  0       |  
-------------------+--------------------------------------------------------
 When avahi's ipv6 support is turned on. telepathy-salut announces itself
 on both ipv4 and ipv6.
 When trying to talk to a pidgin client, pidgin then outputs the following:

   (14:08:37) bonjour: Received incoming connection from 192.168.0.42.
   (14:08:37) bonjour: We don't like invisible buddies, this is not a
 superheros comic

 When i turn of ipv6 off on the host running salut. Everything works fine.
 My guess would be that pidgin only picks up the ipv6 record if it's
 available (probably because that's resolved first by chance) and then
 refuses connection coming from ipv4 because it doesn't know about that ip
 address

--
Ticket URL: <http://developer.pidgin.im/ticket/4187>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
----------------------+-----------------------------------------------------
  Reporter:  sjoerd   |       Owner:  datallah
      Type:  defect   |      Status:  new    
  Priority:  minor    |   Milestone:          
 Component:  Bonjour  |     Version:  2.3.0  
Resolution:           |    Keywords:          
   Pending:  0        |  
----------------------+-----------------------------------------------------
Comment (by datallah):

 Your analysis is exactly right - this wont occur anymore in the case where
 there are both an IPv6 and an IPv4 address announced because Pidgin will
 now only listen for IPv4 connections.

 However, I think the same issue will still occur in the case with multiple
 IPv4 IPs advertising the same presence.

 I'm not sure what the best way to fix this is.

 Should we not try to use the resolved IP to determine who the incoming
 message is from? I don't particularly like the idea of just using the
 stream's "from" attribute to identify who is talking to us.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:1>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
----------------------+-----------------------------------------------------
  Reporter:  sjoerd   |       Owner:  datallah
      Type:  defect   |      Status:  new    
  Priority:  minor    |   Milestone:          
 Component:  Bonjour  |     Version:  2.3.0  
Resolution:           |    Keywords:          
   Pending:  0        |  
----------------------+-----------------------------------------------------
Comment (by sjoerd):

 You have to use both the ip address and the from attribute.

 Some implementations don't correctly set the from (For example iChat and
 older versions of
  Adium ), so in those cases you must use the ip to figure out who is
 talking to you by the ip address

 But that obviously if there are multiple contacts on one ip this doesn't
 work. So in those cases you will need to use the from attributes to figure
 out who is talking to you. Some implementations don't set the from on
 stream opening unfortunately, which means you might  have to wait for the
 first stanza..


 Salut copes with this as following. All _presence._tcp service are
 resolved. Services with the same service name are assumed to belong to the
 same contact. So one contact can have multiple services backing it and we
 use the service that was last updated for the contacts presence info and
 other properties. There are potential race conditions in this, but it's
 reasonable to assume that a contact will update all its services to the
 same info eventually.

 In telepathy-salut the following steps are taken when there is an incoming
 connections.

   0) Look at the connections IP if no contacts have a presence on that ip
 ignore it (drop the
      connection). If there are one of more contacts, continue
   1) Wait for the stream opening if there is a from and it matches one of
 the contacts on the IP
      assign that connection to that contact. If it doesn't match any of
 the contacts on the IP,
      ignore it. If there is no from continue
   2) Wait for the first stanza after the stream opening (skipping
 <stream:features /> if needed).
      If that stanza has a from and it matches a contact on the IP, then
 assign it. If it doesn't
      match any drop it. If there is no from and there is exactly one
 contact on the IP
      then assume it belongs to that contact.

 Doing it this way makes sure we have validated the contact if possible,
 while still coping with clients that don't follow the latest XEP revision.
 After a connection has been assigned to a contact we don't really use the
 from anymore, but assume all message come from the assigned contact (to
 prevent spoofing).. A futher addition might be to validate the from on
 each stanza and drop the connection when the remote end tries spoofing

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:2>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
----------------------+-----------------------------------------------------
  Reporter:  sjoerd   |       Owner:  datallah
      Type:  defect   |      Status:  new    
  Priority:  minor    |   Milestone:          
 Component:  Bonjour  |     Version:  2.3.0  
Resolution:           |    Keywords:          
   Pending:  0        |  
----------------------+-----------------------------------------------------
Comment (by datallah@...):

 (In [46aa0a2d9a76892a9fd9aef671bef46f129e1e61]) Update Bonjour prpl to
 support multiple presence records for the same buddy. Eliminate the Howl
 backend to avoid having to maintain yet another set of code. References
 #4187 (more to come to fix the rest of the ticket).

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:3>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
----------------------+-----------------------------------------------------
  Reporter:  sjoerd   |       Owner:  datallah
      Type:  defect   |      Status:  closed  
  Priority:  minor    |   Milestone:  2.3.2  
 Component:  Bonjour  |     Version:  2.3.0  
Resolution:  fixed    |    Keywords:          
   Pending:  0        |  
----------------------+-----------------------------------------------------
Changes (by datallah@...):

  * status:  new => closed
  * resolution:  => fixed
  * milestone:  => 2.3.2

Comment:

 (In [e1e3e43c119da08c2f86638d37867881f3742d4c]) This is the second part of
 the fix to support having multiple presence records in Bonjour (and also
 supporting multiple presences using the same IP).  Incoming conversations
 are no longer immediately attached to a buddy - we use an algorithm to
 match a conversation to a buddy based on the IP and, if possible the
 "from" attribute of the stream or the first tag in the stream.  Thanks to
 Sjoerd Simons from Telepahy Salut for noticing and suggesting the
 algorithm. Fixes #4187. It'd be good if a few people test this.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:4>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  closed  
Milestone:  2.4.0   |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:  fixed  
 Keywords:          |  
--------------------+-------------------------------------------------------

Comment(by bj0):

 This Bug is marked as fixed, but this behavior is still present in 2.5.5

 I have two computers on a LAN that share 3 subnets (2 LAN IPs on eth0, and
 one VPN subnet).  All are ipv4, and it seems when Pidgin starts up it
 chooses one of the 3 IPs, and rejects messages that don't match.

 "We don't like invisible buddies, this is not a superheros comic "
 Appears in the debug window.

 Replying to [comment:1 datallah]:
 > Your analysis is exactly right - this wont occur anymore in the case
 where there are both an IPv6 and an IPv4 address announced because Pidgin
 will now only listen for IPv4 connections.
 >
 > However, I think the same issue will still occur in the case with
 multiple IPv4 IPs advertising the same presence.
 >
 > I'm not sure what the best way to fix this is.
 >
 > Should we not try to use the resolved IP to determine who the incoming
 message is from? I don't particularly like the idea of just using the
 stream's "from" attribute to identify who is talking to us.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:5>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:  2.4.0   |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------
Changes (by darkrain42):

  * status:  closed => new
  * resolution:  fixed =>


--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:6>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  pending
Milestone:  2.4.0   |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------
Changes (by darkrain42):

  * status:  new => pending


Comment:

 Please follow [wiki:TipsForBugReports the instructions] to get a debug log
 and attach it to this ticket.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:7>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  pending
Milestone:  2.4.0   |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------

Comment(by bj0):

 Do you want a full debug log from startup?

 The only thing that really is shown in the debug log is what was already
 posted:
 (14:08:37) bonjour: Received incoming connection from 192.168.1.77
 (14:08:37) bonjour: We don't like invisible buddies, this is not a
 superheros comic


 With the sending client sending to a different IP.
 For instance, both computers are on 10.23.0.0/24  with 10.23.0.2 and
 10.23.0.3.
 they are also both on 192.168.1.0/24 with  *.110 and *.77

 The sender will say something like 'trying to send message to 10.23.0.2',
 but the reciever will recieve something like above.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:8>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:  2.4.0   |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------
Changes (by darkrain42):

  * status:  pending => new


Comment:

 Hmm, does bonjour log the raw data sent/received data (the way XMPP/Google
 Talk does)? If not, nevermind.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:9>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:  2.4.0   |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------

Comment(by bernmeister):

 darkrain: Can you flush the milestone please?

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:10>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:          |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------
Changes (by darkrain42):

  * milestone:  2.4.0 =>


--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:11>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:          |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------

Comment(by bj0):

 It doesn't look like it shows raw data unless it actually succeeds.  The
 only thing it shows is the 'connect to...' and 'recieved incoming
 connection...'   and then the 'invisible buddies'.  I'm not on the
 computers where I can test this right now though.

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:12>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:          |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------

Comment(by datallah):

 Here is some additional debug information (hopefully more will follow):
 Sender:
 {{{
 (14:24:50) bonjour: Starting conversation with zac@lab01
 (14:24:50) dns: DNS query for '10.23.0.2' queued
 (14:24:50) dnsquery: IP resolved for 10.23.0.2
 (14:24:50) proxy: Attempting connection to 10.23.0.2
 (14:24:50) proxy: Connecting to 10.23.0.2:5298 with no proxy
 (14:24:50) proxy: Connection in progress
 (14:24:50) proxy: Connecting to 10.23.0.2:5298.
 (14:24:50) proxy: Connected to 10.23.0.2:5298.
 (14:24:50) bonjour: Connection closed (without stream end) by zac@lab01.
 (14:24:50) bonjour: Recieved conversation close notification from
 zac@lab01.
 }}}

 Receiver:
 {{{
 (14:24:48) bonjour: Received incoming connection from 10.23.0.3.
 (14:24:48) bonjour: We don't like invisible buddies, this is not a
 superheros comic
 }}}

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:13>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker

Re: #4187: Doesnt cope with bonjour contacts having multiple presence records

by Pidgin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#4187: Doesnt cope with bonjour contacts having multiple presence records
--------------------+-------------------------------------------------------
 Reporter:  sjoerd  |        Owner:  datallah
     Type:  defect  |       Status:  new    
Milestone:          |    Component:  Bonjour
  Version:  2.3.0   |   Resolution:          
 Keywords:          |  
--------------------+-------------------------------------------------------

Comment(by datallah):

 The remaining issue appears to be an avahi issue related to having
 multiple IPs on a single interface [http://avahi.org/ticket/288 Avahi
 Ticket #288].

--
Ticket URL: <http://developer.pidgin.im/ticket/4187#comment:14>
Pidgin <http://pidgin.im>
Pidgin
_______________________________________________
Tracker mailing list
Tracker@...
http://pidgin.im/cgi-bin/mailman/listinfo/tracker