mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-11 05:48:41 +00:00
MINOR: listener: automatically set the port when creating listeners
In create_listeners() we iterate over a port range and call the protocol's ->add() function to add a new listener on the specified port. Only tcp4/tcp6/udp4/udp6 support a port, the other ones ignore it. Now that we can rely on the address family to properly set the port, better do it this way directly from create_listeners() and remove the family-specific case from the protocol layer.
This commit is contained in:
parent
73bed9ff13
commit
07400c56bb
@ -614,7 +614,11 @@ int create_listeners(struct bind_conf *bc, const struct sockaddr_storage *ss,
|
||||
l->rx.owner = l;
|
||||
l->rx.iocb = proto->default_iocb;
|
||||
l->rx.fd = fd;
|
||||
|
||||
memcpy(&l->rx.addr, ss, sizeof(*ss));
|
||||
if (proto->fam.set_port)
|
||||
proto->fam.set_port(&l->rx.addr, port);
|
||||
|
||||
MT_LIST_INIT(&l->wait_queue);
|
||||
listener_set_state(l, LI_INIT);
|
||||
|
||||
|
@ -725,7 +725,6 @@ static void tcpv4_add_listener(struct listener *listener, int port)
|
||||
return;
|
||||
listener_set_state(listener, LI_ASSIGNED);
|
||||
listener->rx.proto = &proto_tcpv4;
|
||||
((struct sockaddr_in *)(&listener->rx.addr))->sin_port = htons(port);
|
||||
LIST_ADDQ(&proto_tcpv4.receivers, &listener->rx.proto_list);
|
||||
proto_tcpv4.nb_receivers++;
|
||||
}
|
||||
@ -743,7 +742,6 @@ static void tcpv6_add_listener(struct listener *listener, int port)
|
||||
return;
|
||||
listener_set_state(listener, LI_ASSIGNED);
|
||||
listener->rx.proto = &proto_tcpv6;
|
||||
((struct sockaddr_in6 *)(&listener->rx.addr))->sin6_port = htons(port);
|
||||
LIST_ADDQ(&proto_tcpv6.receivers, &listener->rx.proto_list);
|
||||
proto_tcpv6.nb_receivers++;
|
||||
}
|
||||
|
@ -152,7 +152,6 @@ static void udp4_add_listener(struct listener *listener, int port)
|
||||
return;
|
||||
listener_set_state(listener, LI_ASSIGNED);
|
||||
listener->rx.proto = &proto_udp4;
|
||||
((struct sockaddr_in *)(&listener->rx.addr))->sin_port = htons(port);
|
||||
LIST_ADDQ(&proto_udp4.receivers, &listener->rx.proto_list);
|
||||
proto_udp4.nb_receivers++;
|
||||
}
|
||||
@ -167,7 +166,6 @@ static void udp6_add_listener(struct listener *listener, int port)
|
||||
return;
|
||||
listener_set_state(listener, LI_ASSIGNED);
|
||||
listener->rx.proto = &proto_udp6;
|
||||
((struct sockaddr_in6 *)(&listener->rx.addr))->sin6_port = htons(port);
|
||||
LIST_ADDQ(&proto_udp6.receivers, &listener->rx.proto_list);
|
||||
proto_udp6.nb_receivers++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user