mirror of https://github.com/F-Stack/f-stack.git
fix crash while set gateway6.
This commit is contained in:
parent
9208ea7922
commit
8bff657153
|
@ -518,7 +518,7 @@ ff_veth_setaddr6(struct ff_veth_softc *sc)
|
|||
static int
|
||||
ff_veth_set_gateway6(struct ff_veth_softc *sc)
|
||||
{
|
||||
struct sockaddr_in6 gw;
|
||||
struct sockaddr_in6 gw, dst, nm;;
|
||||
struct rt_addrinfo info;
|
||||
struct rib_cmd_info rci;
|
||||
|
||||
|
@ -526,13 +526,18 @@ ff_veth_set_gateway6(struct ff_veth_softc *sc)
|
|||
info.rti_flags = RTF_GATEWAY;
|
||||
|
||||
bzero(&gw, sizeof(gw));
|
||||
bzero(&dst, sizeof(dst));
|
||||
bzero(&nm, sizeof(nm));
|
||||
|
||||
gw.sin6_len = sizeof(struct sockaddr_in6);
|
||||
gw.sin6_family = AF_INET6;
|
||||
gw.sin6_len = dst.sin6_len = nm.sin6_len = sizeof(struct sockaddr_in6);
|
||||
gw.sin6_family = dst.sin6_family = nm.sin6_family = AF_INET6;
|
||||
|
||||
gw.sin6_addr = sc->gateway6;
|
||||
//dst.sin6_addr = nm.sin6_addr = 0;
|
||||
|
||||
info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&gw;
|
||||
info.rti_info[RTAX_DST] = (struct sockaddr *)&dst;
|
||||
info.rti_info[RTAX_NETMASK] = (struct sockaddr *)&nm;
|
||||
|
||||
return rib_action(RT_DEFAULT_FIB, RTM_ADD, &info, &rci);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue