forked from acouzens/open5gs
delete reduant routing table
This commit is contained in:
parent
bd94d695be
commit
fc9b182e55
|
@ -209,7 +209,11 @@ status_t tun_set_ipv6(sock_id id, ipsubnet_t *ipaddr, ipsubnet_t *ipsub)
|
||||||
char buf[512];
|
char buf[512];
|
||||||
int len;
|
int len;
|
||||||
struct rt_msghdr *rtm;
|
struct rt_msghdr *rtm;
|
||||||
|
#if 0
|
||||||
struct sockaddr_in6 dst, gw;
|
struct sockaddr_in6 dst, gw;
|
||||||
|
#else
|
||||||
|
struct sockaddr_in6 dst;
|
||||||
|
#endif
|
||||||
struct sockaddr_in6 *paddr;
|
struct sockaddr_in6 *paddr;
|
||||||
|
|
||||||
d_assert(ipaddr, return CORE_ERROR,);
|
d_assert(ipaddr, return CORE_ERROR,);
|
||||||
|
@ -255,11 +259,6 @@ status_t tun_set_ipv6(sock_id id, ipsubnet_t *ipaddr, ipsubnet_t *ipsub)
|
||||||
|
|
||||||
close(fd); /* SOCK_DGRAM */
|
close(fd); /* SOCK_DGRAM */
|
||||||
|
|
||||||
#if 1
|
|
||||||
return CORE_OK;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
fd = socket(PF_ROUTE, SOCK_RAW, 0);
|
fd = socket(PF_ROUTE, SOCK_RAW, 0);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
{
|
{
|
||||||
|
@ -267,6 +266,32 @@ status_t tun_set_ipv6(sock_id id, ipsubnet_t *ipaddr, ipsubnet_t *ipsub)
|
||||||
return CORE_ERROR;
|
return CORE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(void)memset(&buf, 0, sizeof(buf));
|
||||||
|
rtm = (struct rt_msghdr *)buf;
|
||||||
|
rtm->rtm_type = RTM_DELETE;
|
||||||
|
rtm->rtm_version = RTM_VERSION;
|
||||||
|
rtm->rtm_pid = getpid();
|
||||||
|
rtm->rtm_seq = 0;
|
||||||
|
rtm->rtm_addrs = RTA_DST;
|
||||||
|
paddr = (struct sockaddr_in6 *)(rtm + 1);
|
||||||
|
|
||||||
|
(void)memset(&dst, '\0', sizeof(dst));
|
||||||
|
dst.sin6_family = ipaddr->family;
|
||||||
|
memcpy(dst.sin6_addr.s6_addr, ipaddr->sub, sizeof ipsub->sub);
|
||||||
|
dst.sin6_len = sizeof(dst);
|
||||||
|
(void)memcpy(paddr, &dst, sizeof(dst));
|
||||||
|
paddr = (struct sockaddr_in6 *)((char *)paddr +
|
||||||
|
CORE_ALIGN(sizeof(*paddr), sizeof(c_uintptr_t)));
|
||||||
|
|
||||||
|
len = (char*)paddr - buf;
|
||||||
|
rtm->rtm_msglen = len;
|
||||||
|
if (write(fd, buf, len) < 0)
|
||||||
|
{
|
||||||
|
d_error("Can't add routing(%s)", strerror(errno));
|
||||||
|
return CORE_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
(void)memset(&buf, 0, sizeof(buf));
|
(void)memset(&buf, 0, sizeof(buf));
|
||||||
rtm = (struct rt_msghdr *)buf;
|
rtm = (struct rt_msghdr *)buf;
|
||||||
rtm->rtm_type = RTM_ADD;
|
rtm->rtm_type = RTM_ADD;
|
||||||
|
@ -308,6 +333,7 @@ status_t tun_set_ipv6(sock_id id, ipsubnet_t *ipaddr, ipsubnet_t *ipsub)
|
||||||
d_error("Can't add routing(%s)", strerror(errno));
|
d_error("Can't add routing(%s)", strerror(errno));
|
||||||
return CORE_ERROR;
|
return CORE_ERROR;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
close(fd); /* PF_ROUTE, SOCK_RAW */
|
close(fd); /* PF_ROUTE, SOCK_RAW */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue