Fix cherry-pick
authorAdrian Bondrescu <adi.bondrescu@gmail.com>
Fri, 1 Jun 2012 02:10:11 +0000 (05:10 +0300)
committerRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Mon, 18 Mar 2013 16:26:51 +0000 (18:26 +0200)
src/kernel/mptp.h [new file with mode: 0644]
src/kernel/swift.c

diff --git a/src/kernel/mptp.h b/src/kernel/mptp.h
new file mode 100644 (file)
index 0000000..b837617
--- /dev/null
@@ -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 <inttypes.h>
+#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
index 63004b1..116c04b 100644 (file)
@@ -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_error("skb_copy_datagram_iovec\n");
                        goto out_free;
                }
+               log_debug("Received %d bytes\n", copied);
 
                sock_recv_ts_and_drops(msg, sk, skb);
 
 
                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;
 
 
                err = copied;