aboutgitcodebugslistschat
path: root/util.h
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2022-10-07 04:53:40 +0200
committerStefano Brivio <sbrivio@redhat.com>2022-10-15 02:10:36 +0200
commitc1eff9a3c622516c7bb9194a1df50dfe01281c56 (patch)
tree01dc155f0b38022a511f37e3760b0844ffa195e2 /util.h
parenta62ed181db9ba7d85d057365d5331dd35026247f (diff)
downloadpasst-c1eff9a3c622516c7bb9194a1df50dfe01281c56.tar
passt-c1eff9a3c622516c7bb9194a1df50dfe01281c56.tar.gz
passt-c1eff9a3c622516c7bb9194a1df50dfe01281c56.tar.bz2
passt-c1eff9a3c622516c7bb9194a1df50dfe01281c56.tar.lz
passt-c1eff9a3c622516c7bb9194a1df50dfe01281c56.tar.xz
passt-c1eff9a3c622516c7bb9194a1df50dfe01281c56.tar.zst
passt-c1eff9a3c622516c7bb9194a1df50dfe01281c56.zip
conf, tcp, udp: Allow specification of interface to bind to
Since kernel version 5.7, commit c427bfec18f2 ("net: core: enable SO_BINDTODEVICE for non-root users"), we can bind sockets to interfaces, if they haven't been bound yet (as in bind()). Introduce an optional interface specification for forwarded ports, prefixed by %, that can be passed together with an address. Reported use case: running local services that use ports we want to have externally forwarded: https://github.com/containers/podman/issues/14425 Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'util.h')
-rw-r--r--util.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/util.h b/util.h
index f9a8ec6..7dc3d18 100644
--- a/util.h
+++ b/util.h
@@ -194,7 +194,8 @@ __attribute__ ((weak)) int ffsl(long int i) { return __builtin_ffsl(i); }
char *ipv6_l4hdr(const struct pool *p, int index, size_t offset, uint8_t *proto,
size_t *dlen);
int sock_l4(const struct ctx *c, int af, uint8_t proto,
- const void *bind_addr, uint16_t port, uint32_t data);
+ const void *bind_addr, const char *ifname, uint16_t port,
+ uint32_t data);
void sock_probe_mem(struct ctx *c);
int timespec_diff_ms(const struct timespec *a, const struct timespec *b);
void bitmap_set(uint8_t *map, int bit);