From 48b3edf9410a0d232c8283b917d9f765f189f791 Mon Sep 17 00:00:00 2001 From: shiyunfei Date: Fri, 30 Dec 2022 14:29:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81=E5=9D=97?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=95=B4=E6=94=B9=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8F=AA=E5=A3=B0=E6=98=8E=E6=9C=AA=E5=AE=9E=E7=8E=B0=E5=87=BD?= =?UTF-8?q?=E6=95=B0nip=5Fdatagram=5Fconnect=5Fv6=5Fonly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shiyunfei --- examples/nip_route.c | 2 +- src/linux/include/net/nip.h | 1 - src/linux/net/newip/tcp_nip.c | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/nip_route.c b/examples/nip_route.c index 84b7434..a37a44b 100644 --- a/examples/nip_route.c +++ b/examples/nip_route.c @@ -96,7 +96,7 @@ int parse_name(char **argv, int *ifindex, char *dev) int len = strlen(*argv); memset(dev, 0, ARRAY_LEN); - if (!len || len >= (ARRAY_LEN - 1)) + if (len >= (ARRAY_LEN - 1) || !len) return -1; memcpy(dev, *argv, len); dev[len + 1] = '\0'; diff --git a/src/linux/include/net/nip.h b/src/linux/include/net/nip.h index db186e7..6343aa7 100644 --- a/src/linux/include/net/nip.h +++ b/src/linux/include/net/nip.h @@ -89,7 +89,6 @@ static inline u32 nip_addr_hash(const struct nip_addr *a) int nip_send_skb(struct sk_buff *skb); void ninet_destroy_sock(struct sock *sk); -int nip_datagram_connect_v6_only(struct sock *sk, struct sockaddr *addr, int addr_len); int nip_datagram_dst_update(struct sock *sk, bool fix_sk_saddr); int ninet_add_protocol(const struct ninet_protocol *prot, unsigned char protocol); int ninet_del_protocol(const struct ninet_protocol *prot, unsigned char protocol); diff --git a/src/linux/net/newip/tcp_nip.c b/src/linux/net/newip/tcp_nip.c index 20f6a3a..2b458e3 100644 --- a/src/linux/net/newip/tcp_nip.c +++ b/src/linux/net/newip/tcp_nip.c @@ -1304,6 +1304,7 @@ static int tcp_nip_do_rcv(struct sock *sk, struct sk_buff *skb) struct dst_entry *dst = sk->sk_rx_dst; if (dst) { + /* Triggered when processing newly received skb after deleting routes */ if (inet_sk(sk)->rx_dst_ifindex != skb->skb_iif || !dst->ops->check(dst, 0)) { dst_release(dst); -- Gitee