Bug 23723

Summary: Tube: no error when the application does not listen on the port declared by Offer()
Product: Telepathy Reporter: Alban Crequy <alban.crequy>
Component: gabbleAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED MOVED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Alban Crequy 2009-09-04 16:15:20 UTC
If the Telepathy client calls StreamTube.Offer(Socket_Address_Type_IPv4, ("127.0.0.1", 6789), ...) but does not actually listen on the port 6789, the tube does not work correctly.

Expected outcome:
The tube recipient should receives an error: the bytestream should be closed.

Actual outcome:
The bytestream stays open forever and the tube recipient does not know that the data sent through the bytestream is not received by the application.

The last log on the recipient side is:
  "gabble_bytestream_socks5_send: send 164 bytes through bytestream"

The last log on the offerer side is:
  "target_got_connect_reply: reading has been blocked. Blocking now as the socks5 negotiation is done"

The code is: src/tube-stream.c function new_connection_to_socket():
      gibber_tcp_transport_connect (GIBBER_TCP_TRANSPORT (transport), ip,
          port_str);

When this connection fails, no action is taken. We should close the bytestream instead, so that the remote contact can have a feedback and not wait forever.
Comment 1 GitLab Migration User 2019-12-03 19:20:40 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/telepathy/telepathy-gabble/issues/52.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.