summaryrefslogtreecommitdiff
path: root/proto/bfd
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2022-01-10 13:03:15 +0100
committerMaria Matejka <mq@ucw.cz>2022-02-03 10:30:33 +0100
commit0f6ea957541dc59b15f4e8a42e9ed006345a2a70 (patch)
tree5a6b9d2cfe005baeacf1ccfcd83a4453158d2764 /proto/bfd
parentd37513a372b0d5b133f59293af185ec831e2456f (diff)
Explicitly storing and checking loop information in sockets
Diffstat (limited to 'proto/bfd')
-rw-r--r--proto/bfd/bfd.c1
-rw-r--r--proto/bfd/packets.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/proto/bfd/bfd.c b/proto/bfd/bfd.c
index c9b12aa1..b04d7030 100644
--- a/proto/bfd/bfd.c
+++ b/proto/bfd/bfd.c
@@ -1025,6 +1025,7 @@ bfd_notify_init(struct bfd_proto *p)
sk->fd = pfds[1];
sk->data = p;
sk->flags = SKF_THREAD;
+ sk->loop = p->p.loop;
if (sk_open(sk) < 0)
die("bfd: sk_open failed");
p->notify_ws = sk;
diff --git a/proto/bfd/packets.c b/proto/bfd/packets.c
index 37d77f37..73cb38f4 100644
--- a/proto/bfd/packets.c
+++ b/proto/bfd/packets.c
@@ -425,6 +425,7 @@ bfd_open_rx_sk(struct bfd_proto *p, int multihop, int af)
sk->tos = IP_PREC_INTERNET_CONTROL;
sk->priority = sk_priority_control;
sk->flags = SKF_THREAD | SKF_LADDR_RX | (!multihop ? SKF_TTL_RX : 0);
+ sk->loop = p->p.loop;
if (sk_open(sk) < 0)
goto err;
@@ -457,6 +458,7 @@ bfd_open_tx_sk(struct bfd_proto *p, ip_addr local, struct iface *ifa)
sk->priority = sk_priority_control;
sk->ttl = ifa ? 255 : -1;
sk->flags = SKF_THREAD | SKF_BIND | SKF_HIGH_PORT;
+ sk->loop = p->p.loop;
if (sk_open(sk) < 0)
goto err;