[TIPC]: Stream socket can now send > 66000 bytes at a time
The stream socket send code was not initializing some required fields of the temporary msghdr structure it was utilizing; this is now fixed. A check has also been added to detect if a user illegally specifies a destination address when sending on an established stream connection. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Per Liden <per.liden@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
29ede244cc
commit
eb5959c2bd
|
@ -2,7 +2,7 @@
|
|||
* net/tipc/socket.c: TIPC socket API
|
||||
*
|
||||
* Copyright (c) 2001-2006, Ericsson AB
|
||||
* Copyright (c) 2004-2005, Wind River Systems
|
||||
* Copyright (c) 2004-2006, Wind River Systems
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -629,6 +629,9 @@ static int send_stream(struct kiocb *iocb, struct socket *sock,
|
|||
return -ENOTCONN;
|
||||
}
|
||||
|
||||
if (unlikely(m->msg_name))
|
||||
return -EISCONN;
|
||||
|
||||
/*
|
||||
* Send each iovec entry using one or more messages
|
||||
*
|
||||
|
@ -641,6 +644,8 @@ static int send_stream(struct kiocb *iocb, struct socket *sock,
|
|||
curr_iovlen = m->msg_iovlen;
|
||||
my_msg.msg_iov = &my_iov;
|
||||
my_msg.msg_iovlen = 1;
|
||||
my_msg.msg_flags = m->msg_flags;
|
||||
my_msg.msg_name = NULL;
|
||||
bytes_sent = 0;
|
||||
|
||||
while (curr_iovlen--) {
|
||||
|
|
Loading…
Reference in a new issue