diff --git a/daemon/call.c b/daemon/call.c index 70d87e9a5..070b47121 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -339,15 +339,15 @@ void kernelize(struct packet_stream *stream) { if (IN6_IS_ADDR_V4MAPPED(&sink->endpoint.ip46)) { mpt.src_addr.family = AF_INET; - mpt.src_addr.ipv4 = cm->conf.ipv4; + mpt.src_addr.u.ipv4 = cm->conf.ipv4; mpt.dst_addr.family = AF_INET; - mpt.dst_addr.ipv4 = sink->endpoint.ip46.s6_addr32[3]; + mpt.dst_addr.u.ipv4 = sink->endpoint.ip46.s6_addr32[3]; } else { mpt.src_addr.family = AF_INET6; - memcpy(mpt.src_addr.ipv6, &cm->conf.ipv6, sizeof(mpt.src_addr.ipv6)); + memcpy(mpt.src_addr.u.ipv6, &cm->conf.ipv6, sizeof(mpt.src_addr.u.ipv6)); mpt.dst_addr.family = AF_INET6; - memcpy(mpt.dst_addr.ipv6, &sink->endpoint.ip46, sizeof(mpt.src_addr.ipv6)); + memcpy(mpt.dst_addr.u.ipv6, &sink->endpoint.ip46, sizeof(mpt.src_addr.u.ipv6)); } stream->handler->in->kernel(&mpt.decrypt, stream); diff --git a/daemon/dtls.c b/daemon/dtls.c index 21c16bb3f..7d7e9f49b 100644 --- a/daemon/dtls.c +++ b/daemon/dtls.c @@ -624,7 +624,7 @@ int dtls(struct packet_stream *ps, const str *s, struct sockaddr_in6 *fsin) { if (ret > sizeof(buf)) { ilog(LOG_ERROR, "BIO buffer overflow"); - BIO_reset(d->w_bio); + (void) BIO_reset(d->w_bio); return 0; } diff --git a/kernel-module/xt_MEDIAPROXY.c b/kernel-module/xt_MEDIAPROXY.c index 305aa142b..35e3952d6 100644 --- a/kernel-module/xt_MEDIAPROXY.c +++ b/kernel-module/xt_MEDIAPROXY.c @@ -923,12 +923,14 @@ static void proc_list_addr_print(struct seq_file *f, const char *s, const struct seq_printf(f, " %6s ", s); switch (a->family) { case AF_INET: - seq_printf(f, "inet4 %u.%u.%u.%u:%u\n", a->u8[0], a->u8[1], a->u8[2], a->u8[3], a->port); + seq_printf(f, "inet4 %u.%u.%u.%u:%u\n", a->u.u8[0], a->u.u8[1], a->u.u8[2], + a->u.u8[3], a->port); break; case AF_INET6: - seq_printf(f, "inet6 [%x:%x:%x:%x:%x:%x:%x:%x]:%u\n", htons(a->u16[0]), htons(a->u16[1]), - htons(a->u16[2]), htons(a->u16[3]), htons(a->u16[4]), htons(a->u16[5]), - htons(a->u16[6]), htons(a->u16[7]), a->port); + seq_printf(f, "inet6 [%x:%x:%x:%x:%x:%x:%x:%x]:%u\n", + htons(a->u.u16[0]), htons(a->u.u16[1]), + htons(a->u.u16[2]), htons(a->u.u16[3]), htons(a->u.u16[4]), htons(a->u.u16[5]), + htons(a->u.u16[6]), htons(a->u.u16[7]), a->port); break; default: seq_printf(f, "\n"); @@ -1034,12 +1036,12 @@ out: static int is_valid_address(struct mp_address *mpa) { switch (mpa->family) { case AF_INET: - if (!mpa->ipv4) + if (!mpa->u.ipv4) return 0; break; case AF_INET6: - if (!mpa->u32[0] && !mpa->u32[1] && !mpa->u32[2] && !mpa->u32[3]) + if (!mpa->u.u32[0] && !mpa->u.u32[1] && !mpa->u.u32[2] && !mpa->u.u32[3]) return 0; break; @@ -1693,13 +1695,13 @@ static int send_proxy_packet4(struct sk_buff *skb, struct mp_address *src, struc .tot_len = htons(sizeof(*ih) + datalen), .ttl = 64, .protocol = IPPROTO_UDP, - .saddr = src->ipv4, - .daddr = dst->ipv4, + .saddr = src->u.ipv4, + .daddr = dst->u.ipv4, }; skb->csum_start = skb_transport_header(skb) - skb->head; skb->csum_offset = offsetof(struct udphdr, check); - uh->check = csum_tcpudp_magic(src->ipv4, dst->ipv4, datalen, IPPROTO_UDP, csum_partial(uh, datalen, 0)); + uh->check = csum_tcpudp_magic(src->u.ipv4, dst->u.ipv4, datalen, IPPROTO_UDP, csum_partial(uh, datalen, 0)); if (uh->check == 0) uh->check = CSUM_MANGLED_0; @@ -1750,8 +1752,8 @@ static int send_proxy_packet6(struct sk_buff *skb, struct mp_address *src, struc .nexthdr = IPPROTO_UDP, .hop_limit = 64, }; - memcpy(&ih->saddr, src->ipv6, sizeof(ih->saddr)); - memcpy(&ih->daddr, dst->ipv6, sizeof(ih->daddr)); + memcpy(&ih->saddr, src->u.ipv6, sizeof(ih->saddr)); + memcpy(&ih->daddr, dst->u.ipv6, sizeof(ih->daddr)); skb->csum_start = skb_transport_header(skb) - skb->head; skb->csum_offset = offsetof(struct udphdr, check); diff --git a/kernel-module/xt_MEDIAPROXY.h b/kernel-module/xt_MEDIAPROXY.h index 3c03ceacd..bd9d0f402 100644 --- a/kernel-module/xt_MEDIAPROXY.h +++ b/kernel-module/xt_MEDIAPROXY.h @@ -20,7 +20,7 @@ struct mp_address { unsigned char u8[16]; u_int16_t u16[8]; u_int32_t u32[4]; - }; + } u; u_int16_t port; };