goldsimon
|
f3f7bd00e5
|
ip_input: check if a packet is for inp first before checking all other netifs on netif_list (speeds up packet receiving in most cases)
|
2007-12-03 17:55:01 +00:00 |
|
goldsimon
|
47d8d69b81
|
fix bug #21654: exclude definition of struct timeval from #ifndef FD_SET. If including <sys/time.h> for system-struct timeval, LWIP_TIMEVAL_PRIVATE now has to be set to 0 in lwipopts.h
|
2007-12-02 15:24:02 +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
|
b28cd02149
|
task #7497: Sort lists (pcb, netif, ...) for faster access UDP: move a (connected) pcb selected for input to the front of the list of pcbs so that it is found faster next time. Same for RAW pcbs that have eaten a packet.
|
2007-11-30 09:44:18 +00:00 |
|
goldsimon
|
cedd5c21e6
|
first attempt to fix bug #21655 (DHCP doesn't work reliably with multiple netifs): if LWIP_DHCP is enabled, UDP packets to DHCP_CLIENT_PORT are passed to netif->dhcp->pcb only (if that exists) and not to any other pcb for the same port (only solution to let UDP pcbs 'bind' to a netif instead of an IP address)
|
2007-11-30 08:55:15 +00:00 |
|
goldsimon
|
1b07fecbf3
|
Introduced ETHARP_STATS
|
2007-11-28 21:25:06 +00:00 |
|
goldsimon
|
f07c1cf874
|
fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by letting ip_route only use netifs that are up.
|
2007-11-28 06:48:50 +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
|
b4741332e0
|
Implemented new function udp_sendto_if which takes the netif to send as an argument (to be able to send on netifs that are down).
|
2007-11-27 20:13:16 +00:00 |
|
goldsimon
|
f57c2424cf
|
Fixed bug #21582: pcb->acked accounting can be wrong when ACKs arrive out-of-order
|
2007-11-26 19:08:39 +00:00 |
|
goldsimon
|
1b208d0954
|
dhcp_unfold_reply() uses pbuf_copy_partial instead of its own copy algorithm; corrected some assert messages
|
2007-11-25 11:51:44 +00:00 |
|
goldsimon
|
c86b446d4c
|
Moved lwip_gethostbyname from sockets.c to the new file netdb.c; included lwip_getaddrinfo.
|
2007-11-24 16:12:02 +00:00 |
|
goldsimon
|
95425552d7
|
Implemented calculating the effective send-mss based on the MTU of the netif used to send. Enabled by default. Disable by setting LWIP_CALCULATE_EFF_SEND_MSS to 0. This fixes bug #21535.
|
2007-11-21 18:37:23 +00:00 |
|
goldsimon
|
dc515c7ad3
|
Fixed bug #20287: tcp_output_nagle sends too early. This fixes the nagle algorithm; nagle now also works for all raw API applications and has to be explicitly disabled with 'tcp_pcb->flags |= TF_NODELAY'
|
2007-11-21 17:59:03 +00:00 |
|
fbernon
|
f58515b51e
|
api_msg.c, dns.h, dns.c: Implement DNS_DOES_NAME_CHECK option (check if name received match the name query), implement DNS_USES_STATIC_BUF (the place where copy dns payload to parse the response), return an error if there is no place for a new query, and fix some minor problems.
|
2007-11-19 22:42:01 +00:00 |
|
goldsimon
|
9dd4ad6c1f
|
Added thread-safe function gethostbyname_r (as in glibc)
|
2007-11-18 16:36:34 +00:00 |
|
goldsimon
|
1faf0ab9e3
|
Moved inet files into ipv4/ipv6 directory; splitted inet.c/inet.h into inet and chksum part; changed includes in all lwIP files as appropriate
|
2007-11-16 19:31:10 +00:00 |
|
goldsimon
|
e6ec23d7cc
|
Added sequential (socket API) function gethostbyname and the struct hostent it uses
|
2007-11-16 17:29:30 +00:00 |
|
goldsimon
|
e2cd201f6a
|
Added sequential dns resolver function for netconn api (netconn_gethostbyname)
|
2007-11-16 17:16:17 +00:00 |
|
fbernon
|
0c0e8d6544
|
opt.h, init.c, tcpip.c, dhcp.c, dns.h, dns.c: add DNS client for simple name requests with RAW api interface. Initialization is done in lwip_init() with build time options. DNS timer is added in tcpip_thread context. DHCP can set DNS server ip addresses when options are received. You need to set LWIP_DNS=1 in your lwipopts.h file (LWIP_DNS=0 in opt.h). DNS_DEBUG can be set to get some traces with LWIP_DEBUGF. Sanity check have been added. There is a "todo" list with points to improve.
|
2007-11-14 23:27:13 +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
|
21bbc9a81a
|
Fixed bug: assert fired when MEMP_ARP_QUEUE was empty (which can happen any time). Now the packet simply isn't enqueued when out of memory.
|
2007-11-10 17:41:46 +00:00 |
|
goldsimon
|
bfe24b138d
|
Patch #6215: added ifAdminStatus write support (if explicitly enabled by defining SNMP_SAFE_REQUESTS to 0); added code to check link status for ifOperStatus if LWIP_NETIF_LINK_CALLBACK is defined.
|
2007-11-06 20:53:37 +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 |
|
goldsimon
|
2d5908f4de
|
Fixed bug #21494: The send mss (pcb->mss) is set to 536 (or TCP_MSS if that is smaller) as long as no MSS option is received from the remote host.
|
2007-11-01 16:53:43 +00:00 |
|
goldsimon
|
298d5cf042
|
Fixed bug #21491: The MSS option sent (with SYN) is now based on TCP_MSS instead of pcb->mss (on passive open now effectively sending our configured TCP_MSS instead of the one received).
|
2007-11-01 16:23:32 +00:00 |
|
goldsimon
|
853765954e
|
Fixed bug #21181: On active open, the initial congestion window was calculated based on the configured TCP_MSS, not on the MSS option received with SYN+ACK.
|
2007-11-01 15:51:43 +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
|
199648ff37
|
Changed initialization: many init functions are not needed any more since we now rely on the compiler initializing global and static variables to zero!
|
2007-10-09 19:59:56 +00:00 |
|
goldsimon
|
536f2e42d2
|
Fixed UDPLite receive: checksum was calculated wrong if checksum coverage != tot_len
|
2007-10-09 19:43:29 +00:00 |
|
goldsimon
|
9ef005454a
|
lfree was not updated in mem_realloc!
|
2007-10-08 18:39:44 +00:00 |
|
goldsimon
|
2ca113a218
|
Fixed UDPLite SENDING: Checksum was always generated too short and also was generated wrong if checksum coverage != tot_len.
|
2007-10-07 20:19:23 +00:00 |
|
fbernon
|
9804b25acc
|
Fix CHANGELOG entry
|
2007-10-07 17:30:50 +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 |
|
goldsimon
|
b7ef6077df
|
Changed IP_REASSEMBLY to enqueue the received pbufs so that multiple packets can be reassembled simultaneously and no static reassembly buffer is needed.
|
2007-10-06 15:24:43 +00:00 |
|
goldsimon
|
cb71d6d393
|
Moved ethernet_input from tcpip.c to etharp.c so all netifs (or ports) can use it.
|
2007-10-05 14:00:48 +00:00 |
|
fbernon
|
79c00be516
|
netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change the common function to reduce a little bit the footprint (for all functions using only the "netif" parameter).
|
2007-10-05 13:34:48 +00:00 |
|
fbernon
|
949efb414a
|
netifapi.h, netifapi.c: add functions netifapi_netif_set_up, netifapi_netif_set_down, netifapi_autoip_start and netifapi_autoip_stop. Use a common function to reduce a little bit the footprint (for all functions using only the "netif" parameter).
|
2007-10-03 16:54:27 +00:00 |
|
goldsimon
|
0aa3d89134
|
Fixed bug #21080 (tcp_bind without check pcbs in TIME_WAIT state) by checking tcp_tw_pcbs also
|
2007-09-20 18:27:50 +00:00 |
|
kleshov
|
4ffafdeb86
|
Fixed bug #21077: inaccuracy in calculation of lwip_stat.mem.used
|
2007-09-19 17:56:39 +00:00 |
|
goldsimon
|
0bf32b957d
|
Fixed bug #21107 (didn't reset IP TTL in ICMP echo replies)
|
2007-09-19 06:12:34 +00:00 |
|
fbernon
|
2bdd916b06
|
udp.h, udp.c, sockets.c: Changes for "#20503 IGMP Improvement". Add IP_MULTICAST_IF option in socket API, and a new field "multicast_ip" in "struct udp_pcb" (for netconn and raw API users), only if LWIP_IGMP=1. Add getsockopt processing for IP_MULTICAST_TTL and IP_MULTICAST_IF.
|
2007-09-15 15:19:41 +00:00 |
|
fbernon
|
47ae677652
|
enable to remove SNMP timer (which consumne several cycles even when it's not necessary). snmp_agent.txt tell to call snmp_inc_sysuptime() each 10ms (but, it's intrusive if you use sys_timeout feature). Now, you can decide to call snmp_add_sysuptime(100) each 1000ms (which is bigger "step", but call to a lower frequency). Or, you can decide to not call snmp_inc_sysuptime() or snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro. This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only when it's queried (any direct call to "sysuptime" is changed by a call to snmp_get_sysuptime).
|
2007-09-10 18:50:44 +00:00 |
|
fbernon
|
939180c1a1
|
igmp.h, igmp.c, netif.h, netif.c, ip.c: To enable to have interfaces with IGMP, and others without it, there is a new NETIF_FLAG_IGMP flag to set in netif->flags if you want IGMP on an interface. igmp_stop() is now called inside netif_remove(). igmp_report_groups() is now called inside netif_set_link_up() (need to have LWIP_NETIF_LINK_CALLBACK=1) to resend reports once the link is up (avoid to wait the next query message to receive the matching multicast streams).
|
2007-09-09 20:46:33 +00:00 |
|
fbernon
|
8205737fdb
|
sockets.c, ip.h, api.h, tcp.h: declare a "struct ip_pcb" which only contains IP_PCB. Add in the netconn's "pcb" union a "struct ip_pcb *ip;" (no size change). Use this new field to access to common pcb fields (ttl, tos, so_options, etc...). Enable to access to these fields with LWIP_TCP=0.
|
2007-09-07 23:47:02 +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
|
ac1149156d
|
several-files: replace some #include "arch/cc.h" by "lwip/arch.h", or simply remove it as long as "lwip/opt.h" is included before (this one include "lwip/debug.h" which already include "lwip/arch.h"). Like that, default defines are provided by "lwip/arch.h" if they are not defined in cc.h, in the same spirit than "lwip/opt.h" for lwipopts.h.
|
2007-09-06 16:43:43 +00:00 |
|
fbernon
|
ca866c0d7d
|
Integrate "task #7272 : LWIP_ICMP option". The new option LWIP_ICMP enable/disable ICMP module inside the IP stack (enable per default). Be careful, disabling ICMP make your product non-compliant to RFC1122, but help to reduce footprint, and to reduce "visibility" on the Internet.
|
2007-09-05 17:20:45 +00:00 |
|