MAJOR: connection: add a new CO_FL_CONNECTED flag
This new flag is used to indicate that the connection was already
connected. It can be used by I/O handlers to know that a connection
has just completed. It is used by stream_sock_update_conn(), allowing
the sock_opt handlers not to manipulate the SI timeout nor the
BF_WRITE_NULL flag anymore.
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 1a6db19..8415abb 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -501,6 +501,12 @@
if (conn->flags & CO_FL_ERROR)
si->flags |= SI_FL_ERR;
+ /* check for recent connection establishment */
+ if (!(conn->flags & (CO_FL_WAIT_L4_CONN | CO_FL_CONNECTED))) {
+ si->exp = TICK_ETERNITY;
+ si->ob->flags |= BF_WRITE_NULL;
+ }
+
/* process consumer side, only once if possible */
if (fdtab[fd].ev & (FD_POLL_OUT | FD_POLL_ERR)) {
if (si->ob->flags & BF_OUT_EMPTY) {