Sylvain Rochet
7fce9346dc
PPP, improved IPv6 address setting
...
Set IPv6 link local invalid before clearing it. Don't wait sif6up() to set
the link local valid, netif_ip6_addr_set_state() is only an accessor function
so it does not start any discovery whatsoever.
2015-03-08 12:47:09 +01:00
Sylvain Rochet
b23a6172ed
PPP, PPPoS, added necessary comment about mutex
2015-03-08 12:05:13 +01:00
Sylvain Rochet
ea58a8103c
PPP, PPPoS, fixed thread safety of pppos_input()
...
PPPoS was actually not thread safe, pppos_input() can be called from
lwIP user port at any time, whatever the PPP state is. It might even be
called during pppos_connect() and pppos_listen(), this is quite unlikely
the port do that but nothing prevent the user to since we document
pppos_input() as being thread safe.
Added a mutex if PPP_INPROC_MULTITHREADED is set and ensure pppos_input()
is safe in regard to other pppos_* functions.
2015-03-08 02:48:52 +01:00
Sylvain Rochet
7857c22277
PPP, Documentation, updated
2015-03-08 01:09:44 +01:00
Sylvain Rochet
b3c7e948be
PPP, removed now useless struct ppp_addrs from ppp_pcb
...
Saved a few bytes of useless copy.
2015-03-08 00:44:47 +01:00
Sylvain Rochet
c966a538fb
PPP, improved IPv6 address setting
...
Now setting IPv6 addresses in sif6addr() instead of sif6up(),
removed the useless copy of addresses.
2015-03-08 00:40:34 +01:00
Sylvain Rochet
3027a7d7e2
PPP, using DNS API for DNS servers
...
Now setting DNS addresses in sdns() using dns_setserver() instead
of keeping a local copy. This is probably the wanted PPP behavior,
we will see if users want this conditional.
2015-03-08 00:11:52 +01:00
Sylvain Rochet
dd22176935
PPP, improved IPv4 address setting
...
Now setting IPv4 addresses in sifaddr() instead of sifup(),
removed the useless copy of addresses.
2015-03-07 23:53:21 +01:00
Sylvain Rochet
dbf9d0f094
DNS, warning fix, dns_init() -> dns_init(void)
...
lwip/src/core/dns.c: In function ‘dns_init’:
lwip/src/core/dns.c:336:1: warning: old-style function definition [-Wold-style-definition]
dns_init()
2015-03-07 23:28:18 +01:00
Sylvain Rochet
b3218d45f3
PPP, make DNS a little more optional if LWIP_DNS is unset
2015-03-07 23:28:14 +01:00
Sylvain Rochet
3ca5184998
PPP, CORE, separated administrative status from link status of PPP netif
...
This was confusing, recent lwIP changes fixed the meaning as well as
how it is used everywhere, making the administrative status a user-only
controlled flag. Now that it's clear, updated PPP to follow lwIP
core change.
Using netif_set_link_{up,down} instead of netif_set_{up,down} when PPP
reaches/leaves running state. PPP interface is now set to administratively
UP when created with link state down.
2015-03-07 22:24:27 +01:00
sg
007ab69777
Fixed default LWIP_SUPPORT_CUSTOM_PBUF setting for IPv6/frag
2015-03-06 22:09:33 +01:00
sg
12d374d4b7
Added function documentation, fixed coding style
2015-03-06 21:38:57 +01:00
sg
0ddd7de1ba
patch #8359 (Provide utility function to add an IPv6 address to an interface)
2015-03-06 21:30:59 +01:00
sg
f385193a89
Patch #8207 (Don't Use ND6 Prefix Flags Field When LWIP_IPV6_AUTOCONFIG Is Deasserted)
2015-03-06 21:03:21 +01:00
Philip Gladstone
ff078920bc
Patch #8360 (Speed up the acquisition of SLAAC addresses) - adapted to bug #43784
2015-03-06 20:58:30 +01:00
sg
b62f443be5
Fixed comment for NETIF_FLAG_UP after fixing bug #37068
2015-03-06 20:49:47 +01: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
goldsimon
df16a7c4f3
Fixed compiler warnings in unit tests
2015-03-06 07:39:06 +01:00
goldsimon
896535fe87
Fixed dhcp unit tests after changing netif up/down handling
2015-03-06 07:38:51 +01:00
Sylvain Rochet
89434f6a2f
PPP, CORE, call netif_set_up() after if4_up and if6_up flags are set, to prevent dropping packets
...
lwIP core might send packet when calling netif_set_up(), don't drop packets
anymore in ppp_netif_output_ip4() and ppp_netif_output_ip6() because flags
are cleared.
2015-03-05 22:00:11 +01:00
sg
4e520cdd30
fixed bug #37068 (netif up/down handling is unclear): correclty separated administrative status of a netif (up/down) from 'valid address' status ATTENTION: netif_set_up() now always has to be called, even when dhcp/autoip is used!
2015-03-05 20:57:43 +01:00
sg
72dcdb7655
fixed bug #43784 (a host should send at least one Router Solicitation)
2015-03-04 21:21:49 +01:00
sg
db5510b866
init.c: raise an error if LWIP_PPP_API==1 but PPP_SUPPORT==0
2015-03-04 21:10:29 +01:00
sg
61e0efa0c7
fixed bug #41094 (Byte-order bug in IPv6 fragmentation header test)
2015-03-04 21:02:52 +01:00
sg
12514c09b2
Fixed bug #39956 (netif_create_ip6_linklocal_address out of bounds access of netif::hwaddr)
2015-03-04 20:58:37 +01:00
sg
90a0590de1
patch by Zach Smith: fixed bug #38153 (nd6_input() byte order issues)
2015-03-04 20:49:02 +01:00
Sylvain Rochet
b09c891290
PPP, PPPoE, removed devname variable from pppoe_disc_input()
...
Only used for debug, reworked in a more clever way. It was actually broken
by design: setting an interface integer into a string without formatting
was quite a dumb idea.
2015-03-02 00:45:19 +01:00
Sylvain Rochet
d28bb04a9c
PPP, PPPoE, improve reliability if we receive a PADT
...
Don't disconnect when we receive a PADT, we let the LCP Echo/Reply find
the fact that PPP session is down. Asking the PPP stack to end the
session require strict checking about the PPP phase to prevent endless
disconnection loops.
Luckily it previously does nothing because PADT frames are rarely sent
with a hunique tag and we only set the sc pointer if we receive a
hunique tag.
2015-03-02 00:16:25 +01:00
Sylvain Rochet
9de1c71ff7
PPP, PPPoE, removed global static buffer only used for debug
...
pppoe_error_tmp[] was only used in one function and only for debug purposes,
moved to stack.
2015-03-02 00:05:55 +01:00
Sylvain Rochet
3ce6dd166c
PPP, L2TP, added link-level IPv6 support
2015-03-01 22:04:24 +01:00
Sylvain Rochet
684bef066f
PPP, L2TP, merged common output code
...
New function: pppol2tp_udp_send(), common output code.
2015-03-01 21:22:21 +01:00
Sylvain Rochet
52f2221be9
PPP, L2TP, check source ip address and port
...
Improve L2TP defensiveness by checking source ip address and port
of input packets.
2015-03-01 21:15:15 +01:00
Sylvain Rochet
1bee131d52
PPP, L2TP, using LNS chosen destination port
...
L2TP LNS might chose its own local port, we actually stored
the port the LNS wanted to use but we never used it.
2015-03-01 21:14:52 +01:00
Sylvain Rochet
2731976a95
PPP, renamed ppp_open to ppp_connect
...
Makes it clear we are initiating the PPP session with ppp_connect
(i.e. acting as a PPP client) so there is no confusion possible
between ppp_connect and ppp_listen.
2015-03-01 10:53:08 +01:00
Sylvain Rochet
f7d5e81130
PPP, SERVER, MSCHAP: move output message from chap_server.message struct to stack
...
chap_server.message is only used in one function, moved to stack.
2015-03-01 00:34:00 +01:00
Sylvain Rochet
371bc91d73
PPP, SERVER: added PPPoS server support
...
New function: ppp_listen(), listen for an incoming PPP connection.
2015-02-28 22:41:18 +01:00
Sylvain Rochet
89771de6d0
PPP, remove VJ callback from link_callbacks if VJ support is not enabled
2015-02-28 21:39:32 +01:00
Sylvain Rochet
71b213df63
PPP, EAP: using MAXNAMELEN define instead of hardcoded 256 size for rhostname
2015-02-28 20:37:41 +01:00
Sylvain Rochet
7f3913ff58
PPP, EAP: removed malloc() and free()
...
Replaced pcb->eap.es_{client,server}.ea_peer pointer to a char table,
replaced strdup() with MEMCPY, etc.
2015-02-28 20:29:40 +01:00
Sylvain Rochet
d884034c9f
PPP, replaced drand48() with magic_pow()
2015-02-28 19:50:25 +01:00
Sylvain Rochet
bec199c4a2
PPP, MAGIC: new function: magic_pow
...
magic_pow() returns a new random number between 0 and (2^pow)-1 included.
2015-02-28 19:36:03 +01:00
Sylvain Rochet
3686110ed2
PPP, SERVER: statically define our name for authentication purposes
...
We don't need that in RAM nor a pointer to a string, a static
define is fine for embedded devices, saved ~257 bytes of RAM.
2015-02-28 18:28:07 +01:00
Sylvain Rochet
708e421ec3
PPP, CORE: code cleaning
2015-02-28 18:08:37 +01:00
Sylvain Rochet
5ae7ee5276
PPP, SERVER: added CHAP authentication support
2015-02-28 17:40:07 +01:00
Sylvain Rochet
65493b421a
PPP, SERVER, CHAP: fixed wrong pointer used on chap_timeout()
2015-02-28 15:36:35 +01:00
Sylvain Rochet
301511a840
PPP, SERVER: added PAP authentication support
...
New ppp auth function: auth_check_passwd() which check the user name and
passwd against configuration.
PAP: check remote user and password
2015-02-28 14:40:09 +01:00
Sylvain Rochet
e86a0a4325
PPP, CORE, SERVER, set auth configuration before auth
...
Set LCP wanted options accordingly to the user auth configuration
if peer is required to authenticate itself.
2015-02-28 13:08:20 +01:00
Sylvain Rochet
8d05279599
PPP, CORE, moved auth configuration from auth_reset() to lcp_resetci()
...
Prepare for PPP_SERVER support, we need to move auth configuration before
lcp_allowoptions is copied into lcp_gotoptions. Restore unused
auth_reset() function using pppd original source code.
2015-02-28 12:59:29 +01:00
Sylvain Rochet
587e0e3e0c
PPP, CORE, beautified ppp_set_auth()
...
Beautified, added PPPAUTHTYPE_MSCHAP_V2 choice support.
2015-02-27 23:55:18 +01:00