diff options
Diffstat (limited to 'net/ipv4/ipconfig.c')
| -rw-r--r-- | net/ipv4/ipconfig.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c index d763701cff1..a2e50ae80b5 100644 --- a/net/ipv4/ipconfig.c +++ b/net/ipv4/ipconfig.c @@ -136,6 +136,8 @@ __be32 ic_myaddr = NONE;		/* My IP address */  static __be32 ic_netmask = NONE;	/* Netmask for local subnet */  __be32 ic_gateway = NONE;	/* Gateway IP address */ +__be32 ic_addrservaddr = NONE;	/* IP Address of the IP addresses'server */ +  __be32 ic_servaddr = NONE;	/* Boot server IP address */  __be32 root_server_addr = NONE;	/* Address of NFS server */ @@ -558,6 +560,7 @@ ic_rarp_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt  	if (ic_myaddr == NONE)  		ic_myaddr = tip;  	ic_servaddr = sip; +	ic_addrservaddr = sip;  	ic_got_reply = IC_RARP;  drop_unlock: @@ -1068,7 +1071,7 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str  				ic_servaddr = server_id;  #ifdef IPCONFIG_DEBUG  				printk("DHCP: Offered address %pI4 by server %pI4\n", -				       &ic_myaddr, &ic_servaddr); +				       &ic_myaddr, &b->iph.saddr);  #endif  				/* The DHCP indicated server address takes  				 * precedence over the bootp header one if @@ -1113,6 +1116,7 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str  	ic_dev = dev;  	ic_myaddr = b->your_ip;  	ic_servaddr = b->server_ip; +	ic_addrservaddr = b->iph.saddr;  	if (ic_gateway == NONE && b->relay_ip)  		ic_gateway = b->relay_ip;  	if (ic_nameservers[0] == NONE) @@ -1268,7 +1272,7 @@ static int __init ic_dynamic(void)  	printk("IP-Config: Got %s answer from %pI4, ",  		((ic_got_reply & IC_RARP) ? "RARP"  		 : (ic_proto_enabled & IC_USE_DHCP) ? "DHCP" : "BOOTP"), -	       &ic_servaddr); +	       &ic_addrservaddr);  	pr_cont("my address is %pI4\n", &ic_myaddr);  	return 0;  |