Hold off on this for now, claudio pointed out that I might not be
supposed to use SO_BINDANY like this.
On Fri, Jan 29, 2021 at 04:51:46PM +0100, Florian Obser wrote:
> I want to start unwind earlier, around the time when slaacd comes up,
> the network is not up at that point. Set SO_BINDANY to be able to
> already bind upd/53 and tcp/53 on localhost.
> This will make integration with dhclient easier (I hope).
>
> diff --git unwind.c unwind.c
> index 00c600560e4..9bfc4dcf3b8 100644
> --- unwind.c
> +++ unwind.c
> @@ -746,6 +746,9 @@ open_ports(void)
> if (setsockopt(udp4sock, SOL_SOCKET, SO_SNDBUF, &bsize,
> sizeof(bsize)) == -1)
> log_warn("setting SO_SNDBUF on socket");
> + if (setsockopt(udp4sock, SOL_SOCKET, SO_BINDANY, &opt,
> + sizeof(opt)) == -1)
> + log_warn("setting SO_BINDANY on socket");
> if (bind(udp4sock, res0->ai_addr, res0->ai_addrlen)
> == -1) {
> close(udp4sock);
> @@ -767,6 +770,9 @@ open_ports(void)
> if (setsockopt(udp6sock, SOL_SOCKET, SO_SNDBUF, &bsize,
> sizeof(bsize)) == -1)
> log_warn("setting SO_SNDBUF on socket");
> + if (setsockopt(udp6sock, SOL_SOCKET, SO_BINDANY, &opt,
> + sizeof(opt)) == -1)
> + log_warn("setting SO_BINDANY on socket");
> if (bind(udp6sock, res0->ai_addr, res0->ai_addrlen)
> == -1) {
> close(udp6sock);
> @@ -791,6 +797,9 @@ open_ports(void)
> if (setsockopt(tcp4sock, SOL_SOCKET, SO_SNDBUF, &bsize,
> sizeof(bsize)) == -1)
> log_warn("setting SO_SNDBUF on socket");
> + if (setsockopt(tcp4sock, SOL_SOCKET, SO_BINDANY, &opt,
> + sizeof(opt)) == -1)
> + log_warn("setting SO_BINDANY on socket");
> if (bind(tcp4sock, res0->ai_addr, res0->ai_addrlen)
> == -1) {
> close(tcp4sock);
> @@ -817,6 +826,9 @@ open_ports(void)
> if (setsockopt(tcp6sock, SOL_SOCKET, SO_SNDBUF, &bsize,
> sizeof(bsize)) == -1)
> log_warn("setting SO_SNDBUF on socket");
> + if (setsockopt(tcp6sock, SOL_SOCKET, SO_BINDANY, &opt,
> + sizeof(opt)) == -1)
> + log_warn("setting SO_BINDANY on socket");
> if (bind(tcp6sock, res0->ai_addr, res0->ai_addrlen)
> == -1) {
> close(tcp6sock);
>
>
> --
> I'm not entirely sure you are real.
>
--
I'm not entirely sure you are real.