]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet6/ipsec.c
xnu-4570.41.2.tar.gz
[apple/xnu.git] / bsd / netinet6 / ipsec.c
index 895d63e7781ab7cd0b9c8be88e98019700e899b0..1ba0680113a8fc26581b4169ec09637d142b0b8d 100644 (file)
@@ -2498,7 +2498,7 @@ ipsec6_update_routecache_and_output(
        struct secasvar *sav)
 {
        struct sockaddr_in6* dst6;
-       struct route *ro6;
+       struct route_in6 *ro6;
        struct ip6_hdr *ip6;
        errno_t error = 0;
 
@@ -2530,7 +2530,7 @@ ipsec6_update_routecache_and_output(
                dst6->sin6_family = AF_INET6;
                dst6->sin6_len = sizeof(*dst6);
                dst6->sin6_addr = ip6->ip6_dst;
-               rtalloc_scoped(ro6, sav->sah->outgoing_if);
+               rtalloc_scoped((struct route *)ro6, sav->sah->outgoing_if);
                if (ro6->ro_rt) {
                        RT_LOCK(ro6->ro_rt);
                }
@@ -2557,7 +2557,7 @@ ipsec6_update_routecache_and_output(
                dst6 = (struct sockaddr_in6 *)(void *)ro6->ro_rt->rt_gateway;
        RT_UNLOCK(ro6->ro_rt);
        ROUTE_RELEASE(&state->ro);
-       route_copyout(&state->ro, ro6, sizeof(state->ro));
+       route_copyout((struct route *)&state->ro, (struct route *)ro6, sizeof(struct route_in6));
        state->dst = (struct sockaddr *)dst6;
        state->tunneled = 6;
        // release sadb_mutex, after updating sah's route cache                                                                                                                          
@@ -3162,7 +3162,7 @@ ipsec4_output_internal(struct ipsec_output_state *state, struct secasvar *sav)
 
                        // grab sadb_mutex, before updating sah's route cache
                        lck_mtx_lock(sadb_mutex);
-                       ro4= &sav->sah->sa_route;
+                       ro4= (struct route *)&sav->sah->sa_route;
                        dst4 = (struct sockaddr_in *)(void *)&ro4->ro_dst;
                        if (ro4->ro_rt != NULL) {
                                RT_LOCK(ro4->ro_rt);
@@ -3201,7 +3201,7 @@ ipsec4_output_internal(struct ipsec_output_state *state, struct secasvar *sav)
                                dst4 = (struct sockaddr_in *)(void *)ro4->ro_rt->rt_gateway;
                        RT_UNLOCK(ro4->ro_rt);
                        ROUTE_RELEASE(&state->ro);
-                       route_copyout(&state->ro, ro4, sizeof(state->ro));
+                       route_copyout((struct route *)&state->ro, ro4, sizeof(struct route));
                        state->dst = (struct sockaddr *)dst4;
                        state->tunneled = 4;
                        // release sadb_mutex, after updating sah's route cache                                                                                                    
@@ -3644,7 +3644,7 @@ ipsec6_output_tunnel_internal(struct ipsec_output_state *state, struct secasvar
        int error = 0;
        int plen;
        struct sockaddr_in6* dst6;
-       struct route *ro6;
+       struct route_in6 *ro6;
        
        /* validity check */
        if (sav == NULL || sav->sah == NULL || sav->sah->saidx.mode != IPSEC_MODE_TUNNEL) {
@@ -3706,7 +3706,7 @@ ipsec6_output_tunnel_internal(struct ipsec_output_state *state, struct secasvar
                        
                        // grab sadb_mutex, to update sah's route cache and get a local copy of it
                        lck_mtx_lock(sadb_mutex);
-                       ro4 = &sav->sah->sa_route;
+                       ro4 = (struct route *)&sav->sah->sa_route;
                        dst4 = (struct sockaddr_in *)(void *)&ro4->ro_dst;
                        if (ro4->ro_rt) {
                                RT_LOCK(ro4->ro_rt);
@@ -3724,7 +3724,7 @@ ipsec6_output_tunnel_internal(struct ipsec_output_state *state, struct secasvar
                        } else {
                                RT_UNLOCK(ro4->ro_rt);
                        }
-                       route_copyout(&ro4_copy, ro4, sizeof(ro4_copy));
+                       route_copyout(&ro4_copy, ro4, sizeof(struct route));
                        // release sadb_mutex, after updating sah's route cache and getting a local copy
                        lck_mtx_unlock(sadb_mutex);
                        state->m = ipsec4_splithdr(state->m);
@@ -3789,7 +3789,7 @@ ipsec6_output_tunnel_internal(struct ipsec_output_state *state, struct secasvar
                        state->m = NULL;
                        // grab sadb_mutex, to synchronize the sah's route cache with the local copy
                        lck_mtx_lock(sadb_mutex);
-                       route_copyin(&ro4_copy, ro4, sizeof(ro4_copy));
+                       route_copyin(&ro4_copy, ro4, sizeof(struct route));
                        lck_mtx_unlock(sadb_mutex);
                        if (error != 0)
                                goto bad;
@@ -3821,7 +3821,7 @@ ipsec6_output_tunnel_internal(struct ipsec_output_state *state, struct secasvar
                        dst6->sin6_family = AF_INET6;
                        dst6->sin6_len = sizeof(*dst6);
                        dst6->sin6_addr = ip6->ip6_dst;
-                       rtalloc_scoped(ro6, sav->sah->outgoing_if);
+                       rtalloc_scoped((struct route *)ro6, sav->sah->outgoing_if);
                        if (ro6->ro_rt) {
                                RT_LOCK(ro6->ro_rt);
                        }
@@ -3848,7 +3848,7 @@ ipsec6_output_tunnel_internal(struct ipsec_output_state *state, struct secasvar
                        dst6 = (struct sockaddr_in6 *)(void *)ro6->ro_rt->rt_gateway;
                RT_UNLOCK(ro6->ro_rt);
                ROUTE_RELEASE(&state->ro);
-               route_copyout(&state->ro, ro6, sizeof(state->ro));
+               route_copyout((struct route *)&state->ro, (struct route *)ro6, sizeof(struct route_in6));
                state->dst = (struct sockaddr *)dst6;
                state->tunneled = 6;
                // release sadb_mutex, after updating sah's route cache
@@ -4743,7 +4743,7 @@ ipsec_send_natt_keepalive(
            rt_key(sav->sah->sa_route.ro_rt)->sa_family != AF_INET)
                ROUTE_RELEASE(&sav->sah->sa_route);
 
-       route_copyout(&ro, &sav->sah->sa_route, sizeof(ro));
+       route_copyout(&ro, (struct route *)&sav->sah->sa_route, sizeof(struct route));
        lck_mtx_unlock(sadb_mutex);
        
        necp_mark_packet_as_keepalive(m, TRUE);
@@ -4752,7 +4752,7 @@ ipsec_send_natt_keepalive(
 
        // grab sadb_mutex, to synchronize the sah's route cache with the local copy
        lck_mtx_lock(sadb_mutex);
-       route_copyin(&ro, &sav->sah->sa_route, sizeof(ro));
+       route_copyin(&ro, (struct route *)&sav->sah->sa_route, sizeof(struct route));
        lck_mtx_unlock(sadb_mutex);
        if (error == 0) {
                sav->natt_last_activity = natt_now;