Usado em testes tb.

Dependents:   EthernetInterface_pm

Fork of lwip by mbed official

Files at this revision

API Documentation at this revision

Comitter:
bogdanm
Date:
Mon Aug 19 18:37:54 2013 +0300
Parent:
10:42a34d63b218
Child:
12:931deec14b08
Commit message:
Sync with official mbed library release 66

Changed in this revision

core/dhcp.c Show annotated file Show diff for this revision Revisions of this file
core/ipv4/ip.c Show annotated file Show diff for this revision Revisions of this file
core/netif.c Show annotated file Show diff for this revision Revisions of this file
lwipopts.h Show annotated file Show diff for this revision Revisions of this file
--- a/core/dhcp.c	Thu May 30 17:11:58 2013 +0100
+++ b/core/dhcp.c	Mon Aug 19 18:37:54 2013 +0300
@@ -564,7 +564,7 @@
 #if LWIP_DNS
   /* DNS servers */
   n = 0;
-  while(dhcp_option_given(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n) && (n < DNS_MAX_SERVERS)) {
+  while((n < DNS_MAX_SERVERS) && dhcp_option_given(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n)) {
     ip_addr_t dns_addr;
     ip4_addr_set_u32(&dns_addr, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n)));
     dns_setserver(n, &dns_addr);
@@ -975,7 +975,7 @@
 
   ip_addr_copy(gw_addr, dhcp->offered_gw_addr);
   /* gateway address not given? */
-  if (ip_addr_isany(&gw_addr)) {
+  if (gw_addr.addr == IPADDR_ANY) {
     /* copy network address */
     ip_addr_get_network(&gw_addr, &dhcp->offered_ip_addr, &sn_mask);
     /* use first host address on network as gateway */
@@ -1678,9 +1678,13 @@
   ip_addr_set_zero(&dhcp->msg_out->yiaddr);
   ip_addr_set_zero(&dhcp->msg_out->siaddr);
   ip_addr_set_zero(&dhcp->msg_out->giaddr);
-  for (i = 0; i < DHCP_CHADDR_LEN; i++) {
-    /* copy netif hardware address, pad with zeroes */
-    dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
+  for (i = 0; i < netif->hwaddr_len; i++) {
+    /* copy netif hardware address */
+    dhcp->msg_out->chaddr[i] = netif->hwaddr[i];
+  }
+  for ( ; i < DHCP_CHADDR_LEN; i++) {
+    /* ... pad rest with zeroes */
+    dhcp->msg_out->chaddr[i] = 0;
   }
   for (i = 0; i < DHCP_SNAME_LEN; i++) {
     dhcp->msg_out->sname[i] = 0;
--- a/core/ipv4/ip.c	Thu May 30 17:11:58 2013 +0100
+++ b/core/ipv4/ip.c	Mon Aug 19 18:37:54 2013 +0300
@@ -400,7 +400,7 @@
   /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */
 #if IP_ACCEPT_LINK_LAYER_ADDRESSING
   /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */
-  if (check_ip_src && !ip_addr_isany(&current_iphdr_src))
+  if (check_ip_src && current_iphdr_src.addr != IPADDR_ANY)
 #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */
   {  if ((ip_addr_isbroadcast(&current_iphdr_src, inp)) ||
          (ip_addr_ismulticast(&current_iphdr_src))) {
--- a/core/netif.c	Thu May 30 17:11:58 2013 +0100
+++ b/core/netif.c	Mon Aug 19 18:37:54 2013 +0300
@@ -318,6 +318,12 @@
 void
 netif_set_ipaddr(struct netif *netif, ip_addr_t *ipaddr)
 {
+  /* Protect against dereferencing NULL pointers by
+     treating like ANY, as does ip_addr_set() */
+  if (!ipaddr) {
+    ipaddr = IP_ADDR_ANY;
+  }
+  
   /* TODO: Handling of obsolete pcbs */
   /* See:  http://mail.gnu.org/archive/html/lwip-users/2003-03/msg00118.html */
 #if LWIP_TCP
--- a/lwipopts.h	Thu May 30 17:11:58 2013 +0100
+++ b/lwipopts.h	Mon Aug 19 18:37:54 2013 +0300
@@ -29,14 +29,14 @@
 
 #define LWIP_RAW                    0
 
-#define TCPIP_MBOX_SIZE             6
-#define DEFAULT_TCP_RECVMBOX_SIZE   6
-#define DEFAULT_UDP_RECVMBOX_SIZE   6
-#define DEFAULT_RAW_RECVMBOX_SIZE   6
-#define DEFAULT_ACCEPTMBOX_SIZE     6
+#define TCPIP_MBOX_SIZE             8
+#define DEFAULT_TCP_RECVMBOX_SIZE   8
+#define DEFAULT_UDP_RECVMBOX_SIZE   8
+#define DEFAULT_RAW_RECVMBOX_SIZE   8
+#define DEFAULT_ACCEPTMBOX_SIZE     8
 
 #define TCPIP_THREAD_STACKSIZE      1024
-#define TCPIP_THREAD_PRIO           1
+#define TCPIP_THREAD_PRIO           (osPriorityNormal)
 
 #define DEFAULT_THREAD_STACKSIZE    512