netifd: fix xfrm interface deletion and standardize netlink call
authorAndré Valentin <avalentin@marcant.net>
Fri, 14 Jun 2019 11:09:45 +0000 (13:09 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Fri, 14 Jun 2019 19:25:12 +0000 (21:25 +0200)
-xfrm interfaces were deleted before
-use standard parameters for xfrm interface created

Signed-off-by: André Valentin <avalentin@marcant.net>
system-linux.c

index 6e5ca2861cd4b09804ba3ac2f5bd9c5f1e0e6e31..f63aeb26af55224ec803f9c52d343524b25c1ebb 100644 (file)
@@ -2883,7 +2883,7 @@ static int system_add_xfrm_tunnel(const char *name, const char *kind,
        struct blob_attr *cur;
        int ret = 0;
 
-       nlm = nlmsg_alloc_simple(RTM_NEWLINK, NLM_F_REQUEST | NLM_F_ACK | NLM_F_CREATE | NLM_F_EXCL);
+       nlm = nlmsg_alloc_simple(RTM_NEWLINK, NLM_F_REQUEST | NLM_F_REPLACE | NLM_F_CREATE);
        if (!nlm)
                return -1;
 
@@ -3216,7 +3216,8 @@ static int __system_del_ip_tunnel(const char *name, struct blob_attr **tb)
        if (!strcmp(str, "greip") || !strcmp(str, "gretapip") ||
            !strcmp(str, "greip6") || !strcmp(str, "gretapip6") ||
            !strcmp(str, "vtiip") || !strcmp(str, "vtiip6") ||
-           !strcmp(str, "vxlan") || !strcmp(str, "vxlan6"))
+           !strcmp(str, "vxlan") || !strcmp(str, "vxlan6") ||
+           !strcmp(str, "xfrm"))
                return system_link_del(name);
        else
                return tunnel_ioctl(name, SIOCDELTUNNEL, NULL);