]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
REORG: channel: Rename CF_READ_NULL to CF_READ_EVENT
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 12 Dec 2022 07:08:15 +0000 (08:08 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 9 Jan 2023 17:41:08 +0000 (18:41 +0100)
CF_READ_NULL flag is not really useful and used. It is a transient event
used to wakeup the stream. As we will see, all read events on a channel may
be resumed to only one and are all used to wake up the stream.

In this patch, we introduce CF_READ_EVENT flag as a replacement to
CF_READ_NULL. There is no breaking change for now, it is just a
rename. Gradually, other read events will be merged with this one.

15 files changed:
addons/promex/service-prometheus.c
include/haproxy/channel-t.h
src/cache.c
src/cli.c
src/dns.c
src/flt_spoe.c
src/hlua.c
src/http_ana.c
src/log.c
src/peers.c
src/sink.c
src/ssl_sock.c
src/stats.c
src/stconn.c
src/stream.c

index 5622b80390990a359a81eb074df4edc4465a633b..4fee8c353f2ba931536a8f089aec4b273e6c0396 100644 (file)
@@ -1598,7 +1598,7 @@ static void promex_appctx_handle_io(struct appctx *appctx)
 
                case PROMEX_ST_END:
                        if (!(res->flags & CF_SHUTR)) {
-                               res->flags |= CF_READ_NULL;
+                               res->flags |= CF_READ_EVENT;
                                sc_shutr(sc);
                        }
        }
@@ -1614,7 +1614,7 @@ static void promex_appctx_handle_io(struct appctx *appctx)
        return;
 
   error:
-       res->flags |= CF_READ_NULL;
+       res->flags |= CF_READ_EVENT;
        sc_shutr(sc);
        sc_shutw(sc);
 }
index 5cfd54f6155e6a28b3f8edfc8a083d3bde6ed892..ff764a7a6e3d65d88fc3a10ae932a19cba26a87c 100644 (file)
  * Please also update the chn_show_flags() function below in case of changes.
  */
 
-#define CF_READ_NULL      0x00000001  /* last read detected on producer side */
+#define CF_READ_EVENT     0x00000001  /* a read event detected on producer side */
 #define CF_READ_PARTIAL   0x00000002  /* some data were read from producer or a read exception occurred */
 #define CF_READ_TIMEOUT   0x00000004  /* timeout while waiting for producer */
 #define CF_READ_ERROR     0x00000008  /* unrecoverable error on producer side */
-#define CF_READ_ACTIVITY  (CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ERROR)
+#define CF_READ_ACTIVITY  (CF_READ_EVENT|CF_READ_PARTIAL|CF_READ_ERROR)
 
 /* unused: 0x00000010 */
 #define CF_SHUTR          0x00000020  /* producer has already shut down */
@@ -138,7 +138,7 @@ static forceinline char *chn_show_flags(char *buf, size_t len, const char *delim
        /* prologue */
        _(0);
        /* flags */
-       _(CF_READ_NULL, _(CF_READ_PARTIAL, _(CF_READ_TIMEOUT, _(CF_READ_ERROR,
+       _(CF_READ_EVENT, _(CF_READ_PARTIAL, _(CF_READ_TIMEOUT, _(CF_READ_ERROR,
        _(CF_SHUTR, _(CF_SHUTR_NOW, _(CF_READ_NOEXP, _(CF_WRITE_NULL,
        _(CF_WRITE_PARTIAL, _(CF_WRITE_TIMEOUT, _(CF_WRITE_ERROR,
        _(CF_WAKE_WRITE, _(CF_SHUTW, _(CF_SHUTW_NOW, _(CF_AUTO_CLOSE,
index 604d98d20fd0c642bc0ff3ddacce337855059e52..fc800b799ae03927f5164259d6ec37be47f6b21b 100644 (file)
@@ -1533,7 +1533,7 @@ static void http_cache_io_handler(struct appctx *appctx)
 
   end:
        if (!(res->flags & CF_SHUTR) && appctx->st0 == HTX_CACHE_END) {
-               res->flags |= CF_READ_NULL;
+               res->flags |= CF_READ_EVENT;
                sc_shutr(sc);
        }
 
index 79e7e5d4dd4fdc0a8cbbb62d4e8e404f96da1781..0d78e2de5b4e205134762f9ac2f2f933915a8401 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -1184,7 +1184,7 @@ static void cli_io_handler(struct appctx *appctx)
                 * on the response buffer.
                 */
                sc_shutr(sc);
-               res->flags |= CF_READ_NULL;
+               res->flags |= CF_READ_EVENT;
        }
 
  out:
@@ -2785,7 +2785,7 @@ int pcli_wait_for_response(struct stream *s, struct channel *rep, int an_bit)
                sc_set_state(s->scb, SC_ST_INI);
                s->scb->flags &= SC_FL_ISBACK | SC_FL_DONT_WAKE; /* we're in the context of process_stream */
                s->req.flags &= ~(CF_SHUTW|CF_SHUTW_NOW|CF_AUTO_CONNECT|CF_WRITE_ERROR|CF_STREAMER|CF_STREAMER_FAST|CF_NEVER_WAIT|CF_WROTE_DATA);
-               s->res.flags &= ~(CF_SHUTR|CF_SHUTR_NOW|CF_READ_ATTACHED|CF_READ_ERROR|CF_READ_NOEXP|CF_STREAMER|CF_STREAMER_FAST|CF_WRITE_PARTIAL|CF_NEVER_WAIT|CF_WROTE_DATA|CF_READ_NULL);
+               s->res.flags &= ~(CF_SHUTR|CF_SHUTR_NOW|CF_READ_ATTACHED|CF_READ_ERROR|CF_READ_NOEXP|CF_STREAMER|CF_STREAMER_FAST|CF_WRITE_PARTIAL|CF_NEVER_WAIT|CF_WROTE_DATA|CF_READ_EVENT);
                s->flags &= ~(SF_DIRECT|SF_ASSIGNED|SF_BE_ASSIGNED|SF_FORCE_PRST|SF_IGNORE_PRST);
                s->flags &= ~(SF_CURR_SESS|SF_REDIRECTABLE|SF_SRV_REUSED);
                s->flags &= ~(SF_ERR_MASK|SF_FINST_MASK|SF_REDISP);
index ee0353d10a0ae4e7f0490dfeff31aee8f06d2305..a6e6af8bbd71637ef386b13ac4b6211a8dbf87b9 100644 (file)
--- a/src/dns.c
+++ b/src/dns.c
@@ -766,7 +766,7 @@ read:
 close:
        sc_shutw(sc);
        sc_shutr(sc);
-       sc_ic(sc)->flags |= CF_READ_NULL;
+       sc_ic(sc)->flags |= CF_READ_EVENT;
 }
 
 void dns_queries_flush(struct dns_session *ds)
index ed31943816e1dcf419241b2ac9398d66205e9069..3e4fe9735d1fdc208f52fb3e442d0a574f69a64b 100644 (file)
@@ -1303,7 +1303,7 @@ spoe_release_appctx(struct appctx *appctx)
 
                sc_shutw(sc);
                sc_shutr(sc);
-               sc_ic(sc)->flags |= CF_READ_NULL;
+               sc_ic(sc)->flags |= CF_READ_EVENT;
        }
 
        /* Destroy the task attached to this applet */
@@ -2022,7 +2022,7 @@ spoe_handle_appctx(struct appctx *appctx)
 
                        sc_shutw(sc);
                        sc_shutr(sc);
-                       sc_ic(sc)->flags |= CF_READ_NULL;
+                       sc_ic(sc)->flags |= CF_READ_EVENT;
                        __fallthrough;
 
                case SPOE_APPCTX_ST_END:
index a0379914795abe5165bd42ae7d39fa5990e20261..722fb88d0a95521bbcb87c519ebf845a0ccdd4ac 100644 (file)
@@ -1989,7 +1989,7 @@ static void hlua_socket_handler(struct appctx *appctx)
        if (ctx->die) {
                sc_shutw(sc);
                sc_shutr(sc);
-               sc_ic(sc)->flags |= CF_READ_NULL;
+               sc_ic(sc)->flags |= CF_READ_EVENT;
                notification_wake(&ctx->wake_on_read);
                notification_wake(&ctx->wake_on_write);
                stream_shutdown(__sc_strm(sc), SF_ERR_KILLED);
@@ -9415,7 +9415,7 @@ void hlua_applet_tcp_fct(struct appctx *ctx)
 
                /* eat the whole request */
                co_skip(sc_oc(sc), co_data(sc_oc(sc)));
-               res->flags |= CF_READ_NULL;
+               res->flags |= CF_READ_EVENT;
                sc_shutr(sc);
                return;
 
@@ -9698,7 +9698,7 @@ void hlua_applet_http_fct(struct appctx *ctx)
   done:
        if (http_ctx->flags & APPLET_DONE) {
                if (!(res->flags & CF_SHUTR)) {
-                       res->flags |= CF_READ_NULL;
+                       res->flags |= CF_READ_EVENT;
                        sc_shutr(sc);
                }
 
index 1c752d3fc80b75642c855c4f411bf512b7e4c1a4..96eb8cec64dbea78c4d0efdffb4a507343185668 100644 (file)
@@ -1276,7 +1276,7 @@ static __inline int do_l7_retry(struct stream *s, struct stconn *sc)
        res = &s->res;
        /* Remove any write error from the request, and read error from the response */
        req->flags &= ~(CF_WRITE_ERROR | CF_WRITE_TIMEOUT | CF_SHUTW | CF_SHUTW_NOW);
-       res->flags &= ~(CF_READ_ERROR | CF_READ_TIMEOUT | CF_SHUTR | CF_EOI | CF_READ_NULL | CF_SHUTR_NOW);
+       res->flags &= ~(CF_READ_ERROR | CF_READ_TIMEOUT | CF_SHUTR | CF_EOI | CF_READ_EVENT | CF_SHUTR_NOW);
        res->analysers &= AN_RES_FLT_END;
        s->conn_err_type = STRM_ET_NONE;
        s->flags &= ~(SF_CONN_EXP | SF_ERR_MASK | SF_FINST_MASK);
index 61072d6ad5732e373682bb91d16338a88a825d93..3fbae30fc88178968f13ff6fd5d56e4031f1a4b1 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -3689,7 +3689,7 @@ close:
        sc_shutw(sc);
        sc_shutr(sc);
 
-       sc_ic(sc)->flags |= CF_READ_NULL;
+       sc_ic(sc)->flags |= CF_READ_EVENT;
 
        return;
 }
index 8fc84bc6822970dea0e37ee725d055aa34c37c3b..dd73fa25676da3e7e9c9d0bd98bcc53f3a05f34d 100644 (file)
@@ -3195,7 +3195,7 @@ send_msgs:
                                }
                                sc_shutw(sc);
                                sc_shutr(sc);
-                               sc_ic(sc)->flags |= CF_READ_NULL;
+                               sc_ic(sc)->flags |= CF_READ_EVENT;
                                goto out;
                        }
                }
index ef3d0f0f216582720e182e2374230731e71a0c09..3d0fda22347dfc8e65156edc57982320892077b4 100644 (file)
@@ -446,7 +446,7 @@ static void sink_forward_io_handler(struct appctx *appctx)
 close:
        sc_shutw(sc);
        sc_shutr(sc);
-       sc_ic(sc)->flags |= CF_READ_NULL;
+       sc_ic(sc)->flags |= CF_READ_EVENT;
 }
 
 /*
@@ -590,7 +590,7 @@ static void sink_forward_oc_io_handler(struct appctx *appctx)
 close:
        sc_shutw(sc);
        sc_shutr(sc);
-       sc_ic(sc)->flags |= CF_READ_NULL;
+       sc_ic(sc)->flags |= CF_READ_EVENT;
 }
 
 void __sink_forward_session_deinit(struct sink_forward_target *sft)
index 5bdab8cccb5f22ea483e3d89d9333f3b714cf3a1..0fea7dd09932fa973b5c45fac957717a1fd224ae 100644 (file)
@@ -7344,7 +7344,7 @@ enum act_return ssl_action_wait_for_hs(struct act_rule *rule, struct proxy *px,
        if (conn) {
                if (conn->flags & (CO_FL_EARLY_SSL_HS | CO_FL_SSL_WAIT_HS)) {
                        sc_ep_set(s->scf, SE_FL_WAIT_FOR_HS);
-                       s->req.flags |= CF_READ_NULL;
+                       s->req.flags |= CF_READ_EVENT;
                        return ACT_RET_YIELD;
                }
        }
index 84a4f9b6e56819a3a3452da551c9df95ad148949..47b6c060f713ee87bf00098415f7a0e9e273a268 100644 (file)
@@ -4420,7 +4420,7 @@ static void http_stats_io_handler(struct appctx *appctx)
 
        if (appctx->st0 == STAT_HTTP_END) {
                if (!(res->flags & CF_SHUTR)) {
-                       res->flags |= CF_READ_NULL;
+                       res->flags |= CF_READ_EVENT;
                        sc_shutr(sc);
                }
 
index 178155e1abf330df39b7a747b835040d5ab31abe..7bd87d57708836810300f778698932cc0ccd6b5c 100644 (file)
@@ -1194,7 +1194,7 @@ static void sc_notify(struct stconn *sc)
 
        /* wake the task up only when needed */
        if (/* changes on the production side */
-           (ic->flags & (CF_READ_NULL|CF_READ_ERROR)) ||
+           (ic->flags & (CF_READ_EVENT|CF_READ_ERROR)) ||
            !sc_state_in(sc->state, SC_SB_CON|SC_SB_RDY|SC_SB_EST) ||
            sc_ep_test(sc, SE_FL_ERROR) ||
            ((ic->flags & CF_READ_PARTIAL) &&
@@ -1585,7 +1585,7 @@ static int sc_conn_recv(struct stconn *sc)
                ret = 1;
        else if (sc_ep_test(sc, SE_FL_EOS)) {
                /* we received a shutdown */
-               ic->flags |= CF_READ_NULL;
+               ic->flags |= CF_READ_EVENT;
                if (ic->flags & CF_AUTO_CLOSE)
                        channel_shutw_now(ic);
                sc_conn_read0(sc);
@@ -1866,7 +1866,7 @@ static int sc_conn_process(struct stconn *sc)
         */
        if (sc_ep_test(sc, SE_FL_EOS) && !(ic->flags & CF_SHUTR)) {
                /* we received a shutdown */
-               ic->flags |= CF_READ_NULL;
+               ic->flags |= CF_READ_EVENT;
                if (ic->flags & CF_AUTO_CLOSE)
                        channel_shutw_now(ic);
                sc_conn_read0(sc);
index 04b408136fa9d6293d7ff1e866dd087f227f536b..7d69328a2725d2e2d604a1ab1ea372f14a3899da 100644 (file)
@@ -1553,8 +1553,8 @@ static void stream_update_both_sc(struct stream *s)
        struct channel *req = &s->req;
        struct channel *res = &s->res;
 
-       req->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
-       res->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
+       req->flags &= ~(CF_READ_EVENT|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
+       res->flags &= ~(CF_READ_EVENT|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
 
        s->prev_conn_state = scb->state;