Patchwork [resent] net/ipv4/ipconfig: really display the BOOTP/DHCP server's address.

login
register
mail settings
Submitter Philippe De Muyter
Date Jan. 3, 2013, 6:02 p.m.
Message ID <1357236132-12574-1-git-send-email-phdm@macqel.be>
Download mbox | patch
Permalink /patch/209291/
State Accepted
Delegated to: David Miller
Headers show

Comments

Philippe De Muyter - Jan. 3, 2013, 6:02 p.m.
Up to now, the debug and info messages from the ipconfig subsytem
claim to display the IP address of the DHCP/BOOTP server but
display instead the IP address of the bootserver.  Fix that.

Signed-off-by: Philippe De Muyter <phdm@macqel.be>
---
 net/ipv4/ipconfig.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

PS:
I sent exactly(*) the same patch some weeks ago, and only discovered using google,
that it was marked as 'Not Applicable' at http://patchwork.ozlabs.org/patch/207970/
I did not receive any mail, or see any post on the list.  Is that the normal policy ?

* I rebased it, but id did not change, and changed the title and the comment hoping 
to better explain the bug fixed.
David Miller - Jan. 4, 2013, 11:14 p.m.
From: Philippe De Muyter <phdm@macqel.be>
Date: Thu,  3 Jan 2013 19:02:12 +0100

> Up to now, the debug and info messages from the ipconfig subsytem
> claim to display the IP address of the DHCP/BOOTP server but
> display instead the IP address of the bootserver.  Fix that.
> 
> Signed-off-by: Philippe De Muyter <phdm@macqel.be>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index d763701..a2e50ae 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;