diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-03-19 16:20:14 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-03-19 16:20:14 +0000 |
commit | df4e524d8dd89f83a848e2641b3d2bcbb07807d9 (patch) | |
tree | 3afdc4cfaaa549f32778395f5edac611fa2f13cf /extras/mini-os/netfront.c | |
parent | 6fef410021e2f5384a46aca3b6f49a507d331420 (diff) | |
download | xen-df4e524d8dd89f83a848e2641b3d2bcbb07807d9.tar.gz xen-df4e524d8dd89f83a848e2641b3d2bcbb07807d9.tar.bz2 xen-df4e524d8dd89f83a848e2641b3d2bcbb07807d9.zip |
minios: Automatically set IP from XenStore information
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/netfront.c')
-rw-r--r-- | extras/mini-os/netfront.c | 9 |
1 files changed, 7 insertions, 2 deletions
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; |