Modify changes to test TCP socket.
Fork of lwip by
Revision 11:4b3f6f8b92d2, committed 2013-08-19
- Comitter:
- bogdanm
- Date:
- Mon Aug 19 18:37:54 2013 +0300
- Parent:
- 10:42a34d63b218
- Child:
- 12:963887732b7c
- Commit message:
- Sync with official mbed library release 66
Changed in this revision
--- 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(¤t_iphdr_src)) + if (check_ip_src && current_iphdr_src.addr != IPADDR_ANY) #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */ { if ((ip_addr_isbroadcast(¤t_iphdr_src, inp)) || (ip_addr_ismulticast(¤t_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