lwip: update to version 2.2.0 devel.

This commit is contained in:
Our Air Quality 2019-04-05 12:51:39 +11:00
parent d0373af5c0
commit 3df482c85a
4 changed files with 198 additions and 25 deletions

View file

@ -1692,6 +1692,14 @@ static bool host_is_name(const char *host)
}
#if LWIP_MDNS_RESPONDER
static void mdns_srv_txt(struct mdns_service *service, void *txt_userdata)
{
err_t res = mdns_resp_add_service_txtitem(service, "path=/", 6);
LWIP_ERROR("mdns add service txt failed\n", (res == ERR_OK), return);
}
#endif
/*
* The http server uses a single thread to service all requests, one request at
* a time, to keep peak resource usage to a minimum. Keeping connections open
@ -1745,16 +1753,16 @@ static void server_task(void *pvParameters)
LOCK_TCPIP_CORE();
if (wifi_sta_mdns && station_netif) {
LOCK_TCPIP_CORE();
mdns_resp_add_netif(station_netif, hostname, 120);
mdns_resp_add_netif(station_netif, hostname);
mdns_resp_add_service(station_netif, hostname, "_http",
DNSSD_PROTO_TCP, 80, 3600, NULL, NULL);
DNSSD_PROTO_TCP, 80, mdns_srv_txt, NULL);
UNLOCK_TCPIP_CORE();
}
if (wifi_ap_mdns && softap_netif) {
LOCK_TCPIP_CORE();
mdns_resp_add_netif(softap_netif, hostname, 120);
mdns_resp_add_netif(softap_netif, hostname);
mdns_resp_add_service(softap_netif, hostname, "_http",
DNSSD_PROTO_TCP, 80, 3600, NULL, NULL);
DNSSD_PROTO_TCP, 80, mdns_srv_txt, NULL);
UNLOCK_TCPIP_CORE();
}
UNLOCK_TCPIP_CORE();

View file

@ -81,6 +81,10 @@ low_level_init(struct netif *netif)
/* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP | NETIF_FLAG_MLD6;
#if LWIP_ACD
netif->acd_list = NULL;
#endif /* LWIP_ACD */
/* Do whatever else is needed to initialize interface. */
}
@ -384,7 +388,7 @@ ethernetif_init(struct netif *netif)
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* You can instead declare your own function and call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
#if LWIP_IPV4

View file

@ -258,6 +258,8 @@ void sys_unlock_tcpip_core(void);
* Since the received pbufs are enqueued, be sure to configure
* PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
* packets even if the maximum amount of fragments is enqueued for reassembly!
* When IPv4 *and* IPv6 are enabled, this even changes to
* (PBUF_POOL_SIZE > 2 * IP_REASS_MAX_PBUFS)!
*/
#ifndef IP_REASS_MAX_PBUFS
#define IP_REASS_MAX_PBUFS 2
@ -290,17 +292,82 @@ void sys_unlock_tcpip_core(void);
/**
* DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address.
*/
#ifndef DHCP_DOES_ARP_CHECK
#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
#ifndef LWIP_DHCP_DOES_ACD_CHECK
#define LWIP_DHCP_DOES_ACD_CHECK LWIP_DHCP
#endif
#define LWIP_DHCP_BOOTP_FILE 0
/**
* LWIP_DHCP_GETS_NTP==1: Request NTP servers with discover/select. For each
* response packet, an callback is called, which has to be provided by the port:
* void dhcp_set_ntp_servers(u8_t num_ntp_servers, ip_addr_t* ntp_server_addrs);
*/
#ifndef LWIP_DHCP_GET_NTP_SRV
#define LWIP_DHCP_GET_NTP_SRV 0
#endif
/**
* The maximum of NTP servers requested
*/
#ifndef LWIP_DHCP_MAX_NTP_SERVERS
#define LWIP_DHCP_MAX_NTP_SERVERS 1
#endif
/**
* LWIP_DHCP_MAX_DNS_SERVERS > 0: Request DNS servers with discover/select.
* DNS servers received in the response are passed to DNS via @ref dns_setserver()
* (up to the maximum limit defined here).
*/
#ifndef LWIP_DHCP_MAX_DNS_SERVERS
#define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
#endif
/*
------------------------------------
---------- AUTOIP options ----------
------------------------------------
*/
/**
* LWIP_AUTOIP==1: Enable AUTOIP module.
*/
#ifndef LWIP_AUTOIP
#define LWIP_AUTOIP 0
#endif
/**
* LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on
* the same interface at the same time.
*/
#ifndef LWIP_DHCP_AUTOIP_COOP
#define LWIP_DHCP_AUTOIP_COOP 0
#endif
/**
* LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes
* that should be sent before falling back on AUTOIP (the DHCP client keeps
* running in this case). This can be set as low as 1 to get an AutoIP address
* very quickly, but you should be prepared to handle a changing IP address
* when DHCP overrides AutoIP.
*/
#ifndef LWIP_DHCP_AUTOIP_COOP_TRIES
#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
#endif
/*
------------------------------------
----------- ACD options ------------
------------------------------------
*/
/**
* LWIP_ACD==1: Enable ACD module. ACD module is needed when using AUTOIP.
*/
#ifndef LWIP_ACD
#define LWIP_ACD (LWIP_AUTOIP || LWIP_DHCP_DOES_ACD_CHECK)
#endif
/*
----------------------------------
----- SNMP MIB2 support -----
@ -514,6 +581,12 @@ void sys_unlock_tcpip_core(void);
*/
#define PBUF_LINK_ENCAPSULATION_HLEN 36
/**
* LWIP_PBUF_CUSTOM_DATA: Store private data on pbufs (e.g. timestamps)
* This extends struct pbuf so user can store custom data on every pbuf.
*/
#define LWIP_PBUF_CUSTOM_DATA void *esf_buf;
/*
------------------------------------------------
---------- Network Interfaces options ----------
@ -642,6 +715,26 @@ void sys_unlock_tcpip_core(void);
#define LWIP_SOCKET_OFFSET 3
#endif
/**
* LWIP_SOCKET_EXTERNAL_HEADERS==1: Use external headers instead of sockets.h
* and inet.h. In this case, user must provide its own headers by setting the
* values for LWIP_SOCKET_EXTERNAL_HEADER_SOCKETS_H and
* LWIP_SOCKET_EXTERNAL_HEADER_INET_H to appropriate include file names and the
* whole content of the default sockets.h and inet.h is skipped.
*/
#ifndef LWIP_SOCKET_EXTERNAL_HEADERS
#define LWIP_SOCKET_EXTERNAL_HEADERS 0
#endif
/**
* LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
* options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
* in seconds. (does not require sockets.c, and will affect tcp.c)
*/
#ifndef LWIP_TCP_KEEPALIVE
#define LWIP_TCP_KEEPALIVE 1
#endif
/**
* LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and
* SO_SNDTIMEO processing.
@ -658,15 +751,6 @@ void sys_unlock_tcpip_core(void);
#define LWIP_SO_RCVTIMEO 1
#endif
/**
* LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
* options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
* in seconds. (does not require sockets.c, and will affect tcp.c)
*/
#ifndef LWIP_TCP_KEEPALIVE
#define LWIP_TCP_KEEPALIVE 1
#endif
/**
* LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
*/
@ -674,6 +758,27 @@ void sys_unlock_tcpip_core(void);
#define LWIP_SO_RCVBUF 0
#endif
/**
* LWIP_SO_LINGER==1: Enable SO_LINGER processing.
*/
#ifndef LWIP_SO_LINGER
#define LWIP_SO_LINGER 0
#endif
/**
* If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.
*/
#ifndef RECV_BUFSIZE_DEFAULT
#define RECV_BUFSIZE_DEFAULT INT_MAX
#endif
/**
* By default, TCP socket/netconn close waits 20 seconds max to send the FIN
*/
#ifndef LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT
#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
#endif
/**
* SO_REUSE==1: Enable SO_REUSEADDR option.
*/
@ -681,6 +786,45 @@ void sys_unlock_tcpip_core(void);
#define SO_REUSE 1
#endif
/**
* SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets
* to all local matches if SO_REUSEADDR is turned on.
* WARNING: Adds a memcpy for every packet if passing to more than one pcb!
*/
#ifndef SO_REUSE_RXTOALL
#define SO_REUSE_RXTOALL 0
#endif
/**
* LWIP_FIONREAD_LINUXMODE==0 (default): ioctl/FIONREAD returns the amount of
* pending data in the network buffer. This is the way windows does it. It's
* the default for lwIP since it is smaller.
* LWIP_FIONREAD_LINUXMODE==1: ioctl/FIONREAD returns the size of the next
* pending datagram in bytes. This is the way linux does it. This code is only
* here for compatibility.
*/
#ifndef LWIP_FIONREAD_LINUXMODE
#define LWIP_FIONREAD_LINUXMODE 0
#endif
/**
* LWIP_SOCKET_SELECT==1 (default): enable select() for sockets (uses a netconn
* callback to keep track of events).
* This saves RAM (counters per socket) and code (netconn event callback), which
* should improve performance a bit).
*/
#ifndef LWIP_SOCKET_SELECT
#define LWIP_SOCKET_SELECT 1
#endif
/**
* LWIP_SOCKET_POLL==1 (default): enable poll() for sockets (including
* struct pollfd, nfds_t, and constants)
*/
#ifndef LWIP_SOCKET_POLL
#define LWIP_SOCKET_POLL 1
#endif
/*
----------------------------------------
---------- Statistics options ----------
@ -725,6 +869,21 @@ void sys_unlock_tcpip_core(void);
#define LWIP_IPV6 0
#endif
/**
* LWIP_ND6_QUEUEING==1: queue outgoing IPv6 packets while MAC address
* is being resolved.
*/
#ifndef LWIP_ND6_QUEUEING
#define LWIP_ND6_QUEUEING LWIP_IPV6
#endif
/**
* MEMP_NUM_ND6_QUEUE: Max number of IPv6 packets to queue during MAC resolution.
*/
#ifndef MEMP_NUM_ND6_QUEUE
#define MEMP_NUM_ND6_QUEUE 5
#endif
/*
---------------------------------------
---------- Hook options ---------------
@ -737,14 +896,6 @@ void sys_unlock_tcpip_core(void);
---------------------------------------
*/
/**
* LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS==1: Unsolicited announcements are
* queued and run from a timer callback.
*/
#ifndef LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS
#define LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS 1
#endif
/*
---------------------------------------
---------- Debugging options ----------
@ -918,6 +1069,11 @@ void sys_unlock_tcpip_core(void);
*/
#define AUTOIP_DEBUG LWIP_DBG_OFF
/**
* ACD_DEBUG: Enable debugging in acd.c.
*/
#define ACD_DEBUG LWIP_DBG_OFF
/**
* DNS_DEBUG: Enable debugging for DNS.
*/
@ -928,6 +1084,11 @@ void sys_unlock_tcpip_core(void);
*/
#define IP6_DEBUG LWIP_DBG_OFF
/**
* DHCP6_DEBUG: Enable debugging in dhcp6.c.
*/
#define DHCP6_DEBUG LWIP_DBG_OFF
/**
* MDNS_DEBUG: Enable debugging for multicast DNS.
*/

@ -1 +1 @@
Subproject commit d74e9ad2f7c9db996fb398cd41bf59ef463ae6fe
Subproject commit be044b574011ce56699dc400c853c369d93ffde6