mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-26 14:42:21 +00:00
MINOR: protocol: replace ctrl_type with xprt_type and clarify it
There's been some great confusion between proto_type, ctrl_type and sock_type. It turns out that ctrl_type was improperly chosen because it's not the control layer that is of this or that type, but the transport layer, and it turns out that the transport layer doesn't (normally) denaturate the underlying control layer, except for QUIC which turns dgrams to streams. The fact that the SOCK_{DGRAM|STREAM} set of values was used added to the confusion. Let's replace it with xprt_type which reuses the later introduced PROTO_TYPE_* values, and update the comments to explain which one works at what level.
This commit is contained in:
parent
3d7b4684fe
commit
91b47263f7
@ -89,8 +89,8 @@ struct proto_fam {
|
|||||||
struct protocol {
|
struct protocol {
|
||||||
char name[PROTO_NAME_LEN]; /* protocol name, zero-terminated */
|
char name[PROTO_NAME_LEN]; /* protocol name, zero-terminated */
|
||||||
struct proto_fam *fam; /* protocol family */
|
struct proto_fam *fam; /* protocol family */
|
||||||
int ctrl_type; /* control layer type (SOCK_STREAM/SOCK_DGRAM) */
|
int xprt_type; /* transport layer type (PROTO_TYPE_STREAM/PROTO_TYPE_DGRAM) */
|
||||||
enum proto_type proto_type; /* protocol type (PROTO_TYPE_*) */
|
enum proto_type proto_type; /* protocol type at the socket layer (PROTO_TYPE_*) */
|
||||||
int sock_type; /* socket type, as passed to socket() */
|
int sock_type; /* socket type, as passed to socket() */
|
||||||
int sock_prot; /* socket protocol, as passed to socket() */
|
int sock_prot; /* socket protocol, as passed to socket() */
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ int str2listener(char *str, struct proxy *curproxy, struct bind_conf *bind_conf,
|
|||||||
* is selected, regardless of bind_conf settings. We then need
|
* is selected, regardless of bind_conf settings. We then need
|
||||||
* to initialize QUIC params.
|
* to initialize QUIC params.
|
||||||
*/
|
*/
|
||||||
if (proto->proto_type == PROTO_TYPE_DGRAM && proto->ctrl_type == SOCK_STREAM) {
|
if (proto->proto_type == PROTO_TYPE_DGRAM && proto->xprt_type == PROTO_TYPE_STREAM) {
|
||||||
bind_conf->xprt = xprt_get(XPRT_QUIC);
|
bind_conf->xprt = xprt_get(XPRT_QUIC);
|
||||||
quic_transport_params_init(&bind_conf->quic_params, 1);
|
quic_transport_params_init(&bind_conf->quic_params, 1);
|
||||||
}
|
}
|
||||||
|
@ -1005,7 +1005,7 @@ int parse_logsrv(char **args, struct list *logsrvs, int do_del, const char *file
|
|||||||
set_host_port(&logsrv->addr, SYSLOG_PORT);
|
set_host_port(&logsrv->addr, SYSLOG_PORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proto && proto->ctrl_type == SOCK_STREAM) {
|
if (proto && proto->xprt_type == PROTO_TYPE_STREAM) {
|
||||||
static unsigned long ring_ids;
|
static unsigned long ring_ids;
|
||||||
|
|
||||||
/* Implicit sink buffer will be
|
/* Implicit sink buffer will be
|
||||||
|
@ -65,7 +65,7 @@ struct protocol proto_quic4 = {
|
|||||||
.name = "quic4",
|
.name = "quic4",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_STREAM,
|
.xprt_type = PROTO_TYPE_STREAM,
|
||||||
.listen = quic_bind_listener,
|
.listen = quic_bind_listener,
|
||||||
.enable = quic_enable_listener,
|
.enable = quic_enable_listener,
|
||||||
.disable = quic_disable_listener,
|
.disable = quic_disable_listener,
|
||||||
@ -105,7 +105,7 @@ struct protocol proto_quic6 = {
|
|||||||
.name = "quic6",
|
.name = "quic6",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_STREAM,
|
.xprt_type = PROTO_TYPE_STREAM,
|
||||||
.listen = quic_bind_listener,
|
.listen = quic_bind_listener,
|
||||||
.enable = quic_enable_listener,
|
.enable = quic_enable_listener,
|
||||||
.disable = quic_disable_listener,
|
.disable = quic_disable_listener,
|
||||||
|
@ -65,7 +65,7 @@ struct protocol proto_sockpair = {
|
|||||||
.name = "sockpair",
|
.name = "sockpair",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_STREAM,
|
.xprt_type = PROTO_TYPE_STREAM,
|
||||||
.listen = sockpair_bind_listener,
|
.listen = sockpair_bind_listener,
|
||||||
.enable = sockpair_enable_listener,
|
.enable = sockpair_enable_listener,
|
||||||
.disable = sockpair_disable_listener,
|
.disable = sockpair_disable_listener,
|
||||||
|
@ -54,7 +54,7 @@ struct protocol proto_tcpv4 = {
|
|||||||
.name = "tcpv4",
|
.name = "tcpv4",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_STREAM,
|
.xprt_type = PROTO_TYPE_STREAM,
|
||||||
.listen = tcp_bind_listener,
|
.listen = tcp_bind_listener,
|
||||||
.enable = tcp_enable_listener,
|
.enable = tcp_enable_listener,
|
||||||
.disable = tcp_disable_listener,
|
.disable = tcp_disable_listener,
|
||||||
@ -97,7 +97,7 @@ struct protocol proto_tcpv6 = {
|
|||||||
.name = "tcpv6",
|
.name = "tcpv6",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_STREAM,
|
.xprt_type = PROTO_TYPE_STREAM,
|
||||||
.listen = tcp_bind_listener,
|
.listen = tcp_bind_listener,
|
||||||
.enable = tcp_enable_listener,
|
.enable = tcp_enable_listener,
|
||||||
.disable = tcp_disable_listener,
|
.disable = tcp_disable_listener,
|
||||||
|
@ -49,7 +49,7 @@ struct protocol proto_udp4 = {
|
|||||||
.name = "udp4",
|
.name = "udp4",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_DGRAM,
|
.xprt_type = PROTO_TYPE_DGRAM,
|
||||||
.listen = udp_bind_listener,
|
.listen = udp_bind_listener,
|
||||||
.enable = udp_enable_listener,
|
.enable = udp_enable_listener,
|
||||||
.disable = udp_disable_listener,
|
.disable = udp_disable_listener,
|
||||||
@ -83,7 +83,7 @@ struct protocol proto_udp6 = {
|
|||||||
.name = "udp6",
|
.name = "udp6",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_DGRAM,
|
.xprt_type = PROTO_TYPE_DGRAM,
|
||||||
.listen = udp_bind_listener,
|
.listen = udp_bind_listener,
|
||||||
.enable = udp_enable_listener,
|
.enable = udp_enable_listener,
|
||||||
.disable = udp_disable_listener,
|
.disable = udp_disable_listener,
|
||||||
|
@ -40,7 +40,7 @@ struct protocol proto_uxdg = {
|
|||||||
.name = "uxdg",
|
.name = "uxdg",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_DGRAM,
|
.xprt_type = PROTO_TYPE_DGRAM,
|
||||||
.listen = uxdg_bind_listener,
|
.listen = uxdg_bind_listener,
|
||||||
.enable = uxdg_enable_listener,
|
.enable = uxdg_enable_listener,
|
||||||
.disable = uxdg_disable_listener,
|
.disable = uxdg_disable_listener,
|
||||||
|
@ -50,7 +50,7 @@ struct protocol proto_uxst = {
|
|||||||
.name = "unix_stream",
|
.name = "unix_stream",
|
||||||
|
|
||||||
/* connection layer */
|
/* connection layer */
|
||||||
.ctrl_type = SOCK_STREAM,
|
.xprt_type = PROTO_TYPE_STREAM,
|
||||||
.listen = uxst_bind_listener,
|
.listen = uxst_bind_listener,
|
||||||
.enable = uxst_enable_listener,
|
.enable = uxst_enable_listener,
|
||||||
.disable = uxst_disable_listener,
|
.disable = uxst_disable_listener,
|
||||||
|
@ -44,7 +44,7 @@ void protocol_register(struct protocol *proto)
|
|||||||
LIST_APPEND(&protocols, &proto->list);
|
LIST_APPEND(&protocols, &proto->list);
|
||||||
__protocol_by_family[sock_domain]
|
__protocol_by_family[sock_domain]
|
||||||
[proto->proto_type]
|
[proto->proto_type]
|
||||||
[proto->ctrl_type == SOCK_DGRAM] = proto;
|
[proto->xprt_type == PROTO_TYPE_DGRAM] = proto;
|
||||||
HA_SPIN_UNLOCK(PROTO_LOCK, &proto_lock);
|
HA_SPIN_UNLOCK(PROTO_LOCK, &proto_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3455,7 +3455,7 @@ int cfg_parse_resolvers(const char *file, int linenum, char **args, int kwm)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proto && proto->ctrl_type == SOCK_STREAM) {
|
if (proto && proto->xprt_type == PROTO_TYPE_STREAM) {
|
||||||
err_code |= parse_server(file, linenum, args, curr_resolvers->px, NULL,
|
err_code |= parse_server(file, linenum, args, curr_resolvers->px, NULL,
|
||||||
SRV_PARSE_PARSE_ADDR|SRV_PARSE_INITIAL_RESOLVE);
|
SRV_PARSE_PARSE_ADDR|SRV_PARSE_INITIAL_RESOLVE);
|
||||||
if (err_code & (ERR_FATAL|ERR_ABORT)) {
|
if (err_code & (ERR_FATAL|ERR_ABORT)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user