From df4e524d8dd89f83a848e2641b3d2bcbb07807d9 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 19 Mar 2008 16:20:14 +0000 Subject: minios: Automatically set IP from XenStore information Signed-off-by: Samuel Thibault --- extras/mini-os/netfront.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'extras/mini-os/netfront.c') diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c index 9b709d9826..3159c30445 100644 --- a/extras/mini-os/netfront.c +++ b/extras/mini-os/netfront.c @@ -259,7 +259,7 @@ void netfront_select_handler(evtchn_port_t port, struct pt_regs *regs, void *dat } #endif -struct netfront_dev *init_netfront(char *nodename, void (*thenetif_rx)(unsigned char* data, int len), unsigned char rawmac[6]) +struct netfront_dev *init_netfront(char *nodename, void (*thenetif_rx)(unsigned char* data, int len), unsigned char rawmac[6], char **ip) { xenbus_transaction_t xbt; char* err; @@ -402,6 +402,11 @@ done: xenbus_wait_for_value(path,"4"); xenbus_unwatch_path(XBT_NIL, path); + + if (ip) { + snprintf(path, sizeof(path), "%s/ip", dev->backend); + xenbus_read(XBT_NIL, path, ip); + } } printk("**************************\n"); @@ -427,7 +432,7 @@ done: int netfront_tap_open(char *nodename) { struct netfront_dev *dev; - dev = init_netfront(nodename, NETIF_SELECT_RX, NULL); + dev = init_netfront(nodename, NETIF_SELECT_RX, NULL, NULL); if (!dev) { printk("TAP open failed\n"); errno = EIO; -- cgit v1.2.3