From 8ffadadca39b0adf8d11311d9de922d78016361f Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Wed, 14 Sep 2011 19:28:26 +0300 Subject: [PATCH] kvm tools: Use host's resolv.conf within the guest Since kernel IP autoconfiguration doesn't set up /etc/resolv.conf, we'll use the one located within the host, since this was anyway what we simulated within the DHCP offer packets. Signed-off-by: Sasha Levin --- tools/kvm/builtin-run.c | 2 ++ tools/kvm/builtin-setup.c | 9 +++++++++ tools/kvm/include/kvm/builtin-setup.h | 1 + 3 files changed, 12 insertions(+) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index b5c63cab2e7b..28dc95aef54c 100644 --- a/tools/kvm/builtin-run.c +++ b/tools/kvm/builtin-run.c @@ -129,6 +129,7 @@ static int img_name_parser(const struct option *opt, const char *arg, int unset) die("Unable to initialize virtio 9p"); if (virtio_9p__register(kvm, "/", "hostfs") < 0) die("Unable to initialize virtio 9p"); + kvm_setup_resolv(arg); using_rootfs = custom_rootfs = 1; return 0; } @@ -762,6 +763,7 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) char tmp[PATH_MAX]; kvm_setup_create_new("default"); + kvm_setup_resolv("default"); snprintf(tmp, PATH_MAX, "%s%s%s", HOME_DIR, KVM_PID_FILE_PATH, "default"); if (virtio_9p__register(kvm, tmp, "/dev/root") < 0) diff --git a/tools/kvm/builtin-setup.c b/tools/kvm/builtin-setup.c index 6b8eb5b13849..3e569e7b14a2 100644 --- a/tools/kvm/builtin-setup.c +++ b/tools/kvm/builtin-setup.c @@ -168,6 +168,15 @@ static void make_guestfs_dir(const char *guestfs_name, const char *dir) make_dir(name); } +void kvm_setup_resolv(const char *guestfs_name) +{ + char path[PATH_MAX]; + + snprintf(path, PATH_MAX, "%s%s%s/etc/resolv.conf", HOME_DIR, KVM_PID_FILE_PATH, guestfs_name); + + copy_file("/etc/resolv.conf", path); +} + static int do_setup(const char *guestfs_name) { unsigned int i; diff --git a/tools/kvm/include/kvm/builtin-setup.h b/tools/kvm/include/kvm/builtin-setup.h index 6e183a1761d7..f70ae7819022 100644 --- a/tools/kvm/include/kvm/builtin-setup.h +++ b/tools/kvm/include/kvm/builtin-setup.h @@ -4,5 +4,6 @@ int kvm_cmd_setup(int argc, const char **argv, const char *prefix); void kvm_setup_help(void); int kvm_setup_create_new(const char *guestfs_name); +void kvm_setup_resolv(const char *guestfs_name); #endif -- 2.39.5