goldsimon
e60bc69515
added more missing casts
2015-04-23 07:24:45 +02:00
goldsimon
beabd3c6b7
Added some macros with extension "_val" that work on actual instances and leave away the "if != NULL" check to get rid of gcc "-Waddress" warnings in the core code at least (I might not have caught all of them, yet)
2015-04-22 12:43:03 +02:00
sg
c1c65777b6
worked on task #13480 : added LWIP_IPV4 define - IPv4 can be disabled, leaving an IPv6-only stack (SNMP is still missing)
2015-04-12 10:43:46 +02:00
sg
ce7e31cd04
task #12722 (improve IPv4/v6 address handling): renamed ip_addr_t to ip4_addr_t, renamed ipX_addr_t to ip_addr_t and added IP version;
...
ip_addr_t is used for all generic IP addresses for the API, ip(4/6)_addr_t are only used internally or when initializing netifs or when calling version-related functions
2015-04-09 22:21:15 +02:00
sg
553c4203ab
tcp/udp_netif_ipv4_addr_changed(): don't change specific-address of local tcp_listen/udp_pcb to ANY on address change
2015-03-06 20:25:51 +01:00
sg
99dd78964a
fixed bug #40753 (re-bind UDP pcbs on change of IP address)
2015-02-26 22:17:30 +01:00
Joel Cunningham
9004554da3
fixed bug #43028 (IP_MULTICAST_TTL affects unicast datagrams)
2015-02-25 21:59:21 +01:00
sg
612e33c499
fixed bug #38061 (wrong multicast routing in IPv4) by adding an optional default netif for multicast routing
2015-02-25 20:58:11 +01:00
chrysn
9f065c0ea5
(api break) qualify ip_addr_t as const where feasible
...
this changes the callback signatures of the ip_output and the
{udp,raw}_recv functions.
changes were made by going through all header files, searching for
occurrences of ip_addr_t, qualifying them as const and if required
modifying the corresponding c files, looking for other uses of ip_addr_t
that would be required.
the following header files were not treated as i'm not using them and
wouldn't see them compiled: api.h api_msg.h dhcp.h dns.h igmp.h
netifapi.h pppapi.h snmp.h snmp_msg.h snmp_structs.h ppp.h pppol2tp.h
test/*
no modifications were done on ip6_addr_t.
2015-02-22 21:46:02 +01:00
sg
974a853f40
patch #8423 "arch/perf.h" should be made an optional item
2015-02-11 21:25:47 +01:00
goldsimon
4085a3fad4
task #11472 Support PBUF_REF for RX (IPv6 and IPv4/v6 reassembly might not work yet)
2014-12-08 14:45:36 +01:00
Simon Goldschmidt
33237419c1
Parts of patch #8397 Typos corrected in comments and text outputs
2014-09-18 21:15:13 +02:00
Simon Goldschmidt
be75c483d0
Fixed bug #41787 DHCP Discovery is invalid when an IP is set to thet netif (send discover, request and decline from 'any').
...
Addd functions to send udp/ipv4/ipv6 packets with source address 'any' although netif has an address assigned
2014-04-06 20:32:37 +02:00
Simon Goldschmidt
dceed2ea5c
fixed bug #39225 udp.c uses netif_matches_ip6_addr() incorrectly; renamed function netif_matches_ip6_addr() to netif_get_ip6_addr_match()
2014-02-25 22:30:46 +01:00
Simon Goldschmidt
9927d991ef
Fixed bug #37893 Unused variables in tcp_out (and in udp.c/.h)
2013-01-14 20:46:41 +01:00
goldsimon
7043983acc
udp_input: fixed unreachable code warning for CHECKSUM_CHECK_UDP==0
2012-03-25 17:20:22 +02:00
goldsimon
c8647c0396
implemented API functions to access so_options of IP pcbs (UDP, TCP, RAW) (fixes bug #35061 )
2011-12-17 22:12:01 +01:00
Simon Goldschmidt
0aea1b608a
Corrected fix for bug #34072 (UDP broadcast is received from wrong UDP pcb if udp port matches): pcbs bound to IPADDR_ANY did not receive broadcasts any more (bug #34294 )
2011-09-22 06:24:58 +02:00
Simon Goldschmidt
112158b056
Added a config option to randomize initial local TCP/UDP ports (so that different port ranges are used after a reboot; bug #33818 ; this one added tcp_init/udp_init functions again);
...
fixed a possible endless loop in tcp_new_port() if the number of active PCBs exceeds the number of available ports;
2011-09-11 12:44:01 +02:00
Simon Goldschmidt
4849eb4c54
fixed bug #34072 : UDP broadcast is received from wrong UDP pcb if udp port matches
2011-09-09 22:25:59 +02:00
goldsimon
d80be7961c
use PCB_IS_IPV6(pcb) instead of pcb->isipv6 everywhere; fixed compilation with LWIP_IPV6==1 but LWIP_IGMP==0
2011-05-28 09:30:43 +00:00
goldsimon
ccd7dbe0e4
Added ipX versions for routing
2011-05-26 15:46:44 +00:00
goldsimon
6865806b55
Combined IPv4 and IPv6 code where possible, added defines to access IPv4/IPv6 in non-IP code so that the code is more readable.
2011-05-25 17:16:35 +00:00
goldsimon
4bfbe7ebeb
... and finally, we got a first working version of a dual-stack lwIP runnin IPv4 and IPv6 in parallel - big thanks to Ivan Delamer! (this is work in progress, so please beware, test a lot and report problems!)
2011-05-17 19:35:14 +00:00
goldsimon
33d6dcec5b
Fixed bug #33048 (Bad range for IP source port numbers) by using ports in the IANA private/dynamic range (49152 through 65535).
2011-04-13 17:52:00 +00:00
goldsimon
aaa8d2795e
Don't chain empty pbufs when sending them (fixes bug #30625 )
2010-08-03 08:38:59 +00:00
goldsimon
04beab4f7d
IP_MULTICAST_LOOP shall be disabled by default
2010-07-12 14:10:28 +00:00
goldsimon
691410ba18
task #10495 : Added support for IP_MULTICAST_LOOP at socket- and raw-API level.
2010-07-12 09:34:11 +00:00
goldsimon
f7479781c1
bug #27352 : removed packing from ip_addr_t, the packed version is now only used in protocol headers. Added global storage for current src/dest IP address while in input functions.
2010-05-22 21:11:02 +00:00
goldsimon
d8d964d09e
udp_input/SO_REUSE_RXTOALL: only call pbuf_header if there is a 2nd pcb to pass the data to
2010-05-15 17:11:41 +00:00
goldsimon
02f5e19420
udp_input: use SO_REUSE && SO_REUSE_RXTOALL to copy incoming (broad-/multicast) data to additional pcbs
2010-05-15 16:46:53 +00:00
goldsimon
a56795c149
Added new option SO_REUSE_RXTOALL to pass received UDP broadcast/multicast packets to more than one pcb
2010-05-15 14:52:39 +00:00
goldsimon
d0348e0c60
task #6995 : Implement SO_REUSEADDR (correctly)
2010-05-12 22:29:58 +00:00
goldsimon
f98e5717e5
task #6849 : added udp_send(_to/_if) functions that take a precalculated checksum, added pbuf_fill_chksum() to copy data into a pbuf and at the same time calculating the checksum for that data
2010-04-30 20:39:45 +00:00
goldsimon
94cbed5096
Corrected comment
2010-03-14 12:35:30 +00:00
goldsimon
82e4716784
Fixed comment to our flag names
2010-02-12 16:30:58 +00:00
goldsimon
90bed0c5ac
Added yet another IP-address-modifying define, ip_addr_set_any()
2010-02-08 17:24:08 +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
a23b446ddf
Use macros defined in ip_addr.h (some of them new) to work with IP addresses (preparation for bug #27352 - Change ip_addr from struct to typedef (u32_t) - and better code).
2010-02-04 17:21:32 +00:00
goldsimon
5fa0347e64
Cleanly separate the portability file inet.h and its contents from the stack: moved htonX- functions to def.h (and the new def.c - they are not ipv4 dependent), let inet.h depend on ip_addr.h and not the other way round. This fixes bug #28732 .
2010-01-29 08:20:32 +00:00
goldsimon
e678e1bdcb
bug #28659 : Missing casts
2010-01-25 08:24:30 +00:00
goldsimon
2d4e76874c
Using typedefs for function prototypes and -pointers throughout the stack for clarity
2010-01-14 20:02:15 +00:00
goldsimon
6df94d3c76
Coding style
2010-01-13 15:17:01 +00:00
goldsimon
f4c0655190
Fixed usage of logging levels (bug #27948 : Incorrect logging levels used in various places)
2009-11-22 15:14:46 +00:00
goldsimon
9e5cf1cf8e
Reverted change for bug #27252 (Address pointer invalid after freeing pbuf in UDP receive callback) as it made more problems than before :-(
2009-10-07 17:50:46 +00:00
goldsimon
362a295e06
Fixed bug #27252 : Address pointer invalid after freeing pbuf in UDP receive callback
2009-08-23 11:32:38 +00:00
fbernon
d4ecb23015
raw.c, udp.c, init.c, opt.h, ip.h, sockets.h: bug #26309 : Implement the SO(F)_BROADCAST filter for all API layers. Avoid the unindented reception of broadcast packets even when this option wasn't set. Port maintainers which want to enable this filter have to set IP_SOF_BROADCAST=1 in opt.h. If you want this option also filter broadcast on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1 in opt.h.
2009-04-29 12:42:43 +00:00
goldsimon
580f334274
patch #6808 : Add a utility function ip_hinted_output() (for smaller code mainly)
2009-04-15 19:32:01 +00:00
goldsimon
aa568727d1
patch #6699 : fixed some warnings on platform where sizeof(int) == 2
2008-12-19 18:08:29 +00:00
jifl
886cfbe12d
Minor spelling typos and formatting fixes.
2008-01-11 14:28:58 +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
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
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
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
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
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
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
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
fbernon
9152d6671c
Comments Fix for Doxygen documentation
2007-08-09 22:21:44 +00:00
fbernon
118331207b
udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a multicast packet on a udp pcb binded on an netif's IP address, and not on "any".
2007-08-09 18:34:03 +00:00
goldsimon
eb875de67e
Added assertions where PBUF_RAM pbufs are used and an assumption is made that this pbuf is in one piece (i.e. not chained). These assumptions clash with the possibility of converting to fully pool-based pbuf implementations, where PBUF_RAM pbufs might be chained.
2007-07-03 20:28:35 +00:00
goldsimon
96e4ec4a15
Added option LWIP_NETIF_HWADDRHINT (default=off) to cache ARP table indices with each pcb instead of single-entry cache for the complete stack.
2007-07-02 20:41:22 +00:00
goldsimon
dcc2247a90
Fixed bug #20253 : icmp_dest_unreach was called with a wrong p->payload for udp packets with no matching pcb.
2007-06-25 17:30:16 +00:00
goldsimon
00b7aeb49b
Fixed bug #20220 : UDP PCB search in udp_input(): a non-local match could get udp input packets if the remote side matched.
2007-06-25 17:24:31 +00:00
goldsimon
6336279ce0
In udp_input, for UDP Lite, chksum_len_tx was used instead of chksum_len_rx
2007-06-12 07:03:32 +00:00
goldsimon
046a270156
Added UDP lite support for sockets
2007-06-11 18:43:16 +00:00
goldsimon
2f293d53ba
UDP Lite: corrected the use of chksum_len (based on RFC3828: if it's 0, create checksum over the complete packet. On RX, if it's < 8 (and not 0), discard the packet. Also removed the duplicate 'udphdr->chksum = 0' for both UDP & UDP Lite.
2007-06-11 18:03:57 +00:00
goldsimon
95f4c02381
Included switch LWIP_UDPLITE (enabled by default) to switch off UDP-Lite support if not needed (reduces udp.c code size)
2007-06-10 12:02:24 +00:00
goldsimon
3a429eabcd
Set q to NULL after freeing it before returning: cleaner code!
2007-06-04 10:42:03 +00:00
goldsimon
3639daa329
IPv6: #define IPH_PROTO(hdr) (iphdr->nexthdr) to remove #ifdef IPv6 in udp_input()
2007-06-03 18:10:33 +00:00
goldsimon
8fd6a61df6
Done some work on task #1549 (function documentation)
2007-06-03 18:05:52 +00:00
goldsimon
974cf08e5d
udp_input(): Input pbuf was not freed if pcb had no recv function registered, p->payload was modified without modifying p->len if sending icmp_dest_unreach() (had no negative effect but was definitively wrong).
2007-06-03 11:32:03 +00:00
goldsimon
874415a193
Added comments whether fields are host or network byte order (task #1568 )
2007-05-17 12:21:32 +00:00
goldsimon
2740a81103
If a udp_pcb has a local_ip set, check if it is the same as the one of the netif used for sending to prevent sending from old addresses after a netif address gets changed (partly fixes bug #3168 ).
2007-05-16 18:55:25 +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
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
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
e1b6a4cb21
udp.c: remove obsolete line "static struct udp_pcb *pcb_cache = NULL;"
...
Its is static, and never used in udp.c except udp_init().
2007-03-03 17:00:44 +00:00
christiaans
d4b6471d39
Replaced tabs with space.
2006-11-17 10:51:13 +00:00
christiaans
130d39cc03
Changed index structs to mib_list_node structs to place the table index trees directly in the mib tree.
2006-09-01 07:14:50 +00:00
christiaans
7d16087789
Fixed bug #17200 , added check for broadcast destinations for PCBs bound to a unicast address.
2006-08-17 09:40:15 +00:00
christiaans
19f57bf810
Exported udp_pcbs in udp.h (for SNMP agent).
2006-08-11 14:09:48 +00:00
curtmcd
6158aa684b
udp_input() operated by removing the IP and UDP headers, putting back
...
the UDP header, then re-removing it. However, pbuf_header() can't add
back the UDP header on pbufs of type PBUF_REF, so these would all get
dropped for bad checksum. This change addresses the problem and
simplifies things by stripping each header just once.
2006-05-26 02:40:54 +00:00
curtmcd
047e3455f7
Improve formatting by fixing wrong indents and lines too long.
2006-05-26 01:36:16 +00:00
christiaans
6c8850698d
Small optimalization for udp_input().
2006-01-02 12:06:02 +00:00
christiaans
e1b215aa73
Introduced cc.h formatters and removed SO_REUSE from transport layers.
2005-11-25 12:03:38 +00:00
likewise
f9355136d8
2005-06-08 Leon Woestenberg <leon.woestenberg@gmx.net>
...
* udp.c: Fixed memory leak; when ip_route() failed, a possibly allocated q was never de-allocated. Fixed by called ip_route() before allocating q.
2005-06-08 18:35:00 +00:00
likewise
3b715f4602
3 January 2004, Leon Woestenberg <leon.woestenberg@gmx>
...
udp.c: pcb->recv() callback was called even when it was NULL.
2005-01-03 17:54:21 +00:00
likewise
fab107a9df
DECLINE message was unicast instead of broadcast
2004-11-25 11:10:53 +00:00
likewise
7524893802
Dependencies on C library memset() etc., so include <string.h>.
2004-07-04 23:43:38 +00:00
likewise
0be3598990
Style fixes.
2004-06-30 18:42:54 +00:00
jani
d36b723056
fix SO_REUSE ifdef fixes
2004-03-26 12:40:58 +00:00
kieranm
2c8aa6f6f4
Kieran Mansley - kjm25@cam.ac.uk - 23rd March 2003
...
- Changed all #ifdef SO_REUSE into #if SO_REUSE
2004-03-23 19:33:53 +00:00
likewise
6f7c8fb355
Made #ifdef's into #if's for SO_REUSE.
2004-03-23 00:19:38 +00:00
likewise
82f852abf3
Fix cyclic dependencies by careful re-ordering of #includes.
...
This is really nasty. Can we forward-declare pointers to structs?
2004-03-12 00:10:07 +00:00
likewise
10d42c6fa3
Replaced ip_addr_isbroadcast() macro by function.
...
Overrides patch #2679 , as this must be solved inside ip_addr_isbroadcast(), inspired by BSD.
2004-03-11 21:20:10 +00:00
likewise
bfdf19f56c
Make udp_disconnect() clear its remote address association.
2004-03-11 20:45:09 +00:00
likewise
175053085a
Fixed @return in udp_sendto() docs, @see in udp_send*() docs.
2004-03-11 20:04:16 +00:00