[glib/mcatanzaro/#2211: 5/8] gsocketclient: document Happy Eyeballs
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [glib/mcatanzaro/#2211: 5/8] gsocketclient: document Happy Eyeballs
- Date: Fri,  9 Oct 2020 15:50:27 +0000 (UTC)
commit 290d5722beb9405ffbb1a6262e94bf6de4db6f5e
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Thu Oct 8 19:08:34 2020 -0500
    gsocketclient: document Happy Eyeballs
    
    This isn't an API guarantee, but it's a potentially-surprising
    behavior difference between the sync and async functions that is good
    to know about, especially because our sync and async functions are
    normally identical.
 gio/gsocketclient.c | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index 0a9e9df82..8a663c3de 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -1936,6 +1936,15 @@ g_socket_client_enumerator_callback (GObject      *object,
  *
  * This is the asynchronous version of g_socket_client_connect().
  *
+ * You may wish to prefer the asynchronous version even in synchronous
+ * command line programs because, since 2.60, it implements
+ * [RFC 8305](https://tools.ietf.org/html/rfc8305) "Happy Eyeballs"
+ * recommendations to work around long connection timeouts in networks
+ * where IPv6 is broken by performing an IPv4 connection simultaneously
+ * without waiting for IPv6 to time out, which is not supported by the
+ * synchronous call. (This is not an API guarantee, and may change in
+ * the future.)
+ *
  * When the operation is finished @callback will be
  * called. You can then call g_socket_client_connect_finish() to get
  * the result of the operation.
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]