diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-10-02 20:45:45 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-10-02 20:45:45 +0000 |
commit | 825702f598db2949abaf5c4ec206f54af0de836c (patch) | |
tree | 6f419d68d8a2f2cc96d49687093ac018d3eaddd3 /loader2/driverdisk.c | |
parent | efb7db4145ba33c1c27dc037ce7c674bb7921f2c (diff) | |
download | anaconda-825702f598db2949abaf5c4ec206f54af0de836c.tar.gz anaconda-825702f598db2949abaf5c4ec206f54af0de836c.tar.xz anaconda-825702f598db2949abaf5c4ec206f54af0de836c.zip |
dd from path (from msw, tweaked slightly)
Diffstat (limited to 'loader2/driverdisk.c')
-rw-r--r-- | loader2/driverdisk.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c index da4f29003..d1e193e01 100644 --- a/loader2/driverdisk.c +++ b/loader2/driverdisk.c @@ -430,13 +430,18 @@ static void loadFromLocation(struct knownDevices * kd, void getDDFromSource(struct knownDevices * kd, struct loaderData_s * loaderData, char * src, int flags) { + char *path = "/tmp/dd.img"; + int unlinkf = 0; + if (!strncmp(src, "nfs:", 4)) { + unlinkf = 1; if (getFileFromNfs(src + 4, "/tmp/dd.img", kd, loaderData, flags)) { logMessage("unable to retrieve driver disk: %s", src); return; } } else if (!strncmp(src, "ftp://", 6) || !strncmp(src, "http://", 7)) { + unlinkf = 1; if (getFileFromUrl(src, "/tmp/dd.img", kd, loaderData, flags)) { logMessage("unable to retrieve driver disk: %s", src); return; @@ -448,17 +453,19 @@ void getDDFromSource(struct knownDevices * kd, loaderData->modDepsPtr, loaderData->modInfo, kd, flags); return; + } else if (!strncmp(src, "path:", 5)) { + path = src + 5; } else { newtWinMessage(_("Kickstart Error"), _("OK"), _("Unknown driver disk kickstart source: %s"), src); return; } - if (!mountLoopback("/tmp/dd.img", "/tmp/drivers", "loop6")) { + if (!mountLoopback(path, "/tmp/drivers", "loop6")) { loadFromLocation(kd, loaderData, "/tmp/drivers", flags); umountLoopback("/tmp/drivers", "loop6"); unlink("/tmp/drivers"); - unlink("/tmp/dd.img"); + if (unlinkf) unlink(path); } } |