diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2022-11-17 16:59:06 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2022-11-25 01:35:58 +0100 |
commit | 9b0cc33d6841bec78e1896d4cd1761a57bd250a7 (patch) | |
tree | 066855ba2b0967e581601e226c6b22fe51d5f5dc /Makefile | |
parent | ebf56c7b56dfb61ef600890ea061b251dec08cc7 (diff) | |
download | passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.tar passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.tar.gz passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.tar.bz2 passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.tar.lz passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.tar.xz passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.tar.zst passt-9b0cc33d6841bec78e1896d4cd1761a57bd250a7.zip |
util: Allow sock_l4() to open dual stack sockets
Currently, when instructed to open an IPv6 socket, sock_l4() explicitly
sets the IPV6_V6ONLY socket option so that the socket will only respond to
IPv6 connections. Linux (and probably other platforms) allow "dual stack"
sockets: IPv6 sockets which can also accept IPv4 connections.
Extend sock_l4() to be able to make such sockets, by passing AF_UNSPEC as
the address family and no bind address (binding to a specific address would
defeat the purpose). We add a Makefile define 'DUAL_STACK_SOCKETS' to
indicate availability of this feature on the target platform.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -11,6 +11,10 @@ VERSION ?= $(shell git describe --tags HEAD 2>/dev/null || echo "unknown\ version") +# Does the target platform allow IPv4 connections to be handled via +# the IPv6 socket API? (Linux does) +DUAL_STACK_SOCKETS := 1 + RLIMIT_STACK_VAL := $(shell /bin/sh -c 'ulimit -s') ifeq ($(RLIMIT_STACK_VAL),unlimited) RLIMIT_STACK_VAL := 1024 @@ -36,6 +40,7 @@ FLAGS += -DPASST_AUDIT_ARCH=AUDIT_ARCH_$(AUDIT_ARCH) FLAGS += -DRLIMIT_STACK_VAL=$(RLIMIT_STACK_VAL) FLAGS += -DARCH=\"$(TARGET_ARCH)\" FLAGS += -DVERSION=\"$(VERSION)\" +FLAGS += -DDUAL_STACK_SOCKETS=$(DUAL_STACK_SOCKETS) PASST_SRCS = arch.c arp.c checksum.c conf.c dhcp.c dhcpv6.c icmp.c igmp.c \ isolation.c lineread.c log.c mld.c ndp.c netlink.c packet.c passt.c \ |