Commit Graph

845 Commits

Author SHA1 Message Date
goldsimon
fd982597fe Removed semaphores from memp, changed sys_sem_wait calls into sys_arch_sem_wait calls to prevent timers from running while waiting for the heap. This fixes bug #19167. 2007-05-16 11:02:07 +00:00
goldsimon
887077b5a4 pbuf_alloc(PBUF_POOL): Added asserts to make sure payload+len is still in bound of the pbuf (also to make sure bug #15659 is fixed). 2007-05-16 10:45:28 +00:00
fbernon
4e71ec4480 Minor fix (tabs) 2007-05-15 16:34:30 +00:00
goldsimon
8ef712787a Aligned MIN_SIZE, memset(0) the complete ram_heap instead of only the used area, only to be on the safe side... 2007-05-15 10:35:48 +00:00
goldsimon
6c39b8a10c Found a little bug in ARP_QUEUEING: if pbuf_alloc for the packet to be queued failed, pbuf_copy was called with a NULL pointer. 2007-05-14 20:10:46 +00:00
fbernon
3c32c993f5 Include inet.h to avoid warnings (see http://savannah.nongnu.org/patch/?5865). 2007-05-14 08:32:08 +00:00
goldsimon
62d705903e task #6831: removed the option PBUF_POOL_USES_MEMP and removed the old pbuf pool code, pbuf pool now always allocates from a memp pool 2007-05-13 18:17:22 +00:00
goldsimon
a5e2e9ea03 (see task #6831): Included new option PBUF_POOL_USES_MEMP to use a memp pool for PBUF_POOL pbufs instead of the old pool implementation in pbuf.c to remove redundant code. 2007-05-13 16:16:03 +00:00
goldsimon
055e3d52b6 Modified struct pbuf size determination so that sizeof(struct pbuf) does not necessarily be a multiple of MEM_ALIGNMENT 2007-05-13 16:12:29 +00:00
goldsimon
efd3104fd0 Fixed bug from patch #5865 by moving the defines for socket options (lwip_set/-getsockopt) used with level IPPROTO_TCP from tcp.h to sockets.h. 2007-05-13 14:34:02 +00:00
goldsimon
bd570561e8 Fix for bug #19740: 2 static functions are unused, simply ifdefing them out for now to get rid of warnings 2007-05-13 11:08:04 +00:00
goldsimon
19d49db305 sys.h: moved #include "arch/sys_arch.h" down a little, so that functions using the defines SYS_ARCH_TIMEOUT/SYS_MBOX_EMPTY can be define as static (inline) in sys_arch.h. This should not affect any others since the defines couldn't be overridden anyway... 2007-05-13 10:31:51 +00:00
goldsimon
ab4993fda2 Ooops, checked in the wrong version before :-( 2007-05-11 19:42:50 +00:00
goldsimon
6f4056cf99 - Changed mem_malloc(): near fit behaves like exact fit since mem->next is always used
- Included some more alignment statements
- Every malloced block is at least MIN_SIZE big (can be overridden, can be used to work against fragmentation)
- Added many comments so that the next developer knows what I was thinking :-)
2007-05-11 19:42:10 +00:00
fbernon
9cf1390dc6 sockets.c, api_lib.c, api_msg.h, api_msg.c, netifapi.h, netifapi.c, tcpip.c: Include a function pointer instead of a table index in the message to reduce footprint. Disable some part of lwip_send and lwip_sendto if some options are not set (LWIP_TCP, LWIP_UDP, LWIP_RAW). 2007-05-11 08:58:23 +00:00
goldsimon
6a2e323792 Added some ASSERTs and NULL-pointer checks to sys_timeout/sys_untimeout 2007-05-10 14:23:38 +00:00
goldsimon
d4834803ae Included opt.h before checking the options. 2007-05-10 11:00:16 +00:00
goldsimon
84fc489e0c Included patch #5448: include '#ifdef __cplusplus \ extern "C" {' in all header files. Now you can write your application using the lwIP stack in C++ and simply #include the core files. Note I have left out the netif/ppp/*h header files for now, since I don't know which files are included by applications and which are for internal use only. 2007-05-10 10:59:20 +00:00
goldsimon
255d5a748f Included patch #5920: Create define to override C-library memcpy. 2 Defines are created: MEMCPY() for normal memcpy, SMEMCPY() for situations where some compilers might inline the copy and save a function call. Also replaced all calls to memcpy() with calls to (S)MEMCPY(). 2007-05-10 05:20:05 +00:00
goldsimon
b41520f9e2 Removed unused pbuf stats items 2007-05-08 18:55:29 +00:00
goldsimon
0e881170c2 Fixed 3 typos of the version checked in yesterday... 2007-05-08 18:09:14 +00:00
goldsimon
1571881f7a If MEM_LIBC_MALLOC==1, allow the defines (e.g. mem_malloc() -> malloc()) to be overriden in case the C-library malloc implementation is not protected against concurrent access. 2007-05-08 11:00:49 +00:00
goldsimon
4dbf1dcad4 mem_realloc: Added assert to check that memory is shrinked, not expanded. 2007-05-08 10:50:19 +00:00
goldsimon
824ef1ff2c Another attempt to fix bug #17922 2007-05-07 19:48:29 +00:00
goldsimon
79d9b36ece Further update to ARP queueing: Changed pbuf_copy() implementation so that it can be reused (don't allocate the target pbuf inside pbuf_copy()). 2007-05-04 21:31:25 +00:00
goldsimon
be316e81a7 Introduced fast one-entry-cache to speed up ARP lookup when sending multiple packets to the same host. 2007-05-04 19:31:27 +00:00
goldsimon
615e52d396 Prototype of igmp_tick() in igmp.h did not match the one in igmp.c 2007-05-04 16:30:37 +00:00
goldsimon
7f232b43ff checked in patch #5913: in memp_malloc() we can return memp as mem to save a little RAM (next pointer of memp is not used while not in pool). 2007-05-04 15:52:11 +00:00
fbernon
5a12aeb4a1 sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fix bug #19162 "lwip_sento: a possible to corrupt remote addr/port connection state". Reduce problems "not enought memory" with netbuf (if we receive lot of datagrams). Improve lwip_sendto (only one exchange between sockets api and api_msg which run in tcpip_thread context). Add netconn_sento function. WARNING, if you directly access to "fromaddr" & "fromport" field from netbuf struct, these fields are now renamed "addr" & "port". 2007-05-04 15:18:29 +00:00
fbernon
05ea5f05ae Minor fix (tab, indent...) to respect source code style... 2007-05-04 15:14:14 +00:00
jifl
e895aa71a4 * sockets.c: Fix ioctl FIONREAD when some data remains from last recv.
(patch #3574).
2007-05-03 19:13:27 +00:00
fbernon
eb28133b1f Remove forgotten printf in pbuf_init(). 2007-05-02 09:26:51 +00:00
goldsimon
c66932ab25 Checked in patch #5453: removed mutex/other locking stuff if SYS_LIGHTWEIGHT_PROT=0, moved some pbuf pool logic to static functions 2007-04-30 13:18:22 +00:00
goldsimon
36e8213e42 PBUF_POOL_BUFSIZE: For the default length, alignment check in pbuf_init() failed. 2007-04-30 13:12:33 +00:00
goldsimon
cde6d0deed pbuf_alloc() / pbuf_realloc(): added LWIP_DEBUG_ASSERT() and cast operator when assigning s32_t to u16_t to get rid of compiler warnings 2007-04-30 11:56:48 +00:00
goldsimon
b462cb4575 Define ETH_PAD_SIZE after including opt.h to avoid conflict with lwipopts.h 2007-04-30 11:45:39 +00:00
goldsimon
dd4ccfc672 task #6792: added added LWIP_DEBUG_ASSERT(x,y), which triggers #ifndef LWIP_NOASSERT and #ifdef LWIP_DEBUG 2007-04-29 16:35:55 +00:00
goldsimon
6006e2f917 Changed some includes for loopif and added comments 2007-04-24 08:42:32 +00:00
goldsimon
4bedb07aa0 Added some more LWIP_UNUSED_ARG()s 2007-04-24 08:35:19 +00:00
goldsimon
02e194b15f fix bug #2595: "loopif results
in NULL reference for incoming TCP packets". Loopif has to be configured
(using LWIP_LOOPIF_MULTITHREADING) to directly call netif->input()
(multithreading environments, e.g. netif->input() = tcpip_input()) or
putting packets on a list that is fed to the stack by calling loopif_poll()
(single-thread / NO_SYS / polling environment where e.g.
netif->input() = ip_input).
2007-04-23 20:00:29 +00:00
goldsimon
82e579a29d Changed the comment to pbuf_realloc() that it can't grow (only shrink) chains to reflect the fact that we decided not to change this. 2007-04-17 17:48:35 +00:00
jifl
eacac8ee1d * sockets.h: FD_SETSIZE needs to match number of sockets, which is
MEMP_NUM_NETCONN in sockets.c right now.
2007-04-17 14:50:08 +00:00
jifl
cd19d81411 * pbuf.c: Use s32_t in pbuf_realloc(), as an s16_t can't reliably hold
the difference between two u16_t's.
2007-04-17 14:44:41 +00:00
jifl
748ba22a19 * icmp.c: Reset IP header TTL in ICMP ECHO responses (bug #19580). 2007-04-12 18:55:44 +00:00
kieranm
79be888b6f * tcp.c, tcp_in.c, tcp_out.c, tcp.h: Modify way the retransmission
timer is reset to fix bug#19434, with help from Oleg Tyshev.
2007-04-12 14:56:07 +00:00
fbernon
9bc49b3268 opt.h: rename DBG_TYPES_ON & DBG_MIN_LEVEL with LWIP_ prefix. 2007-04-12 00:16:30 +00:00
jifl
d92e0dec22 From bug #19222 comment #18. Minor tweak to sys_mbox_fetch to avoid redundant
code.
2007-04-11 23:16:49 +00:00
goldsimon
7932bf483b Ongoing fix to patch #5822: converted more statements like (void)arg; into LWIP_UNUSED_ARG(arg); 2007-04-11 19:39:24 +00:00
goldsimon
e54f3fdaac 3rd fix for bug #11400 (arp-queuing): More pbufs than previously thought need to be copied (everything but PBUF_ROM!). Cleaned up pbuf.c: removed functions no needed any more (by etharp). 2007-04-11 18:50:45 +00:00
jifl
0c94f22ded * sys.h, api_lib.c: Provide new sys_mbox_tryfetch function.
Require ports to provide new sys_arch_mbox_tryfetch function to get
    a message if one is there, otherwise return with SYS_MBOX_EMPTY.
2007-04-11 15:41:03 +00:00
kieranm
05909d6fa7 Apply patch #5745: Fix "Constant is long" warnings with 16bit
compilers.  Contributed by avatar@mmlab.cse.yzu.edu.tw
2007-04-11 13:32:41 +00:00
jifl
712a22e18c Applied patch #5832 from Tai-hwa Liang to keep ipv6 building. 2007-04-10 13:18:14 +00:00
fbernon
35893e36dd opt.h, tcpip.h, tcpip.c, netifapi.h, netifapi.c: New configuration option LWIP_NETIF_API allow to use thread-safe functions to add/remove netif in list, and to start/stop dhcp clients, using new functions from netifapi.h. Disable as default (no port change to do). 2007-04-06 10:09:24 +00:00
fbernon
787eecbf43 Fix mistakes in netconn's error field checking. 2007-04-05 21:11:16 +00:00
fbernon
5f1aac1450 api_msg.c: Fix bug #16830: "err_tcp() posts to connection mailbox when no pend on the mailbox is active". Now, the post is only done during a connect, and do_send, do_write and do_join_leave_group don't do anything if a previous error was signaled. 2007-04-05 16:54:20 +00:00
fbernon
7fdd312cca sockets.c: remplace ENOBUFS errors on alloc_socket by ENFILE to be more BSD compliant. 2007-04-05 16:49:33 +00:00
goldsimon
f6bdd2cae4 Introduced #define LWIP_UNUSED_ARG(x) use this for and architecture-independent form to tell the compiler you intentionally are not using this variable. Can be overriden in cc.h. 2007-04-04 19:54:22 +00:00
goldsimon
f8aa14d402 Fix bug #5848: add #if PAP_SUPPORT around the whole file pap.h 2007-04-04 19:21:27 +00:00
goldsimon
11a4f5538b Change names of 2 global variables again, as the previous names did not have lwip-style... 2007-04-03 16:33:14 +00:00
fbernon
26e88dc2c1 Don't set the IP_DF ("Don't fragment") flag in the IP header in IP output packets. See patch #5834. 2007-04-03 14:08:11 +00:00
goldsimon
34fcccc50b - Changed the names of some variables in SNMP module to avoid them shadowing each other (which produces a lot of warnings and makes the code hard to maintain)
- Added missing defines for 3 snmp-functions if LWIP_SNMP==0
2007-04-02 20:39:24 +00:00
goldsimon
2f53df93e8 Removed printf formatter warning introduced by last check-in (changed local variable from u32_t to u16_t) 2007-04-02 20:34:18 +00:00
fbernon
996d5fda69 ip.c: if IP_REASSEMBLY is set to 1, don't set the IP_DF ("Don't fragment") flag in the IP header in IP output packets. 2007-03-30 13:30:42 +00:00
fbernon
f75be85eea Add NETIF_FLAG_ETHARP flag and comments in this skeleton. 2007-03-30 10:32:57 +00:00
fbernon
f1412f5e5a api_msg.c: add a "pcb_new" helper function to avoid redundant code, and to add missing pcb allocations checking (in do_bind, and for each raw_new). Fix style. 2007-03-30 09:42:16 +00:00
fbernon
4208bcd8d1 Fix on NETIF_FLAG_ETHARP test (test inverted) 2007-03-30 09:25:41 +00:00
fbernon
5368a760cf most of files: prefix all debug.h define with "LWIP_" to avoid any conflict with others environment defines (these were too "generic"). 2007-03-30 08:47:04 +00:00
fbernon
9ec08fa76a Missing recv_timeout initialize in accept_function. Minor style fix (indent, mbox checking...) 2007-03-28 18:21:24 +00:00
fbernon
913a99dd35 api.h, api_lib.c, sockets.c: netbuf_ref doesn't check its internal pbuf_alloc call result and can cause a crash. lwip_send now check netbuf_ref result. 2007-03-28 17:26:06 +00:00
goldsimon
d956a39fec sockets.c Remove "#include <errno.h>" from sockets.c to avoid multiple
definition of macros (in errno.h and lwip/arch.h) if LWIP_PROVIDE_ERRNO is
    defined. This is the way it should have been already (looking at
    doc/sys_arch.txt)
2007-03-28 14:49:04 +00:00
kieranm
01d9bd573e 2007-03-28 Kieran Mansley
* opt.h Change default PBUF_POOL_BUFSIZE (again) to accomodate default MSS +
    IP and TCP headers *and* physical link headers
2007-03-28 12:27:38 +00:00
fbernon
d301b69dae Minor. Add LWIP_NETIF_HOSTNAME in skeleton and comment on #endif for LWIP_SNMP. 2007-03-28 10:29:06 +00:00
fbernon
c1fe7517ec opt.h, netif.h, dhcp.h, dhcp.c: New configuration option LWIP_NETIF_HOSTNAME allow to define a hostname in netif struct (this is just a pointer, so, you can use a hardcoded string, point on one of your's ethernetif field, or alloc a string you will free yourself). It will be used by DHCP to register a client hostname, but can also be use when you call snmp_set_sysname. 2007-03-28 09:39:12 +00:00
fbernon
cd1c96db56 netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to initialize a network interface's flag with. It tell this interface is an ethernet device, and we can use ARP with it to do a "gratuitous ARP" (RFC 3220 "IP Mobility Support for IPv4" section 4.6) when interface is "up" with netif_set_up(). 2007-03-28 09:23:35 +00:00
goldsimon
4aee4c1ac7 Free pbuf if pbuf_header() fails 2007-03-26 19:27:11 +00:00
goldsimon
bef0503545 Removed warning: sizeof() was automatically casted to negative 2007-03-26 18:57:30 +00:00
goldsimon
7aea2cd6f1 Remove warnings: "converting from 'u32_t' to 'u16_t': possible loss of data": check that received timeout values fit into u16_t. 2007-03-26 18:52:52 +00:00
goldsimon
028d707077 Remove warning in netif_add(): "converting from 's16' to 'u8_t': possible loss of data" (static variable netifnum) 2007-03-26 17:19:12 +00:00
goldsimon
c9df03d1a9 Remove warnings: "comparision between signed and unsigned" and "converting from 'unsigned long' to 'u8_t': possible loss of data" 2007-03-26 17:15:23 +00:00
fbernon
19338d2774 opt.h, tcpip.c: New configuration option LWIP_ARP allow to disable ARP init at build time if you only use PPP or SLIP. The default is enable. Note we don't have to call etharp_init in your port's initilization sequence if you use tcpip.c, because this call is done in tcpip_init function. 2007-03-26 16:13:46 +00:00
fbernon
005e5f2f72 api_lib.c (from Dmitry Potapov) : patch for netconn_write(), fixes a possible race condition which cause to send some garbage. It is not a definitive solution, but the patch does solve the problem for most cases. 2007-03-26 15:37:48 +00:00
fbernon
e54cd23ecb stats.h, stats.c, msg_in.c: Stats counters can be change to u32_t if necessary with the new option LWIP_STATS_LARGE. If you need this option, define LWIP_STATS_LARGE to 1 in your lwipopts.h. More, unused counters are not defined in the stats structs, and not display by stats_display(). Note that some options (SYS_STATS and RAW_STATS) are defined but never used. Fix msg_in.c with the correct #if test for a stat display. 2007-03-22 16:36:45 +00:00
fbernon
544e469eeb api_msg.h, api_msg.c: Remove obsolete API_MSG_ACCEPT and do_accept (never used). 2007-03-22 09:34:18 +00:00
fbernon
db739d16ce api_lib.c: somes resources couldn't be freed if there was errors during netconn_new_with_proto_and_callback. 2007-03-22 09:27:04 +00:00
fbernon
5fff6e7ff8 ethernetif.c: update netif->input calls to check return value. In older ports, it's a good idea to upgrade them, even if before, there could be another problem (access to an uninitialized mailbox). 2007-03-22 09:09:27 +00:00
goldsimon
776c01e60b fixed bug #5067 (essentialy a signed/unsigned warning fixed by casting to unsigned). 2007-03-21 21:14:06 +00:00
fbernon
3eb38d7611 api_lib.c, api_msg.c, tcpip.c: integrate sys_mbox_fetch(conn->mbox, NULL) calls from api_lib.c to tcpip.c's tcpip_apimsg(). Now, use a local variable and not a dynamic one from memp to send tcpip_msg to tcpip_thread in a synchrone call. Free tcpip_msg from tcpip_apimsg is not done in tcpip_thread. This give a faster and more reliable communication between api_lib and tcpip. 2007-03-21 16:38:58 +00:00
fbernon
766159e27e opt.h: Add LWIP_NETIF_CALLBACK (to avoid compiler warning) and set it to 0. 2007-03-21 15:35:02 +00:00
fbernon
bb34d8cfd1 api_msg.c, igmp.c, igmp.h: Fix C++ style comments 2007-03-21 14:47:52 +00:00
fbernon
a880469d7d Remove obsolete include from my port. 2007-03-21 13:57:45 +00:00
kieranm
e5147d5562 * netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com).
Provides callback on netif up/down state change.
2007-03-21 13:24:20 +00:00
kieranm
d7ff85850c 2007-03-21 Kieran Mansley
* opt.h Change default PBUF_POOL_BUFSIZE to accomodate default MSS +
    IP and TCP headers
2007-03-21 13:05:51 +00:00
kieranm
7294cb080b * Fix all uses of pbuf_header to check the return value. In some
cases just assert if it fails as I'm not sure how to fix them, but
    this is no worse than before when they would carry on regardless
    of the failure.
2007-03-21 12:55:00 +00:00
kieranm
b422864d5d sockets.c, igmp.c, igmp.h, memp.h: Fix C++ style comments and
comment out missing header include in icmp.c
2007-03-21 12:50:04 +00:00
fbernon
eab3667b61 memp.h, stats.c: Fix stats_display function where memp_names table wasn't synchronized with memp.h 2007-03-20 18:12:06 +00:00
fbernon
713e89cdb2 tcpip.c: Initialize tcpip's mbox, and verify if initialized in tcpip_input, tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init problem with network interfaces. Also fix a compiler warning. 2007-03-20 18:01:40 +00:00
kieranm
b290f0442d udp.c: Only try and use pbuf_header() to make space for headers if
not a ROM or REF pbuf.
2007-03-20 16:58:08 +00:00
fbernon
b035a6196a Add return types to tcpip_apimsg() and api_msg_post() to check ERR_MEM problems (api_lib.c can be change now). 2007-03-19 20:35:32 +00:00
fbernon
e4cd00b5ea Remove unimplemented "memp_realloc" function from memp.h. 2007-03-19 20:23:58 +00:00
goldsimon
3bb13829fe checked in patch #5796: pbuf_alloc: len field claculation caused memory corruption. 2007-03-11 20:07:37 +00:00