2201 Commits

Author SHA1 Message Date
goldsimon
d386374449 httpd: add support for https 2017-03-22 22:42:09 +01:00
goldsimon
2f3b00efb4 httpd: convert to altcp API (a simple search & replace...) 2017-03-22 22:33:50 +01:00
goldsimon
967d4fc3b0 LWIP_ALTCP: default to off for maximum backwards compatibility... 2017-03-22 22:33:23 +01:00
goldsimon
c18393b52b altcp: added 'addrinfo' and 'tcp_state' functions 2017-03-22 22:29:11 +01:00
goldsimon
a46664eab2 Add opts header for altcp_tls 2017-03-22 21:40:32 +01:00
goldsimon
82d9e45f74 Add protoypes for TLS connections for the new altcp API + an implementation doing HTTPS (server mode for now) with mbedTLS (ATTENTION: this might not be coded secure enough for productive use yet!) 2017-03-22 21:33:05 +01:00
goldsimon
e8e247f22e Add "application layered TCP connection API (altcp)"
altcp is an abstraction layer that prevents applications linking against the
tcp.h functions but provides the same functionality. It is used to e.g. add
SSL/TLS or proxy-connect support to an application written for the tcp callback
API without that application knowing the protocol details.
Applications written against the altcp API are directly linked against the
tcp callback API for LWIP_ALTCP==0, but then cannot use layered protocols.
2017-03-22 21:31:14 +01:00
goldsimon
d58457de43 tcp: move some higher level definitions from tcp.h to new file tcpbase.h (in preparation for altcp API) 2017-03-22 21:15:46 +01:00
goldsimon
ee5021deb1 tftp_server: fix bogus comment lines in file header 2017-03-22 21:14:36 +01:00
goldsimon
ec24a2a4e8 Revert "httpd: regenerate example fs (fsdata.c) with current makefsdata"
This reverts commit 66fb52ff5cdfafecef9c0cc7b32bccee8b0f3e7f.
2017-03-21 12:57:56 +01:00
goldsimon
66fb52ff5c httpd: regenerate example fs (fsdata.c) with current makefsdata 2017-03-20 22:19:54 +01:00
goldsimon
3fd8440ab9 memp.h: added missing include 2017-03-17 08:55:10 +01:00
goldsimon
fc47f846ed Fix and improve sockets unit test and unit test sys_arch (with a little help of tcpip.c) 2017-03-16 22:49:38 +01:00
goldsimon
8313c4d870 tried to add basic socket unit tests (nonsense only for now); made LOCK_TCPIP_CORE()/UNLOCK_TCPIP_CORE() overridable for that 2017-03-16 21:52:30 +01:00
goldsimon
2d8e17aa89 sockets: guard declaration of 'lwip_select()' with LWIP_SOCKET_SELECT==1 2017-03-16 09:18:53 +01:00
goldsimon
e71dbec587 bridgeif: fix compiling with NO_SYS==1 by changing default value of BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT 2017-03-16 09:18:28 +01:00
Dirk Ziegelmeier
6328da87aa Add bridge interface to documentation 2017-03-15 19:58:32 +01:00
goldsimon
51a07661cc Added a simple multi-netif 802.1d bridge implementation to show that a multi-port netif works (see task #14369) 2017-03-15 12:31:12 +01:00
goldsimon
754e49643f set version to 2.0.3.dev now that 2.0.2 is released 2017-03-14 09:06:06 +01:00
goldsimon
2c77560870 My first try at 'recvmsg()', TCP only, for now... 2017-03-09 21:49:55 +01:00
Sylvain Rochet
e16d10ade6 PPP: remove unused and confusing return values other than ERR_OK for ppp_connect and ppp_listen
User should not use ppp_connect or ppp_listen return value to retry
later, it must wait for the callback to be called. This is primarily
done this way to have a consistent behavior with and without the
holdoff feature.

Remove returned error value from PPP link level API connect and listen
callbacks because we are not using them anymore, then make ppp_connect
or ppp_listen to always return ERR_OK, thus we are not breaking the PPP
user API.

We don't need the return code here, all PPP link level drivers can't
fail at all (e.g. PPPoS) or retry if necessary (PPPoE and PPPoL2TP).
2017-03-08 22:17:40 +01:00
goldsimon
aff1935e40 arch.h: include <limits.h> if it exists (at least INT_MAX is used) 2017-03-08 20:30:48 +01:00
goldsimon
c9efb7a72c added missing define for MSG_NOSIGNAL 2017-03-08 19:57:10 +01:00
goldsimon
f0bc2fa968 netconn_tcp_recvd should take u32_t, not u16_t (as used in msg) 2017-03-06 22:20:41 +01:00
goldsimon
04bff63f49 sockets: netconn event callback is only used for select (nonblocking sockets are now implemented at netconn layer) -> add option LWIP_SOCKET_SELECT to reflect this 2017-03-06 22:06:53 +01:00
goldsimon
49414826af pbuf: added new function pbuf_free_header() to gradually hide bytes and free pbufs from the front of a pbuf chain 2017-03-06 21:53:48 +01:00
goldsimon
1945582c10 netconn: added receive flag NETCONN_NOAUTORCVD and netconn_tcp_recvd() to delay rx window updates (e.g. when receiving more data as performance improvement) 2017-03-06 21:33:35 +01:00
Dirk Ziegelmeier
02be2f8f42 Move snmpv3_dummy.* from main lwIP rep to contrib 2017-03-03 13:42:37 +01:00
Dirk Ziegelmeier
461f1fe1a9 More SNMPv3 cleanups: Create own header snmpv3_dummy.h and move functions in there
Decouple snmp_netconn.c from snmpv3_dummy.c (snmpv3_enginetime_timer)
Make SNMP API more type-safe using enums
2017-03-03 13:01:04 +01:00
Dirk Ziegelmeier
927990d94e One enum icmp_te_type member is not in doxygen docs - fix it. 2017-03-03 09:56:27 +01:00
Joel Cunningham
2980f7cc58 Vectorize netconn_write for TCP
This commit adds support to the netconn write APIs to take an input of
vectors instead of a single data pointer

This allows vectors sent on a TCP connection via sendmsg to be treated
atomically.  The set of vectors is segmented into as much data as can
fit into the send buffer and then the TCP output function is called

Previously, each vector was passed to netconn_write_partly and tcp_write
segmented it into its own packet, which was then it was sent via
tcp_output (if not Nagleing)

This commit adds vector support to lwip_netconn_do_writemore() which
is the meat of the TCP write functionality from netconn/sockets layer.
A new netconn API netconn_write_vectors_partly() takes a set of vectors
as input and hooks up to do_writemore()

This commit also defines IOV_MAX because we are limited to only
supporting 65535 vectors due to choice of u16_t for the vector count
2017-03-02 16:52:14 -06:00
goldsimon
5c3bb19923 added nonblocking accept/recv to netconn API (task #14396) (also added netconn_recv_udp_raw_netbuf_flags() and netconn_recv_tcp_pbuf_flags() to pass socket-like flags to nonblock for one call only) 2017-03-02 20:38:11 +01:00
Dirk Ziegelmeier
593b211d1b A few more SNMPv3 cleanups 2017-03-02 11:20:02 +01:00
Dirk Ziegelmeier
3fa3bf0570 Undo accidental activation of SNMPv3 code in my last commit 2017-03-02 07:50:34 +01:00
Dirk Ziegelmeier
0065cd915f Several Win32 compile fixes in SNMP code 2017-03-02 07:49:42 +01:00
Dirk Ziegelmeier
83de16678c SNMP: TABs -> spaces 2017-03-02 07:33:18 +01:00
Dirk Ziegelmeier
4ef21e2597 Fix compile when SNMPv3 is disabled 2017-03-01 20:39:39 +01:00
Dirk Ziegelmeier
78cdbff1b3 Several compile fixes for Marco's patch 2017-03-01 20:39:39 +01:00
Marco
4b97f2bb8e Implemented usm mib. 2017-03-01 20:39:39 +01:00
Marco
46df850cb9 Implemented framework mib. 2017-03-01 20:39:39 +01:00
Marco
f092d09121 Added handling invalid packets in SNMPv3. 2017-03-01 20:39:39 +01:00
Marco
78806001e5 Made accepted SNMP version runtime configurable.
This feature can be disabled by setting LWIP_SNMP_CONFIGURE_VERSIONS to 0.
2017-03-01 20:39:39 +01:00
goldsimon
0d585d55d3 Added LWIP_SINGLE_NETIF for small targets with only one netif (see task #13515, there might be more optimizations to come with this option) 2017-03-01 16:10:50 +01:00
Dirk Ziegelmeier
ec4f00179d Fix bug #50242: dhcp_release does not stop autoip (in coop mode)
Create new function dhcp_release_and_stop() that stops DHCP statemachine and sends release message if needed. Also stops AUTOIP if in coop mode.
Old dhcp_release() and dhcp_stop() function internally call dhcp_release_and_stop() now.
2017-03-01 13:18:37 +01:00
goldsimon
1741edf159 make tcp apps depend on LWIP_CALLBACK_API, too 2017-02-28 12:19:16 +01:00
goldsimon
f85eed0ab3 tcp: fixed bug #50418: LWIP_EVENT_API: fix invalid calbacks for SYN_RCVD pcb 2017-02-28 12:13:26 +01:00
David van Moolenbroek
d3fc398580 arp/ndp: allow overriding the decision to copy pbufs
lwIP aims to support zero-copy TX, and thus, must internally handle
all cases that pbufs are referenced rather than copied upon low-level
output.  However, in the current situation, the arp/ndp packet queuing
routines conservatively copy entire packets, even when unnecessary in
cases where lwIP is used in a zero-copy compliant manner.  This patch
moves the decision whether to copy into a centralized macro, allowing
zero-copy compliant applications to override the macro to avoid the
unnecessary copies.  The macro defaults to the safe behavior, though.
2017-02-28 09:37:21 +01:00
Joel Cunningham
36fa1a97d4 lwip_netconn_do_writemore() cleanups
This commit makes a couple of cleanups discussed in patch #8882:
  1) msg.w.offset should not be set to 0 in the error case.  It is
     only valid when err == ERR_OK
  2) Remove out-of-date comment which indicated the entire write had
     completed (not true for non-blocking write)

This also updates the documentation on offset to include that offset
is only valid when err == ERR_OK
2017-02-24 15:42:07 -06:00
goldsimon
0da9cf70ea Added pbuf_get_contiguous() to get data in one piece (either zero copy from pbuf or memcpied into a supplied buffer) 2017-02-24 21:36:49 +01:00
Dirk Ziegelmeier
e94e2da3ec opt.h: Set LWIP_PBUF_REF_T back to u8_t, s8_t has no advantage any more after reverting last commit 2017-02-23 18:10:00 +01:00