Commit Graph

3926 Commits

Author SHA1 Message Date
Dirk Ziegelmeier
09636c5b92 Let lwip_stats appear in docs 2016-07-19 08:32:13 +02:00
Dirk Ziegelmeier
2f950a7dcc Some documentation updates 2016-07-18 23:00:41 +02:00
Dirk Ziegelmeier
4ea1d62d45 Update some doxygen comments 2016-07-16 17:56:29 +02:00
sg
421dab87e8 fixed bug #48476 (TCP sent callback called wrongly due to picking up old pcb->acked 2016-07-11 21:43:39 +02:00
Dirk Ziegelmeier
01e5d6d819 memp.c: No need to init variables located in BSS section 2016-07-08 11:44:28 +02:00
Ambroz Bizjak
18c332ae51 fixed bug #48402 (Bug in skipping over TCP options)
Signed-off-by: goldsimon <goldsimon@gmx.de>
2016-07-08 11:27:50 +02:00
goldsimon
9a355502e1 snmp: fix compiling traps :-( 2016-07-08 10:56:24 +02:00
goldsimon
52da49cd81 snmp: changed name (snmp_length_outbound_varbind -> snmp_varbind_length) 2016-07-08 10:24:06 +02:00
goldsimon
6293a835e9 fixed compiling: forgot to move one line :-( 2016-07-08 10:16:46 +02:00
goldsimon
2df636fe77 memp: fixed STATS initialization 2016-07-08 10:06:36 +02:00
goldsimon
e302b1bbd2 httpd: fixed using pools, fixed missing default value of LWIP_HTTPD_SSI_RAW, fixed typo 2016-07-08 10:06:35 +02:00
goldsimon
959042aa88 memp: fixed compiling various combinations of memp stats (display etc.) 2016-07-08 08:21:57 +02:00
Dirk Ziegelmeier
a463119597 Revert "MEMP memory can now be declared static since LWIP_DECLARE_MEMORY_ALIGNED was introduced today"
This reverts commit e9b0003085.

It should still be publically accessible to be able to add prototype declarations anyway.
2016-07-08 08:18:37 +02:00
Dirk Ziegelmeier
e0918d706e Re-add a few MEMP stats accessors - users may want to access/display MEMP stats 2016-07-08 08:17:46 +02:00
Dirk Ziegelmeier
b939e9536d Minor: move some macros from memp.h to memp_priv.h 2016-07-07 22:05:30 +02:00
Dirk Ziegelmeier
e9b0003085 MEMP memory can now be declared static since LWIP_DECLARE_MEMORY_ALIGNED was introduced today 2016-07-07 22:01:41 +02:00
Dirk Ziegelmeier
087ecab891 Add some comments to places where we cast through a void* to get rid of alignment warnings 2016-07-07 21:56:43 +02:00
Dirk Ziegelmeier
212eacd9d6 Fix bug #48356: private memp pools have no statistic counters
Implement struct stats_mem instance for each pool, let lwip_stats.mem[] point to these instances
2016-07-07 21:55:51 +02:00
Marco Veeneman
dcd52510ce Reduce code duplication in SNMP agent traps implementation.
See patch #9038: SNMP Traps with varbinds, file #37748 by Marco Veeneman
2016-07-07 21:00:07 +02:00
Dirk Ziegelmeier
98e92f6550 Move alignment related #defines from mem.h to a better place: arch.h.
mem.h should only describe heap API, not architecture/port specific alignment helper macros.
2016-07-07 13:51:34 +02:00
Dirk Ziegelmeier
b91e47b518 Implement portable and overridable allocation of memory buffers
Fixes bug #48300 (Private mempools allocate foreign memory), bug #48354 (Portable alignment defines/include required for static allocation) and bug #47092 (Tag memory buffers like memp_memory_xxx and ram_heap with a macro so that attributes can be attached to their definitions)

Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2016-07-07 13:35:13 +02:00
goldsimon
811b237bd7 dns: fixed declaration and usage of DNS_LOOKUP_LOCAL_EXTERN() 2016-07-07 13:02:47 +02:00
goldsimon
7e3de89646 minor: coding style 2016-07-07 13:02:18 +02:00
Dirk Ziegelmeier
4b136d631a Fix (correct) clang warning about increased alignment requirements in netifapi.c and pppapi.c 2016-07-05 08:59:25 +02:00
Dirk Ziegelmeier
5a1b9bf808 SNMP traps quick fix: Do not return err_t as u16_t in snmp_varbind_len. This need further cleanup. 2016-07-05 08:48:59 +02:00
goldsimon
14ca418ac0 minor: coding style fixes 2016-07-05 07:36:51 +02:00
Dirk Ziegelmeier
cb5f7859fd Apply patch #9038: SNMP Traps with varbinds
Applied with modifications. Original patch from Marco Veeneman.
2016-07-04 21:11:20 +02:00
goldsimon
2fdea8b79b fixed bug #48398 (dns: entries reused during found-callback could be aborted if ttl==0) 2016-07-04 13:55:20 +02:00
Michael Brown
2e26fc9224 tcp: Avoid 3-second delay for a half-open connection
If lwIP encounters a half-open connection (e.g. due to a restarted
application reusing the same port numbers) it will correctly send a
RST but will not resend the SYN until one retransmission timeout later
(approximately three seconds).  This can increase the time taken by
lpxelinux.0 to fetch its configuration file from a few milliseconds to
around 30 seconds.

Fix by immediately retransmitting the SYN whenever a half-open
connection is detected.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2016-07-04 12:25:22 +02:00
goldsimon
fd83f4fb22 Fix bug #48359 (dns entries are not set to state DONE) 2016-07-04 10:22:20 +02:00
Dirk Ziegelmeier
afa2a96085 Apply patch from Ambroz Bizjak:
I think that "#define SZT_F PRIuPTR" has a much better chance
of being right, making the assumption that uintptr_t is the same as
size_t.
Dirk: I think Ambroz is right.
2016-07-03 09:30:47 +02:00
Sylvain Rochet
9d0546839c init: fix NO_SYS targets build
lwip/src/core/init.c:256:32: error: "LWIP_COMPAT_MUTEX" is not defined [-Werror=undef]
 #if LWIP_TCPIP_CORE_LOCKING && LWIP_COMPAT_MUTEX && !defined(LWIP_COMPAT_MUTEX_ALLOWED)
                                ^
Setting LWIP_TCPIP_CORE_LOCKING is meaningless for NO_SYS targets,
therefore checking if LWIP_COMPAT_MUTEX is set does not make sense.

Introduced by 42dfa71f97: Make LWIP_TCPIP_CORE_LOCKING==1 the default
(and warn if LWIP_COMPAT_MUTEX==1 in that case as mutexes are required
to prevent priority inversion on tcpip_thread operations)
2016-07-02 21:53:24 +02:00
Sylvain Rochet
28aaf2caf4 PPP: introduce ppp_set_neg_pcomp, ppp_set_neg_accomp, ppp_set_neg_asyncmap, ppp_set_asyncmap
We are now able to add as many macros as necessary to change the PPP
configuration. Those are various usually used PPP options.
2016-07-02 21:42:51 +02:00
Sylvain Rochet
40e9eae791 PPP: improve various comments on options 2016-07-02 21:24:26 +02:00
Sylvain Rochet
f0dbba6406 PPP, PPPoE, PPPoL2TP: enforce disabling of silent and passive modes
PPP is just the upper protocol for PPPoE and PPPoL2TP, meaning it is only
started once "E" or L2TP is established. Therefore waiting indefinitely
for LCP packets on the PPP side does not make sense at all, if the lower
level protocol is UP, PPP *MUST* comes up as well or we should restart from
the beginning.
2016-07-02 21:10:24 +02:00
Sylvain Rochet
a99fe1fa32 PPP, LCP: restart flag is not used, build out
We don't support restart mode. Build out unused restart LCP flag.
2016-07-02 21:05:01 +02:00
Sylvain Rochet
e7069d6e82 PPP: introduce ppp_set_passive and ppp_set_silent
There is two passive modes for PPPoS, passive more, for which we will
try to connect and then listen silently, and silent mode, for which we
will listen silently from the beginning.

Introduce ppp_set_passive and ppp_set_silent so the mode can be chosen
before connecting/listening.
2016-07-02 21:03:48 +02:00
Sylvain Rochet
b97c4d96e2 PPP, SERVER: fix build if PAP_SUPPORT is not enabled
If PAP_SUPPORT is not enabled, we can't consider a failed PAP auth as
a null auth.
2016-07-02 20:02:47 +02:00
Sylvain Rochet
f21aede031 PPP: don't build ppp_set_auth if no authenticator are enabled
For our few users which might disable all authenticators to save some
flash, ensure that everything using authentication is build out.
2016-07-02 19:43:08 +02:00
Sylvain Rochet
c1c3d0e1ba PPP: fix build when MSCHAP authentication feature is disabled at compile time
All modules using PolarSSL embedded library are now using pppcrypt.h.
This header use to be only necessary for MSCHAP and was not built if
MSCHAP wasn't enabled, we unfortunately left the build condition.

Introduced by 3417a02b25: PPP: add a function map for hashes and ciphers
to prepare for mbed TLS support.
2016-07-02 19:36:34 +02:00
Sylvain Rochet
50b5b4c4dd PPP, PPPAPI: remove useless pppapi_set_auth function
Setting PPP authentication most only be done when the PPP PCB is in the
dead phase (i.e. disconnected). This is safe to access the PPP PCB
members while the session is down, therefore providing a thread-safe
function of it is meaningless and it might even be misleading.

All our new ppp_set_* functions do not have their equivalent
pppapi_set_* functions and they are not going to have them. At least
we make ppp_set_auth consistent with all others ppp_set_*, so that it
doesn't look like special.
2016-07-02 19:09:50 +02:00
Sylvain Rochet
b9b36084a5 PPP: introduce ppp_set_mppe
Helper function to setup MPPE (Microsoft Point to Point Encryption) for
a PPP link. Allows enabling/disabled MPPE itself, enabling/disabling
stateless support, and whether we are willing to negotiate 40-bit
and/or 128-bit encryptions.
2016-07-02 18:53:59 +02:00
Sylvain Rochet
f226e107a6 PPP: updated pppd followup 2016-07-02 17:13:10 +02:00
Sylvain Rochet
d4f824398c PPP, from PPPD upstream: fix sign-extension when displaying bytes in octal
print_string() displays characters as \\%.03o but without first
casting it from "char" to "unsigned char" so it gets sign-extended
to an int. This causes output like \37777777630 instead of \230.

(Based from pppd commit 5e8c3cb256a7e86e3572a82a75d51c6850efdbdc)
2016-07-02 17:12:38 +02:00
Sylvain Rochet
b438a0d6fd PPP, PPPoE: fix potential out-of-bound if AC cookie is too long
Found by coverity.

Introduced by c0e7d54e37 "Removed 2 mem_mallocs: error string can be a
global variable, include memory for sc_ac_cookie in struct pppoe_softc;
commented out unused code (sc_service_name/sc_concentrator_name)".

Fixes it by bailing out if received AC cookie is to big for us, this
can't really happen anyway.
2016-07-02 16:20:57 +02:00
Sylvain Rochet
7c368b7f36 PPP, PPPoS: use offsetof in place of the traditional NULL hack
There is absolutely no reason I did it this way in the first
place, maybe I feared that not all compilers have a proper
implementation of offsetof() ? It sounds stupid.
2016-07-02 15:11:02 +02:00
goldsimon
06782c699c httpd: fixed persistent connections for files not containing HTTP header 2016-07-01 12:43:03 +02:00
sg
42dfa71f97 Make LWIP_TCPIP_CORE_LOCKING==1 the default (and warn if LWIP_COMPAT_MUTEX==1 in that case as mutexes are required to prevent priority inversion on tcpip_thread operations) 2016-06-30 22:37:37 +02:00
Dirk Ziegelmeier
d3e55185c6 Apply patch #9034: Use stdint.h and inttypes.h in lwip/arch.h
Ports now only need to define datatypes and format strings on compilers that do not provide these two headers. Known good: GCC, IAR. Known bad: MSVC 2010.
2016-06-30 20:15:22 +02:00
goldsimon
e6bc591a1e fixed bug #48170 (Vulnerable to TCP RST spoofing) (original patch by Fabian Koch) 2016-06-30 08:50:42 +02:00