Commit Graph

110 Commits

Author SHA1 Message Date
goldsimon
5d20e690fd Added/corrected casts 2010-03-08 12:17:29 +00:00
goldsimon
38fcfcdfac task #10167 (sockets: speed up TCP recv by not allocating a netbuf): added function netconn_recv_tcp_pbuf() for tcp netconns to receive pbufs, not netbufs; use that function for tcp sockets. 2010-03-06 11:29:01 +00:00
goldsimon
0792effc2a task #7865 (implement non-blocking send operation) 2010-02-13 17:08:40 +00:00
goldsimon
0f05a6aede Fixed compilation for LWIP_DNS==1 after changing sys layer 2010-02-13 15:43:19 +00:00
goldsimon
0030d1ade5 task #10139 (Prefer statically allocated memory): converted mbox and semaphore functions to take pointers to sys_mbox_t/sys_sem_t; converted sys_mbox_new/sys_sem_new to take pointers and return err_t; task #7212: Add Mutex concept in sys_arch (define LWIP_COMPAT_MUTEX to let sys.h use binary semaphores instead of mutexes - as before) 2010-02-12 13:49:21 +00:00
goldsimon
306f2203fa Fixed bug #22110 (recv() makes receive window update for data that wasn't received by application); added function-like macros to correctly access/change conn->recv_timeout and conn->recv_bufsize 2010-02-09 20:23:39 +00:00
goldsimon
5d360a6711 Replaced struct ip_addr by typedef ip_addr_t to make changing the actual implementation behind the typedef easier. 2010-02-04 18:47:44 +00:00
goldsimon
e58f4c567a Add non-blocking support for connect (partly from patch #6860) plus many cleanups in socket & netconn API 2010-01-29 22:09:31 +00:00
goldsimon
32c16fad42 igmp related: renamed netif pointers from 'interface' to 'netif' to not use keywords (or at least my editor highlights it as one...) 2010-01-28 18:42:40 +00:00
goldsimon
e678e1bdcb bug #28659: Missing casts 2010-01-25 08:24:30 +00:00
goldsimon
cc1e9370af Minor: fixed argument casts for mbox_fetch parameters (to fix compiler warnings) 2010-01-18 08:11:39 +00:00
goldsimon
34139606ca task #10102: "netconn: clean up conn->err threading issues" by adding error return value to struct api_msg_msg 2010-01-17 18:28:56 +00:00
goldsimon
ca11baf1cd Changed netconn_recv() and netconn_accept() to return err_t (bugs #27709 and #28087) 2010-01-17 16:21:07 +00:00
goldsimon
0e38a52edc Again: Fixed bug #26672 (close connection when receive window = 0) by correctly draining recvmbox/acceptmbox 2010-01-13 15:59:47 +00:00
goldsimon
533e6b5f8d Fixed bug #26672 (close connection when receive window = 0) by correctly draining recvmbox/acceptmbox 2010-01-08 15:10:03 +00:00
goldsimon
a9740c6a44 Fixed bug #27709: conn->err race condition on netconn_recv() timeout by directly returning when sys_arch_mbox_fetch times out. 2009-10-15 14:33:18 +00:00
goldsimon
27b28a9306 Converted netconn_type() from a function to a macro 2009-04-15 21:04:19 +00:00
goldsimon
c05e968278 Fixed many LWIP_DEBUGF format strings; added new format string SZT_F for size_t 2009-02-18 21:13:06 +00:00
goldsimon
14cb4eb735 fixed arguments of socket functions to match the standard; converted size argument of netconn_write to 'size_t' for that; fixed some warnings 2009-02-16 19:33:51 +00:00
fbernon
55bcc20deb tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::sem per netconn::op_completed like suggested for the task #7490 "Add return value to sys_mbox_post". 2008-01-12 11:52:21 +00:00
fbernon
bceff76c70 tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::mbox (sys_mbox_t) per netconn::sem (sys_sem_t) for the task #7490 "Add return value to sys_mbox_post". 2008-01-10 21:34:25 +00:00
goldsimon
a41f113b8f Added function netconn_free(), which deallocates all mboxes and frees the netconn (to be used from different places) - the PCB is not freed! 2008-01-06 14:28:04 +00:00
fbernon
5941b3c86e sys_arch.txt, api.h, api_lib.c, api_msg.h, api_msg.c, tcpip.c, sys.h, opt.h: Introduce changes for task #7490 "Add return value to sys_mbox_post" with some modifications in the sys_mbox api: sys_mbox_new take a "size" parameters which indicate the number of pointers query by the mailbox. There is three defines in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the netconn::acceptmbox. Port maintainers, you can decide to just add this new parameter in your implementation, but to ignore it to keep the previous behavior. The new sys_mbox_trypost function return a value to know if the mailbox is full or if the message is posted. Take a look to sys_arch.txt for more details. This new function is used in tcpip_input (so, can be called in an interrupt context since the function is not blocking), and in recv_udp and recv_raw. 2008-01-05 21:10:32 +00:00
fbernon
9c4daa312d Minor changes in lwip folder: fix some warnings, coding style, and rename "internal" netconn_alloc function. 2008-01-04 23:07:44 +00:00
fbernon
32005617b9 rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h, tcp.c, tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix, limit the "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue", add documentation in the rawapi.txt file. 2008-01-04 22:18:27 +00:00
goldsimon
1ed34774c8 tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c, sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API applications have to call 'tcp_accepted(pcb)' in their accept callback to keep accepting new connections. 2007-12-21 16:47:56 +00:00
goldsimon
48e62e25e9 sys.h, api_lib.c, api_msg.c, sockets.c: fix bug #21698: "netconn->recv_avail is not protected" by using new macros for interlocked access to modify/test netconn->recv_avail. 2007-12-21 14:59:10 +00:00
goldsimon
ba4254231e Corrected assert when netconn_new_* fails 2007-12-16 16:15:08 +00:00
goldsimon
113a52d091 fix bug #21656 (recvmbox problem in netconn API): always allocate a recvmbox in netconn_new_with_proto_and_callback. For a tcp-listen netconn, this recvmbox is later freed and a new mbox is allocated for acceptmbox. This is a fix for thread-safety and allocates all items needed for a netconn when the netconn is created. 2007-12-02 14:53:50 +00:00
goldsimon
6746beb2a3 Compacted code: moved the code creating a netconn (without pcb) from netconn_new_with_proto_and_callback to new (synchroneous) function netconn_alloc_with_proto_and_callback and call this function from netconn_new_with_proto_and_callback and accept_function. 2007-11-30 12:54:10 +00:00
goldsimon
03777ccb21 Changed error handling: ERR_MEM, ERR_BUF and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and sockets block most operations once they have seen a fatal error. 2007-11-27 21:15:44 +00:00
goldsimon
4dcfdac2f5 initialize netconn->socket to -1 instead of 0 since 0 is a valid socket! 2007-11-25 16:13:56 +00:00
fbernon
3d9c76a69c Minor change (doxygen tags) 2007-11-24 22:13:25 +00:00
goldsimon
e7483f2e64 Added return value comments to netconn_gethostbyname 2007-11-20 21:23:24 +00:00
goldsimon
e2cd201f6a Added sequential dns resolver function for netconn api (netconn_gethostbyname) 2007-11-16 17:16:17 +00:00
fbernon
a4d14722f3 sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fixed bug #20900. Now, most of the netconn_peer and netconn_addr processing is done inside tcpip_thread context in do_getaddr. 2007-11-12 22:39:24 +00:00
goldsimon
f3dbd986cb Task #7410: Removed the need to include core header files in api.h (ip/tcp/udp/raw.h) to hide the internal implementation from netconn api applications. 2007-11-06 20:31:28 +00:00
fbernon
ecce865cfe api.h, api_lib.c, api_msg.c, sockets.c, opt.h: add SO_RCVBUF option for UDP & RAW netconn. You need to set LWIP_SO_RCVBUF=1 in your lwipopts.h (it's disabled by default). Netconn API users can use the netconn_recv_bufsize macro to access it. This is a first release which have to be improve for TCP. Note it used the netconn::recv_avail which need to be more "thread-safe" (note there is already the problem for FIONREAD with lwip_ioctl/ioctlsocket). 2007-11-02 10:37:08 +00:00
fbernon
cbe9b050a9 sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, tcp.h, tcp_out.c: Integrate "patch #6250 : MSG_MORE flag for send". MSG_MORE is used at socket api layer, NETCONN_MORE at netconn api layer, and TCP_WRITE_FLAG_MORE at raw api layer. This option enable to delayed TCP PUSH flag on multiple "write" calls. Note that previous "copy" parameter for "write" APIs is now called "apiflags". 2007-11-01 17:37:50 +00:00
fbernon
7077d51f1f api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than TCP_EVENT_xxx macros to get a code more readable. It could also help to remove some code (like we have talk in "patch #5919 : Create compile switch to remove select code"), but it could be done later. 2007-10-24 12:09:18 +00:00
goldsimon
270c7c1110 Removed check for conn->err for functions whose counterparts in api_msg.c also do the check (1. remove redundant code, 2. check is better done in tcpip thread context) 2007-10-22 20:01:16 +00:00
goldsimon
b1a4b00091 Preprocessor statements have to start at the beginning of a line for old compilers! 2007-10-09 19:30:17 +00:00
fbernon
87e16a8f47 sockets.c, api.h, api_lib.c: First step to fix "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". VERY IMPORTANT: this change cause an API breakage for netconn_peer, since a parameter type change. Any compiler should cause an error without any changes in yours netconn_peer calls (so, it can't be a "silent change"). It also reduce a little bit the footprint for socket layer (lwip_getpeername & lwip_getsockname use now a common lwip_getaddrname function since netconn_peer & netconn_addr have the same parameters). 2007-10-07 17:26:54 +00:00
fbernon
95f2d48ac4 Avoid to lost previous error codes in sockets.c and api_lib.c. 2007-09-13 15:03:42 +00:00
fbernon
e3cd1ac1f9 Minor changes (but in lot of files): add #if/#endif for options where they could miss. #if LWIP_xxx if always put after #include "lwip/opt.h" (note this one indirectly include cc.h). Move others includes inside #if/#endif block. 2007-09-07 23:01:59 +00:00
fbernon
245bce04d1 Add netbuf.h, netbuf.c, Change api.h, api_lib.c: #7249 "Split netbuf functions from api/api_lib". Now netbuf API is independant of netconn, and can be used with other API (application based on raw API, or future "socket2" API). Ports maintainers just have to add src/api/netbuf.c in their makefile/projects. 2007-08-30 16:55:10 +00:00
fbernon
54c1025ec0 First fix for "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". Introduce NETCONN_LISTEN netconn_state and remove obsolete ones (NETCONN_RECV & NETCONN_ACCEPT). 2007-08-27 10:08:53 +00:00
marcbou
07223bf5ef Backed out last change to netconn_delete() after discussion with Frederic. 2007-08-16 23:06:42 +00:00
marcbou
17f07a36ef netconn_delete(): unblock potentially waiting recv. 2007-08-16 20:03:23 +00:00
fbernon
9152d6671c Comments Fix for Doxygen documentation 2007-08-09 22:21:44 +00:00