Commit Graph

149 Commits

Author SHA1 Message Date
davidhaas
50f47f18c1 Fix memory leaks.
When pbufs are chained, the second pbuf must be freed, if no higher level
application refers to it any longer.
2003-04-09 20:28:15 +00:00
davidhaas
18a215e6a8 Made memory stats more accurate (real amount and max amount of memory used).
Also fixed a protection bug which occurred when memory allocation failed.
2003-04-09 20:19:27 +00:00
likewise
1254b42e66 Enabled code to abort/replace TCP pcbs upon netif address change. 2003-04-09 15:17:57 +00:00
likewise
a389b630ac Added (non-active) code handling pcbs upon changing IP address. 2003-04-08 12:19:02 +00:00
likewise
a4a7a7a47e TCP data can be safely referenced as PBUF_ROM instead of PBUF_REF. 2003-04-07 21:28:16 +00:00
likewise
12fc0239c2 Fixed bug #3112 (faulty behaviour calling tcp_listen() when already listening) 2003-04-06 20:35:50 +00:00
likewise
0418edb7b6 Added debugging to verify correct result of udp_bind() / udp_connect(). 2003-04-04 08:14:49 +00:00
likewise
2e233cb35b Fixed stylo. 2003-04-04 08:14:04 +00:00
likewise
6d3149714f Print debug message before actually changing netif IP address config. 2003-04-03 12:09:39 +00:00
likewise
9ea10ce05d In pbuf_take(): Got rid of variable 'f'. Fixed stylo (typo in style). Renamed 'top' to 'head'. 2003-04-03 08:50:57 +00:00
davidhaas
21d17e41fd Fixed last change to pbuf_take. There were two calls to pbuf_free in a row. 2003-04-01 15:54:25 +00:00
likewise
af8f280811 Fixed ip_addr_set() to deal with IP_ADDR_ANY. Added "ip_addr.h" include. 2003-04-01 15:00:26 +00:00
likewise
7abb278b60 Added assertion checking against dupes in pcb active list. Added comments. 2003-04-01 14:52:41 +00:00
likewise
a22e66f5ee IP_ADDR_ANY is now a pointer to { 0UL } (see IP_ADDR_BROADCAST). 2003-04-01 14:49:37 +00:00
likewise
1a72feb128 etharp_query() has error return type now. Matched dhcp.c with this change.
Added debug messages in other places.
2003-04-01 14:02:50 +00:00
likewise
a28af1be11 Fixed another assert. Removed another redundant assignment. 2003-04-01 12:28:45 +00:00
likewise
b04ac8f3be Lots of comments added. Removed redundant assignment. Moved assertion. 2003-04-01 12:17:55 +00:00
likewise
5f35f4bb3b Reverted back to David Haas' patch of pbuf_chain() from 1.34. 2003-04-01 09:35:20 +00:00
likewise
4c3512c0a2 Replaced pbuf.c 1.34 pbuf_take() change by simpler alternative. 2003-03-31 23:28:54 +00:00
davidhaas
09ca7a181b In keeping with pbuf->ref always having the count of the number of pointers
to the particular buffer (and the last rewrite of pbuf_free), changed most
pbuf_ref_chain() calls back to pbuf_ref(). I think this was causing some pbuf
leaks.
2003-03-31 22:09:39 +00:00
davidhaas
82a32be1d6 Fixed issue in pbuf_take(): old pbuf of type PBUF_REF was being referenced
after being freed. Also, it was not being freed if it had been the first
buffer in chain. It still needs to be freed then.
2003-03-31 21:32:30 +00:00
davidhaas
9f3511231a Fix pbuf_chain() to update tot_len of last buffer in first chain properly.
Previous code skipped it.

Made comments in pbuf_header() more general (header can be increased or
decreased).
2003-03-31 20:45:08 +00:00
likewise
6da25968e0 pbuf_header() now only moves payload pointer upwards for PBUF_ROM/REF. 2003-03-31 18:48:52 +00:00
likewise
a70f478ef1 Fixed pbuf_dechain() assertion. Removed old documentation from pbuf.h. 2003-03-31 11:39:48 +00:00
likewise
6c147709b6 Documentation changes. Added missing trailing newlines to debug messages. 2003-03-31 10:32:35 +00:00
kieranm
8636ac26cf Fixed bug in mem_realloc (check alignment of size) 2003-03-31 09:36:18 +00:00
likewise
e6cc785fff Fixed missing variable. 2003-03-31 08:34:02 +00:00
likewise
00809b49f1 Better error handling. Added debug messages for serious errors. 2003-03-31 08:02:52 +00:00
likewise
917f8ec799 Added debug messages for serious errors. 2003-03-31 08:00:01 +00:00
likewise
c50f80da92 Corrected more pbuf.c functions to comply with pbuf->ref and ->tot_len invariant. 2003-03-30 22:24:10 +00:00
likewise
2bd3d51fcf Removed the pbuf_dechain() from udp_send() matching new pbuf code. 2003-03-30 00:39:03 +00:00
davidhaas
2e0829fb5a Made lwip timeout measurements accurate by no longer returning 1 millisecond
whenever sys_arch_mbox_wait() and sys_arch_sem_wait() get a message or
semaphore immediately. Updated documentation for this change.
Unix port and Coldfire port have been updated.
2003-03-28 20:46:40 +00:00
davidhaas
c4ff244c4e Fixed minor compile issues. 2003-03-28 19:45:37 +00:00
likewise
002998cf49 Fixed bugs #2968 (ref count) and #2670 (total length).
Name of pbuf_unref() falsely suggests to undo pbuf_ref(), renamed to pbuf_take().
2003-03-28 08:49:05 +00:00
likewise
7dea6dc834 pbuf_realloc() did not update ->tot_len in a chain. Fixed dealloc of REF/ROMs. 2003-03-26 13:50:03 +00:00
likewise
fd0d94af44 Fixing bug #1903 with a new pbuf_realloc() that respects mixed-type chains. 2003-03-26 13:30:38 +00:00
likewise
ab630b2875 Strong assert checking against queueing behaviour in udp_send(). 2003-03-26 10:59:31 +00:00
likewise
f4f717b20a Fixed typo affecting debugging. 2003-03-26 00:31:55 +00:00
likewise
fa34d51b7e Added documentation and comments. 2003-03-25 12:59:42 +00:00
likewise
6621f8b88a New tail section of udp_send() that handles both queued and unqueued cases. 2003-03-25 12:58:22 +00:00
likewise
80b961df60 Lots of clearing up comments and use of new debugging features. 2003-03-24 15:15:18 +00:00
likewise
cea002a088 Forgot #if LWIP_DHCP around netif->dhcp = NULL; 2003-03-24 14:30:18 +00:00
likewise
e062b70da8 Retry with PBUF_RAM if PBUF_POOL allocation failed. 2003-03-24 13:27:12 +00:00
likewise
ce4dbcec6a Initialized netif->dhcp to NULL. 2003-03-24 13:06:16 +00:00
likewise
07058652c1 Added tracing debug messages. 2003-03-24 12:58:01 +00:00
likewise
7a92011933 Re-added pbuf_dechain() in udp_send() as it breaks current applications. 2003-03-24 12:57:00 +00:00
likewise
20667e5163 Added debug levels for some serious errors (out of memory). 2003-03-24 10:29:03 +00:00
davidhaas
96f2e162ef Fixed memory leak caused by my last pbuf_ref change. 2003-03-21 23:01:20 +00:00
jani
859f06a91e if LWIP_TCP is 0 do not link in TCP code.putting ugly ifdefs in api and core :(.Also only udp_init if LWIP_UDP is on 2003-03-21 10:48:21 +00:00
davidhaas
32d9f25a6f Fixed up and made work a PBUF_REF type. Most of the code uses this now
instead of PBUF_ROM. This addition allows support of copy-on-demand where the
lower layers can call pbuf_unref() which tests for any PBUF_REF buffers and
replaces them with PBUF_POOL buffers. This is now used
everywhere. pbuf_unref() is called in ARP queueing and in the coldfire
driver, which puts frames on a DMA queue and frees them later.

Along with this change pbuf_free() now goes through the entire chain of
buffers and tests all the ref counters, not just the first one. Generally now
pbuf_ref_chain() should be called and not pbuf_ref(). This change was made
because it is possible for the head of the pbuf chain to have a different
count than the payload pbuf which might have been passed by the application.
2003-03-19 22:14:49 +00:00