projects
/
swifty.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Small fixes in the mptp_recvmsg function.
[swifty.git]
/
src
/
kernel
/
mptp.c
diff --git
a/src/kernel/mptp.c
b/src/kernel/mptp.c
index
94c5263
..
a979736
100644
(file)
--- a/
src/kernel/mptp.c
+++ b/
src/kernel/mptp.c
@@
-97,6
+97,8
@@
static int mptp_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
log_debug("Bind received port=%u (network order)\n", mptp_addr->dests[0].port);
port = ntohs(mptp_addr->dests[0].port);
log_debug("Bind received port=%u (network order)\n", mptp_addr->dests[0].port);
port = ntohs(mptp_addr->dests[0].port);
+ if (port == 0)
+ port = get_next_free_port();
if (unlikely(port == 0 || port >= MAX_MPTP_PORT)) {
log_error("Invalid value for sockaddr port (%u)\n", port);
if (unlikely(port == 0 || port >= MAX_MPTP_PORT)) {
log_error("Invalid value for sockaddr port (%u)\n", port);
@@
-360,6
+362,7
@@
static int mptp_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *
int err, copied;
int i;
struct sockaddr_mptp *ret_addr = (struct sockaddr_mptp *) msg->msg_name;
int err, copied;
int i;
struct sockaddr_mptp *ret_addr = (struct sockaddr_mptp *) msg->msg_name;
+ ret_addr->count = 0;
log_debug("Trying to receive sock=%p sk=%p flags=%d\n", sock, sk, flags);
log_debug("Trying to receive sock=%p sk=%p flags=%d\n", sock, sk, flags);
@@
-385,6
+388,7
@@
static int mptp_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;
}
+ msg->msg_iov[i].iov_len = copied;
sock_recv_ts_and_drops(msg, sk, skb);
sock_recv_ts_and_drops(msg, sk, skb);