From 5d690fef4ebea52e5bfc1560c945e86c0dbbb946 Mon Sep 17 00:00:00 2001 From: Adrian Bondrescu Date: Fri, 1 Jun 2012 05:10:11 +0300 Subject: [PATCH] Fix cherry-pick --- src/kernel/mptp.h | 32 ++++++++++++++++++++++++++++++++ src/kernel/swift.c | 7 +++++-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/kernel/mptp.h diff --git a/src/kernel/mptp.h b/src/kernel/mptp.h new file mode 100644 index 0000000..b837617 --- /dev/null +++ b/src/kernel/mptp.h @@ -0,0 +1,32 @@ +#ifndef _MPTP_H +#define _MPTP_H + +#define IPPROTO_MPTP 137 + +#define MIN_MPTP_PORT 1 +#define MAX_MPTP_PORT 65536 + +#ifndef __KERNEL__ +#include +#endif + +struct mptp_dest { + uint32_t addr; + uint16_t port; + uint16_t bytes; +}; + +struct sockaddr_mptp { + int count; + struct mptp_dest dests[0]; +}; + +#ifdef __KERNEL__ +struct mptphdr { + uint16_t src; + uint16_t dst; + __be16 len; +}; +#endif + +#endif diff --git a/src/kernel/swift.c b/src/kernel/swift.c index 63004b1..116c04b 100644 --- a/src/kernel/swift.c +++ b/src/kernel/swift.c @@ -383,11 +383,14 @@ static int swift_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr log_error("skb_copy_datagram_iovec\n"); goto out_free; } + log_debug("Received %d bytes\n", copied); sock_recv_ts_and_drops(msg, sk, skb); - if (ret_addr) - memcpy(&ret_addr->dests[i], &swift_addr->dests[0], sizeof(ret_addr->dests[i])); + if (ret_addr) { + memcpy(&ret_addr->dests[i], &mptp_addr->dests[0], sizeof(ret_addr->dests[i])); + ret_addr->dests[i].bytes = copied; + } err = copied; -- 2.20.1