Kiyoshi Hayakawa / lwip_t

Fork of lwip by mbed official

Files at this revision

API Documentation at this revision

Comitter:
khayakawa
Date:
Sat Sep 28 16:11:28 2013 +0000
Parent:
11:91a59b58ce8d
Commit message:
KEIS

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
core/pbuf.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
netif/ppp/pap.c Show annotated file Show diff for this revision Revisions of this file
diff -r 91a59b58ce8d -r 6f5eba4163ea core/dhcp.c
--- a/core/dhcp.c	Sat Sep 28 15:58:36 2013 +0000
+++ b/core/dhcp.c	Sat Sep 28 16:11:28 2013 +0000
@@ -115,7 +115,7 @@
 #define DHCP_OPTION_IDX_T2          5
 #define DHCP_OPTION_IDX_SUBNET_MASK 6
 #define DHCP_OPTION_IDX_ROUTER      7
-#define DHCP_OPTION_IDX_DNS_SERVER    8
+#define DHCP_OPTION_IDX_DNS_SERVER	8
 #define DHCP_OPTION_IDX_MAX         (DHCP_OPTION_IDX_DNS_SERVER + DNS_MAX_SERVERS)
 
 /** Holds the decoded option values, only valid while in dhcp_recv.
@@ -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;
diff -r 91a59b58ce8d -r 6f5eba4163ea core/ipv4/ip.c
--- a/core/ipv4/ip.c	Sat Sep 28 15:58:36 2013 +0000
+++ b/core/ipv4/ip.c	Sat Sep 28 16:11:28 2013 +0000
@@ -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))) {
diff -r 91a59b58ce8d -r 6f5eba4163ea core/netif.c
--- a/core/netif.c	Sat Sep 28 15:58:36 2013 +0000
+++ b/core/netif.c	Sat Sep 28 16:11:28 2013 +0000
@@ -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
diff -r 91a59b58ce8d -r 6f5eba4163ea core/pbuf.c
--- a/core/pbuf.c	Sat Sep 28 15:58:36 2013 +0000
+++ b/core/pbuf.c	Sat Sep 28 16:11:28 2013 +0000
@@ -998,6 +998,8 @@
   }
   err = pbuf_copy(q, p);
   LWIP_ASSERT("pbuf_copy failed", err == ERR_OK);
+  /* next line references err variable even if LWIP_ASSERT is ignored. */
+  (void)err;
   pbuf_free(p);
   return q;
 }
diff -r 91a59b58ce8d -r 6f5eba4163ea lwipopts.h
--- a/lwipopts.h	Sat Sep 28 15:58:36 2013 +0000
+++ b/lwipopts.h	Sat Sep 28 16:11:28 2013 +0000
@@ -27,16 +27,18 @@
 #if NO_SYS == 0
 #include "cmsis_os.h"
 
+#define SYS_LIGHTWEIGHT_PROT        1
+
 #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
 
@@ -99,6 +101,7 @@
 #define MEMP_OVERFLOW_CHECK         1
 #define MEMP_SANITY_CHECK           1
 #else
+#define LWIP_NOASSERT               1
 #define LWIP_STATS                  0
 #endif
 
diff -r 91a59b58ce8d -r 6f5eba4163ea netif/ppp/pap.c
--- a/netif/ppp/pap.c	Sat Sep 28 15:58:36 2013 +0000
+++ b/netif/ppp/pap.c	Sat Sep 28 16:11:28 2013 +0000
@@ -218,7 +218,7 @@
         u->us_unit, u->us_timeouttime, u->us_clientstate));
 
   if (u->us_clientstate != UPAPCS_AUTHREQ) {
-    UPAPDEBUG(LOG_INFO, ("upap_timeout: not in AUTHREQ state!\n"));
+	UPAPDEBUG(LOG_INFO, ("upap_timeout: not in AUTHREQ state!\n"));
     return;
   }