aboutgitcodebugslistschat
path: root/udp.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2022-07-22 15:31:17 +1000
committerStefano Brivio <sbrivio@redhat.com>2022-07-30 22:12:50 +0200
commit5e12d23acbda8871848c6221a4f14e5b7daff66f (patch)
tree7f171e09937df535be0dc2c78c097b9681ffdf68 /udp.c
parentc984ee5afdd84098fc103e110f4501d0ea196fe8 (diff)
downloadpasst-5e12d23acbda8871848c6221a4f14e5b7daff66f.tar
passt-5e12d23acbda8871848c6221a4f14e5b7daff66f.tar.gz
passt-5e12d23acbda8871848c6221a4f14e5b7daff66f.tar.bz2
passt-5e12d23acbda8871848c6221a4f14e5b7daff66f.tar.lz
passt-5e12d23acbda8871848c6221a4f14e5b7daff66f.tar.xz
passt-5e12d23acbda8871848c6221a4f14e5b7daff66f.tar.zst
passt-5e12d23acbda8871848c6221a4f14e5b7daff66f.zip
Separate IPv4 and IPv6 configuration
After recent changes, conf_ip() now has essentially entirely disjoint paths for IPv4 and IPv6 configuration. So, it's cleaner to split them out into different functions conf_ip4() and conf_ip6(). Splitting these out also lets us make the interface a bit nicer, having them return success or failure directly, rather than manipulating c->v4 and c->v6 to indicate success/failure of the two versions. Since these functions may also initialize the interface index for each protocol, it turns out we can then drop c->v4 and c->v6 entirely, replacing tests on those with tests on whether c->ifi4 or c->ifi6 is non-zero (since a 0 interface index is never valid). Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Whitespace fixes] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'udp.c')
-rw-r--r--udp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/udp.c b/udp.c
index 98e3eaa..856429f 100644
--- a/udp.c
+++ b/udp.c
@@ -1266,10 +1266,10 @@ static void udp_splice_iov_init(void)
*/
int udp_init(const struct ctx *c)
{
- if (c->v4)
+ if (c->ifi4)
udp_sock4_iov_init();
- if (c->v6)
+ if (c->ifi6)
udp_sock6_iov_init();
if (c->mode == MODE_PASTA) {
@@ -1341,7 +1341,7 @@ void udp_timer(struct ctx *c, const struct timespec *ts)
unsigned int i;
long *word, tmp;
- if (!c->v4)
+ if (!c->ifi4)
v6 = 1;
v6:
for (t = 0; t < UDP_ACT_TYPE_MAX; t++) {
@@ -1356,7 +1356,7 @@ v6:
}
}
- if (!v6 && c->v6) {
+ if (!v6 && c->ifi6) {
v6 = 1;
goto v6;
}