Converted the length argument of netconn_write (and therefore also api_msg_msg.msg.w.len) from u16_t into int to be able to send a bigger buffer than 64K with one time (mainly used from lwip_send).

This commit is contained in:
goldsimon
2007-06-21 19:32:26 +00:00
parent 67795ad26e
commit f49fc35f55
5 changed files with 18 additions and 5 deletions

View File

@@ -775,7 +775,7 @@ netconn_send(struct netconn *conn, struct netbuf *buf)
* @return ERR_OK if data was sent, any other err_t on error
*/
err_t
netconn_write(struct netconn *conn, const void *dataptr, u16_t size, u8_t copy)
netconn_write(struct netconn *conn, const void *dataptr, int size, u8_t copy)
{
struct api_msg msg;

View File

@@ -732,7 +732,14 @@ do_writemore(struct netconn *conn)
LWIP_ASSERT("conn->state == NETCONN_WRITE", (conn->state == NETCONN_WRITE));
dataptr = (u8_t*)conn->write_msg->msg.w.dataptr + conn->write_offset;
len = conn->write_msg->msg.w.len - conn->write_offset;
if ((conn->write_msg->msg.w.len - conn->write_offset > 0xffff)) { /* max_u16_t */
len = 0xffff;
#if LWIP_TCPIP_CORE_LOCKING
conn->write_delayed = 1;
#endif
} else {
len = conn->write_msg->msg.w.len - conn->write_offset;
}
available = tcp_sndbuf(conn->pcb.tcp);
if (available < len) {
/* don't try to write more than sendbuf */