Bug 23723 - Tube: no error when the application does not listen on the port declared by Offer()
Summary: Tube: no error when the application does not listen on the port declared by O...
Status: NEW
Alias: None
Product: Telepathy
Classification: Unclassified
Component: gabble (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-04 16:15 UTC by Alban Crequy
Modified: 2009-09-04 16:15 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.


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.