module: fixed receiving size
[p2p-kernel-protocol.git] / module / p2pkp_net.c
index c178a71..19e7181 100644 (file)
@@ -27,6 +27,29 @@ int p2pkp_msgsend(struct socket *s, struct sockaddr_in *sin, char *buffer, int l
        return kernel_sendmsg(s, &msg, (struct kvec *) msg.msg_iov, 1, len);
 }
 
+/* receive datagram */
+int p2pkp_msgrecv(struct socket *s, struct sockaddr_in *sin, char *buffer, int len)
+{
+       /* message */
+       struct msghdr msg;
+       struct iovec iov;
+
+       /* build message */
+       iov.iov_base = buffer;
+       iov.iov_len = len;
+       msg.msg_name = sin;
+       msg.msg_namelen = sizeof(struct sockaddr_in);
+       msg.msg_iov = &iov;
+       msg.msg_iovlen = 1;
+       msg.msg_control = NULL;
+       msg.msg_controllen = 0;
+       msg.msg_flags = 0;
+
+       /* send the message down the socket */
+       return kernel_recvmsg(s, &msg, (struct kvec *) msg.msg_iov, 1, len, 0);
+}
+
+
 
 int p2pkp_create_udp_sock(struct socket **sock)
 {