From 5b81b934bff7350d3c8d5a607ca64b420b78cdc5 Mon Sep 17 00:00:00 2001 From: Sylvain Rochet Date: Wed, 24 Dec 2014 17:36:23 +0100 Subject: [PATCH] unixsim: add support for user chosen netmask --- ports/unix/netif/tapif.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/ports/unix/netif/tapif.c b/ports/unix/netif/tapif.c index 562acfe..3c242a2 100644 --- a/ports/unix/netif/tapif.c +++ b/ports/unix/netif/tapif.c @@ -65,13 +65,16 @@ #include #include #define DEVTAP "/dev/net/tun" -#define IFCONFIG_ARGS "tap0 inet %d.%d.%d.%d" +#define NETMASK_ARGS "netmask %d.%d.%d.%d" +#define IFCONFIG_ARGS "tap0 inet %d.%d.%d.%d " NETMASK_ARGS #elif defined(openbsd) #define DEVTAP "/dev/tun0" -#define IFCONFIG_ARGS "tun0 inet %d.%d.%d.%d link0" +#define NETMASK_ARGS "netmask %d.%d.%d.%d" +#define IFCONFIG_ARGS "tun0 inet %d.%d.%d.%d " NETMASK_ARGS " link0" #else /* others */ #define DEVTAP "/dev/tap0" -#define IFCONFIG_ARGS "tap0 inet %d.%d.%d.%d" +#define NETMASK_ARGS "netmask %d.%d.%d.%d" +#define IFCONFIG_ARGS "tap0 inet %d.%d.%d.%d " NETMASK_ARGS #endif #define IFNAME0 't' @@ -137,10 +140,18 @@ low_level_init(struct netif *netif) #endif /* Linux */ sprintf(buf, IFCONFIG_BIN IFCONFIG_ARGS, - ip4_addr1(&(netif->gw)), - ip4_addr2(&(netif->gw)), - ip4_addr3(&(netif->gw)), - ip4_addr4(&(netif->gw))); + ip4_addr1(&(netif->ip_addr)), + ip4_addr2(&(netif->ip_addr)), + ip4_addr3(&(netif->ip_addr)), + ip4_addr4(&(netif->ip_addr)) +#ifdef NETMASK_ARGS + , + ip4_addr1(&(netif->netmask)), + ip4_addr2(&(netif->netmask)), + ip4_addr3(&(netif->netmask)), + ip4_addr4(&(netif->netmask)) +#endif /* NETMASK_ARGS */ + ); LWIP_DEBUGF(TAPIF_DEBUG, ("tapif_init: system(\"%s\");\n", buf)); system(buf);