From ddfc40eabdbc59a607b568e946fb116dcd3439fd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 14:20:30 +0200 Subject: Adding upstream version 2.9.7. Signed-off-by: Daniel Baumann --- include/haproxy/cli-t.h | 1 + include/haproxy/compat.h | 6 ++++++ include/haproxy/connection-t.h | 1 + include/haproxy/hlua-t.h | 1 + include/haproxy/hlua.h | 3 +++ include/haproxy/quic_tls-t.h | 2 -- include/haproxy/session.h | 6 ++++++ include/haproxy/stream-t.h | 2 +- include/import/ist.h | 11 ++++------- 9 files changed, 23 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/haproxy/cli-t.h b/include/haproxy/cli-t.h index c155df3..cad6728 100644 --- a/include/haproxy/cli-t.h +++ b/include/haproxy/cli-t.h @@ -45,6 +45,7 @@ #define APPCTX_CLI_ST1_PAYLOAD (1 << 1) #define APPCTX_CLI_ST1_NOLF (1 << 2) #define APPCTX_CLI_ST1_TIMED (1 << 3) +#define APPCTX_CLI_ST1_SHUT_EXPECTED (1 << 4) #define CLI_PREFIX_KW_NB 5 #define CLI_MAX_MATCHES 5 diff --git a/include/haproxy/compat.h b/include/haproxy/compat.h index aa4f952..0fe5a0b 100644 --- a/include/haproxy/compat.h +++ b/include/haproxy/compat.h @@ -303,6 +303,12 @@ typedef struct { } empty_t; #define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC_FAST #endif +/* On Solaris, `queue` is a reserved name, so we redefine it here for now. + */ +#if defined(sun) +#define queue _queue +#endif + #endif /* _HAPROXY_COMPAT_H */ /* diff --git a/include/haproxy/connection-t.h b/include/haproxy/connection-t.h index 2619fd6..71269c6 100644 --- a/include/haproxy/connection-t.h +++ b/include/haproxy/connection-t.h @@ -337,6 +337,7 @@ enum mux_ctl_type { MUX_CTL_EXIT_STATUS, /* Expects an int as output, sets the mux exist/error/http status, if known or 0 */ MUX_CTL_REVERSE_CONN, /* Notify about an active reverse connection accepted. */ MUX_CTL_SUBS_RECV, /* Notify the mux it must wait for read events again */ + MUX_CTL_GET_GLITCHES, /* returns number of glitches on the connection */ }; /* sctl command used by mux->sctl() */ diff --git a/include/haproxy/hlua-t.h b/include/haproxy/hlua-t.h index 2672ffd..af54d86 100644 --- a/include/haproxy/hlua-t.h +++ b/include/haproxy/hlua-t.h @@ -67,6 +67,7 @@ struct stream; #define HLUA_WAKEREQWR 0x00000008 #define HLUA_EXIT 0x00000010 #define HLUA_NOYIELD 0x00000020 +#define HLUA_BUSY 0x00000040 #define HLUA_F_AS_STRING 0x01 #define HLUA_F_MAY_USE_HTTP 0x02 diff --git a/include/haproxy/hlua.h b/include/haproxy/hlua.h index 3c67cce..18fad9f 100644 --- a/include/haproxy/hlua.h +++ b/include/haproxy/hlua.h @@ -30,6 +30,9 @@ #define HLUA_SET_RUN(__hlua) do {(__hlua)->flags |= HLUA_RUN;} while(0) #define HLUA_CLR_RUN(__hlua) do {(__hlua)->flags &= ~HLUA_RUN;} while(0) #define HLUA_IS_RUNNING(__hlua) ((__hlua)->flags & HLUA_RUN) +#define HLUA_SET_BUSY(__hlua) do {(__hlua)->flags |= HLUA_BUSY;} while(0) +#define HLUA_CLR_BUSY(__hlua) do {(__hlua)->flags &= ~HLUA_BUSY;} while(0) +#define HLUA_IS_BUSY(__hlua) ((__hlua)->flags & HLUA_BUSY) #define HLUA_SET_CTRLYIELD(__hlua) do {(__hlua)->flags |= HLUA_CTRLYIELD;} while(0) #define HLUA_CLR_CTRLYIELD(__hlua) do {(__hlua)->flags &= ~HLUA_CTRLYIELD;} while(0) #define HLUA_IS_CTRLYIELDING(__hlua) ((__hlua)->flags & HLUA_CTRLYIELD) diff --git a/include/haproxy/quic_tls-t.h b/include/haproxy/quic_tls-t.h index ae65149..326e01b 100644 --- a/include/haproxy/quic_tls-t.h +++ b/include/haproxy/quic_tls-t.h @@ -254,8 +254,6 @@ struct quic_enc_level { struct eb_root pkts; /* List of QUIC packets with protected header. */ struct list pqpkts; - /* List of crypto frames received in order. */ - struct list crypto_frms; } rx; /* TX part */ diff --git a/include/haproxy/session.h b/include/haproxy/session.h index 38335e4..8a62805 100644 --- a/include/haproxy/session.h +++ b/include/haproxy/session.h @@ -188,6 +188,12 @@ static inline int session_add_conn(struct session *sess, struct connection *conn LIST_APPEND(&sess->srv_list, &srv_list->srv_list); } LIST_APPEND(&srv_list->conn_list, &conn->session_list); + + /* Ensure owner is set for connection. It could have been resetted + * prior on after a session_add_conn() failure. + */ + conn->owner = sess; + return 1; } diff --git a/include/haproxy/stream-t.h b/include/haproxy/stream-t.h index 7e79b96..4280692 100644 --- a/include/haproxy/stream-t.h +++ b/include/haproxy/stream-t.h @@ -279,7 +279,7 @@ struct stream { int last_rule_line; /* last evaluated final rule's line (def: 0) */ unsigned int stream_epoch; /* copy of stream_epoch when the stream was created */ - struct hlua *hlua; /* lua runtime context */ + struct hlua *hlua[2]; /* lua runtime context (0: global, 1: per-thread) */ /* Context */ struct { diff --git a/include/import/ist.h b/include/import/ist.h index 16b8616..e4e1425 100644 --- a/include/import/ist.h +++ b/include/import/ist.h @@ -939,15 +939,12 @@ static inline void istfree(struct ist *ist) */ static inline struct ist istdup(const struct ist src) { - const size_t src_size = src.len; - - /* Allocate at least 1 byte to allow duplicating an empty string with - * malloc implementations that return NULL for a 0-size allocation. - */ - struct ist dst = istalloc(src_size ? src_size : 1); + /* Allocate 1 extra byte to add an extra \0 delimiter. */ + struct ist dst = istalloc(src.len + 1); if (isttest(dst)) { - istcpy(&dst, src, src_size); + istcpy(&dst, src, src.len); + dst.ptr[dst.len] = '\0'; } return dst; -- cgit v1.2.3