mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 14:21:00 +01:00
MINOR: stconn: Add a connection flag to notify sending data are the last ones
This flag can be use by endpoints to know the data to send, via .snd_buf callback function are the last ones. It is useful to know a shutdown is pending but it cannot be delivered while sedning data are not consumed.
This commit is contained in:
parent
a933569b52
commit
838fb54de6
@ -278,6 +278,7 @@ enum {
|
||||
enum {
|
||||
CO_SFL_MSG_MORE = 0x0001, /* More data to come afterwards */
|
||||
CO_SFL_STREAMER = 0x0002, /* Producer is continuously streaming data */
|
||||
CO_SFL_LAST_DATA = 0x0003, /* Sent data are the last ones, shutdown is pending */
|
||||
};
|
||||
|
||||
/* mux->shutr() modes */
|
||||
|
||||
10
src/stconn.c
10
src/stconn.c
@ -1636,6 +1636,9 @@ int sc_conn_send(struct stconn *sc)
|
||||
}
|
||||
}
|
||||
|
||||
if ((sc->flags & SC_FL_SHUT_WANTED) && co_data(oc) == c_data(oc))
|
||||
send_flag |= CO_SFL_LAST_DATA;
|
||||
|
||||
ret = conn->mux->snd_buf(sc, &oc->buf, co_data(oc), send_flag);
|
||||
if (ret > 0) {
|
||||
did_send = 1;
|
||||
@ -2154,7 +2157,12 @@ int sc_applet_send(struct stconn *sc)
|
||||
BUG_ON(sc_ep_have_ff_data(sc));
|
||||
|
||||
if (co_data(oc)) {
|
||||
ret = appctx_snd_buf(sc, &oc->buf, co_data(oc), 0);
|
||||
unsigned int send_flag = 0;
|
||||
|
||||
if ((sc->flags & SC_FL_SHUT_WANTED) && co_data(oc) == c_data(oc))
|
||||
send_flag |= CO_SFL_LAST_DATA;
|
||||
|
||||
ret = appctx_snd_buf(sc, &oc->buf, co_data(oc), send_flag);
|
||||
if (ret > 0) {
|
||||
did_send = 1;
|
||||
c_rew(oc, ret);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user