lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] netif_add and addr, gw, mask as NULL parameters


From: Mason
Subject: [lwip-users] netif_add and addr, gw, mask as NULL parameters
Date: Wed, 03 Aug 2011 18:18:54 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14

Hello everyone,

(I'm working with lwip 1.4.0.)

I have a question regarding netif_add.

netif_add( ) has the following prototype.

struct netif *netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t 
*netmask,
  ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)

My network interface is supposed to be configured by DHCP,
so I have no appropriate value for addr, gw, mask.

I'd like to provide these 3 parameters as NULL, and have netif_add
do whatever is appropriate for the 3 corresponding fields (probably
set them to all-bits 0).

netif_add calls
  netif_set_addr

netif_set_addr calls
  netif_set_ipaddr,
  netif_set_netmask,
  netif_set_gw.

netif_set_gw can handle NULL thanks to ip_addr_set
Same for netif_set_netmask.

However, netif_set_ipaddr crashes because it calls ip_addr_cmp
which doesn't expect one of its parameters to be NULL.

Would the following patch be acceptable?

$ diff -u netif.c.orig netif.c
--- netif.c.orig        2011-05-06 10:51:25.000000000 +0200
+++ netif.c     2011-08-03 18:11:23.052107100 +0200
@@ -325,7 +325,7 @@
   struct tcp_pcb_listen *lpcb;

   /* address is actually being changed? */
-  if ((ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0) {
+  if ((ipaddr != NULL) && ip_addr_cmp(ipaddr, &(netif->ip_addr)) == 0) {
     /* extern struct tcp_pcb *tcp_active_pcbs; defined by tcp.h */
     LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: netif 
address being changed\n"));
     pcb = tcp_active_pcbs;



or the equivalent
  if (ipaddr && ip_addr_cmp(ipaddr, &(netif->ip_addr)) == 0) {

-- 
Regards.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]