Commit Graph

263 Commits

Author SHA1 Message Date
likewise
7a92011933 Re-added pbuf_dechain() in udp_send() as it breaks current applications. 2003-03-24 12:57:00 +00:00
jani
c60d0de919 Add sio.h containing interface to platform specific serial layer.Make slipif use it instead of defining extern functions.This is in preparation for PPP 2003-03-24 10:54:03 +00:00
likewise
6457b93a1f Made some flag defines unsigned. 2003-03-24 10:30:12 +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
jani
9cafc7a764 avoid compiler warning 2003-03-21 10:34:47 +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
jani
2f7e4bd587 patch 1197 form floriZ.When debug is on and port is 0 in udp_bind ERR_USE is always returned due to missing braces.Reindent that part of code while at it 2003-03-19 16:04:54 +00:00
jani
84697ce713 Add priority argument to thread sys_thread_new.Patch from floriZ but slightly modfied 2003-03-19 15:27:56 +00:00
jani
0846206bc0 rename STATS to LWIP_STATS and make it checked by #if not #ifdef.The rest of the _STATS defines should follow 2003-03-19 12:37:46 +00:00
jani
441e9b8431 add tcpip_callback patch from Marc 2003-03-19 11:23:46 +00:00
davidhaas
f9f21934ab Fix to last fix for bug 2826: find_arp_entry() was now not finding any
entries unless there was an attached buffer. Fixed so that it finds entries
without attached buffer.

Also: Now attaching buffer to arp queue before sending arp request. For
Coldfire, where ethernet receive is done under interrupts arp response was
received before buffer was attached, thus causing attached frame to never get
transmitted.
2003-03-18 14:48:40 +00:00
davidhaas
2673568cfd Added default settings for DBG_MIN_LEVEL and definitions for the possible
levels.
2003-03-17 16:59:22 +00:00
likewise
45c13ad08f Fixed bug #2826 (re-use of oldest ARP entry with queued packet leaks pbuf). Only if ARP_QUEUEING == 1. 2003-03-16 23:46:29 +00:00
likewise
76d395c8de Fixed bug #2841 (etharp.c packet queueing always picks table entry 6). 2003-03-16 22:44:05 +00:00
likewise
090b4087fc Using a negated unsigned value as func. arg. fails for Keil C166 compilers. 2003-03-16 22:39:15 +00:00
likewise
7ece19c474 pbuf_unfold_reply() lost memory if already unfold.
dhcp_stop() leaked memory if a unfold reply was still in existance.
2003-03-16 22:36:54 +00:00
likewise
dbdd0f520f Added source comments. 2003-03-13 08:50:04 +00:00
likewise
d47ef79c04 Moved DBG_MIN_LEVEL out of here to lwipopts.h 2003-03-11 14:16:27 +00:00
likewise
400ff200ee Added comments on some ARP options. 2003-03-11 13:57:25 +00:00
likewise
daeb21b3b9 Include "netif.h" for ntohl and friends. 2003-03-10 16:13:25 +00:00
likewise
7e36c58529 Make sure that BYTE_ORDER is actually defined. Panic with #error if not. 2003-03-10 16:12:41 +00:00
likewise
aa84869fdb Fixed cyclic dependency by including netif.h. Not sure if this breaks other compilers? 2003-03-10 16:09:41 +00:00
likewise
bd6b1a0237 DBG_TYPES_ON added (must be overridden in lwipopts.h). 2003-03-10 16:08:52 +00:00
likewise
adf088e575 DBG_TYPES_ON removed (must be in lwipopts.h instead). 2003-03-10 16:07:50 +00:00
jani
8613f2a48e factor out netif_set_addr so address of netif can be changed 2003-03-07 10:55:58 +00:00
jani
f308f7cc80 Add sys_untimeout stub in case of NO_SYS 2003-03-07 10:29:25 +00:00
jani
eb1a41f3c9 socket functions use socklen_t, patch from floriZ.Also set/getsockopt use void * instead of char * as fourth arg 2003-03-03 10:29:21 +00:00
davidhaas
ee2c049518 Fixed build for coldfire after last debug.h and opt.h changes. 2003-02-25 21:46:04 +00:00
jani
0ba9a45d32 icmp messages need only PBUF_IP layer 2003-02-25 16:00:21 +00:00
jani
bcfc7173f3 default value for NO_SYS 2003-02-24 13:57:39 +00:00
jani
d390ca7056 cleaned up opt.h a bit, added more option defaults ad changed SYS_LIGHTWEIGHT_PROT to be a 0/1 define.The same for COMPAT_SOCKET 2003-02-24 10:49:05 +00:00
jani
18df3961e9 byte-order handling functions are in inet.c now and the uperrcase counterparts are gone. opt.h has all the
configurable items debug does not need to be directly included.
2003-02-21 16:43:46 +00:00
jani
d372121d6e dhcp.h and ip.h declare struct netif and don't include netif.h to avoid warnings. 2003-02-20 17:16:30 +00:00
jani
8e9aa84070 do not directly include lwipopts.h but lwip/opt.h instead 2003-02-20 16:32:22 +00:00
jani
6319ffbcb8 delete ethernetif.h 2003-02-20 15:23:04 +00:00
likewise
d1c03cbd69 Fixed some issues open after merging 'leon-dhcp'. 2003-02-20 14:35:40 +00:00
likewise
37629fc1b6 Fixed some issues open after merging 'leon-dhcp'. Added new debugging. 2003-02-20 13:13:51 +00:00
jani
cc31bb9358 make netif->init return err_t instead of void.Patch from David Le Corfec 2003-02-20 11:51:53 +00:00
jani
35ef1e1b86 fix compiler error 2003-02-20 11:48:13 +00:00
likewise
d8d787545e Merged with leon-dhcp branch. Tagged as POST_leon-dhcp afterwards. 2003-02-20 08:41:59 +00:00
likewise
0a51d72098 Removed Id: fields as they give conflicts while merging to leon-dhcp branch. 2003-02-19 22:07:42 +00:00
davidhaas
e13c78820f Fixed SYS_ARCH_PROTECT macros when NO_SYS is not defined.
Added documentation for lightweight protection.

Fixed debug statement in ip.c.

Removed tabs in files I changed.
2003-02-18 21:14:16 +00:00
davidhaas
7f1becc682 Allow minimal unix target to build in cygwin (but not necessarily run).
Applied a patch from Marc Boucher which has the following changes:

1) Fixed sys_arch.txt documentation to have new return type from
   sys_thread_new.

2) Removed unnecessary casts on calling sys_timeout() in certain files.

3) Removed some unnecessary break statements after return statements.

4) Changed sys_timeout_remove() to sys_untimeout().

5) Added some forgotten #ifndef SYS_LIGHTWEIGHT_PROT to memp.c

6) Changed LWIP_DIAG and LWIP_PLATFORM_ASSERT to have do while().
2003-02-18 19:27:48 +00:00
likewise
1660e800e0 Made UDP flag defines unsigned (by adding the U suffix). 2003-02-18 12:41:52 +00:00
jani
da40fbd054 move FD_SET defines to sockets.h from arch.h .Last arg of select is not a const according to linux and openBSD manpages 2003-02-17 11:34:48 +00:00
likewise
90bc698a40 Lightweight protection macros were not defined if NO_SYS was defined. 2003-02-17 10:13:00 +00:00
likewise
cb6cec0404 Disabled too restrictive behaviour in _bind() and _connect(). Reimplementation pending. 2003-02-14 15:49:02 +00:00
davidhaas
de29a0818e By request: moved lightweight protection to macros. 2003-02-12 22:00:18 +00:00
davidhaas
4fc309b1dd Made sys_arch_prot() interface more generic by returning sys_prot_t instead
of u32_t.
2003-02-12 16:38:46 +00:00
davidhaas
353478180d Fix some compile issues with both coldfire and unix builds. 2003-02-12 15:09:04 +00:00
jani
ea66eb6c23 one more C++ comment changed two prototypes added for the SNMP = 1 case 2003-02-12 08:06:50 +00:00
davidhaas
7b3e158c92 sys_thread_new() now returns the thread (request from Marc Boucher).
Removed some unused .h files in coldfire port.

Support LWIP_DIAG and LWIP_ASSERT in coldfire (sort of).

Fix to last api fix to make sure select() is triggered, even when there has
been a FIN.

Allow build of unixsim from cygwin by specifying "make ARCH=cygwin" or from
linux by specifying "make ARCH=linux".
2003-02-11 21:00:14 +00:00
jani
848dea2058 Only access non-NULL pbufs on some paths where they can be NULL in newly introduced callback code 2003-02-11 16:33:02 +00:00
jani
f2d35751ca fix doxygen comment for netif_add 2003-02-11 09:51:22 +00:00
jani
16833de1cf remove list.h 2003-02-11 09:10:10 +00:00
likewise
0cb0cd6611 C instead of C++ style comments. 2003-02-10 23:51:06 +00:00
davidhaas
dc49999124 Fixed some build issues regarding snmp.h 2003-02-10 21:58:34 +00:00
likewise
daebdd1d77 Removed my #error. 2003-02-10 19:55:35 +00:00
likewise
c68ee2b2ed SNMP functions are now unconditionally called and defined empty if LWIP_SNMP == 0
This removes a lot of #if #endif cluttering the source code.
2003-02-10 13:47:47 +00:00
likewise
32fbec2e48 Include arch/cc.h first, as architecture headers might #define NULL itself. 2003-02-10 13:20:33 +00:00
jani
c13e08a7f5 make debugs and asserts platform independent.No more use of abort and printf.delete 2 references to arch/cpu.h and arch/lib.h 2003-02-10 11:15:19 +00:00
jani
451926e5c3 don't include arch/lib.h 2003-02-07 10:23:15 +00:00
jani
1868b2d244 tcp_timer_needed should be a noop when using the raw API.Fix link error bug #2489 2003-02-07 10:13:51 +00:00
davidhaas
dd2fa15e8a Add the following features and bugfixes:
Added select() functionality to sockets library.
Support for errno in sockets library.
Byte ordering fixes.
basic lwip_ioctl(), FIONREAD, get/setsockopt() etc. support

- added additional argument to netif_add to pass state pointer so that the
if_init function has access to context information before
the interface is added, without accessing globals.

- added netif_remove()

- to conserve cpu load the tcpip_tcp_timer should only be active
when tcbs that need it exist.

- pass length of available data to callbacks for NETCONN_EVT_RCV events

- added tcpip_link_input(), a hack to allow processing of PPP
packets in tcpip_thread() context. This saves threads and context
switches.

- renamed incompatible ASSERT() macro to LWIP_ASSERT() to avoid name
collision.

- changed a bunch of %d's to %u's in format strings for unsigned values.

- added ip_frag to lwip_stats.

- changed IP_REASS_MAXAGE and IP_REASS_TMO defaults to more realistic
values.

- added sys_timeout_remove() function to cancel timeouts (needed by PPP
amongst other things).

- tolerate NULL returns from sys_arch_timeouts() since some threads might
not need to use or have timeouts.

- added sys_sem_wait_timeout()

- moved mem_malloc() function to end of mem.c to work around tasking
compiler bug.

- automatically bind to local tcp port if 0.

- allow customization of port ranges for automatic local bindings.

- corrected various typos, spelling errors, etc..

Thanks to Marc Boucher for many of these changes.
2003-02-06 22:18:56 +00:00
jani
d2e008d4b4 Update src/FILES and src/netif/FILES 2003-02-05 13:39:35 +00:00
davidhaas
98fbb855fb Added lightweight protection. In coldfire this is implemented by disabling
interrupts. In unixsim this is implemented by using a mutex. Uses #define
SYS_LIGHTWEIGHT_PROT to enable. It is enabled in coldfire by default, but
disabled in unixsim.

Fixes bug 2005 if you enable SYS_LIGHTWEIGHT_PROT. So the bug is closed.
2003-02-04 22:52:22 +00:00
likewise
987e9df948 Fixed comment typo. 2003-02-04 18:50:30 +00:00
likewise
70d54479a1 Changed some comments into JavaDoc format. 2003-02-04 18:49:46 +00:00
davidhaas
f5f31f5eaa ----------------------------------------------------------------------
Fixed the following bugs:
	2366: For coldfire port: pbuf is freed twice when no room on
	      output ring.
	2368: Coldfire port: buffer cleanup in 5272 driver causes
	      problems.
	2376: Can't have timeouts large enough

Note that timeouts are now 32 bits. This was done for select()
support. Coldfire and unix ports have been updated.
Committing in .

Modified Files:
	src/core/sys.c src/include/lwip/sys.h
----------------------------------------------------------------------
2003-02-04 14:50:45 +00:00
jani
442f46a1ce recvfrom accesses freed netbuf.If it's reused in the small window by another thread recvfrom returns bad from info.Patch #1041 by Florian Zschocke 2003-01-31 12:51:56 +00:00
likewise
ea6432702f Added comments. Code cleanup. Clearer debugging in udp_input(). 2003-01-30 15:02:48 +00:00
likewise
faa9191191 Added commented about the signedness of pbuf_header() argument. 2003-01-30 12:38:03 +00:00
likewise
8560f6ef2b Fixed DHCP packet input filter. Added numerous comments. Code cleanup. 2003-01-30 10:18:40 +00:00
likewise
bb0194cc0c Some macro's were not surrounded by brackets. Was dangerous when nesting macro's. 2003-01-30 09:32:31 +00:00
likewise
bcfdf4c1cf Removed the src/arch tree from the lwip module. (Now in seperate contrib module). 2003-01-29 13:18:40 +00:00
likewise
663b79ca72 ip_input() changed. A configured netif accepts any traffic and an unconfigured netif accepts only DHCP traffic.
Fixes bug #2004.
2003-01-28 18:24:25 +00:00
likewise
4a720425b7 Rebinding an active pcb did not check the given address/port against other bound pcb's. 2003-01-27 13:58:45 +00:00
likewise
0e4d59541a Fixed assignment of pcb->flags if pcb was NULL in udp_new(). 2003-01-27 12:35:16 +00:00
likewise
ba666295eb Nullified stray pointer for debugging purposes. 2003-01-27 11:31:30 +00:00
likewise
d34851db91 Initial commit of snmp.h function prototypes. 2003-01-27 09:29:07 +00:00
likewise
7dfd162a34 Added source documenting comments. 2003-01-27 08:50:28 +00:00
jani
6d0a8a85c7 Fix locking for disconnect operation (use post and fetch on the connection's mbox in the two threads like other operations).Make netconn_peer take a pointer to addr instead of pointer to pointer to addr.Addr is a 4 byte struct an IP address so use structure assignment not just pointer assignment when saving the peer.This way the address is really saved :fixes bug #1897 2003-01-24 09:24:44 +00:00
jani
721d237120 Fixes so that UDP connect() works.Enable generation of ICMP destination unreachable when the port is unavailable 2003-01-23 16:46:01 +00:00
jani
46c575c038 Fix udp_bind to allow rebind for same socket (yesterday's commit broke that) and introduce connection info for UDP pcbs.New function netconn_disconnect, do_disconnect for deatching UDP from a remote addres.Fix #2240 2003-01-22 16:18:05 +00:00
jani
16434f0d01 Don't allow multiple binds to the same UDP port/address pair.Closes bug #1896 2003-01-21 14:09:31 +00:00
jani
39edc69514 When all entries are 0 due to the whole table changing since the last arp tick (past 10 seconds) there's no oldest entry and the new entry does not get a spot.Fix this (from Ed Sutter) 2003-01-18 16:05:24 +00:00
likewise
2154ac3ecb Enhanced documentation on UDP PCB matchjng code. 2003-01-17 15:16:33 +00:00
jani
42309b5d6f put a state field in listen PCBs to since they are often treated as normal pcbs. patch #922, bug #2114 2003-01-17 14:18:55 +00:00
likewise
fa8f6cb204 Free incoming pbuf's in the TCP event macro if the recv callback is NULL. Fixes bug #2156. 2003-01-14 12:54:02 +00:00
jani
049853362a ack duplicate segments too to prevent connection hanging when a single transmitted ACK gets lost 2003-01-14 09:38:10 +00:00
jani
3e6202f614 do not set rtime too many times to 0.it's enough to do it in tcp_output_segment 2003-01-14 08:37:01 +00:00
jani
a993e962f5 fix compiler warnings in DEBUGF 2003-01-14 08:22:05 +00:00
likewise
1ad5537c9b Fixed some typo's in the comments. 2003-01-13 13:22:09 +00:00
likewise
ea0dc429a7 Added #include <string.h> for memset()/memcpy(). 2003-01-13 13:14:45 +00:00
jani
8d7f09fa92 remove global ctime.Each entry's ctime is now absolute.This avoids wrapping and also solves naming clash reported on the list 2003-01-13 09:38:21 +00:00
jani
02a6a8a809 etharp_output_sent no longer exists 2003-01-11 15:10:12 +00:00
jani
2bba9bcd9f make rtime field u16_t like rto otherwise it won't catch rto if that goes beyond 255.When that happens there's trouble already since 255 ticks is over 2 minutes but still... 2003-01-10 15:46:58 +00:00
jani
4eebbdea0d print correct pcb->rtime value in debug statament.it does not directly depend on tcp_ticks 2003-01-10 15:41:02 +00:00