summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
Diffstat (limited to 'loader2')
-rw-r--r--loader2/net.h1
-rw-r--r--loader2/nfsinstall.c20
2 files changed, 12 insertions, 9 deletions
diff --git a/loader2/net.h b/loader2/net.h
index 82a5bf431..6bccb2871 100644
--- a/loader2/net.h
+++ b/loader2/net.h
@@ -88,7 +88,6 @@ int configureNetwork(struct networkDeviceConfig * dev);
int writeNetInfo(const char * fn, struct networkDeviceConfig * dev);
int findHostAndDomain(struct networkDeviceConfig * dev);
int writeResolvConf(struct networkDeviceConfig * net);
-int nfsGetSetup(char ** hostptr, char ** dirptr);
void initLoopback(void);
int chooseNetworkInterface(struct loaderData_s * loaderData);
void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
diff --git a/loader2/nfsinstall.c b/loader2/nfsinstall.c
index 046f00e58..151711ec7 100644
--- a/loader2/nfsinstall.c
+++ b/loader2/nfsinstall.c
@@ -50,7 +50,7 @@
/* boot flags */
extern uint64_t flags;
-int nfsGetSetup(char ** hostptr, char ** dirptr) {
+static int nfsGetSetup(char ** hostptr, char ** dirptr) {
struct newtWinEntry entries[3];
char * buf;
char * newServer = *hostptr ? strdup(*hostptr) : NULL;
@@ -78,8 +78,11 @@ int nfsGetSetup(char ** hostptr, char ** dirptr) {
abort();
}
- rc = newtWinEntries(_("NFS Setup"), buf, 60, 5, 15,
- 24, entries, _("OK"), _("Back"), NULL);
+ do {
+ rc = newtWinEntries(_("NFS Setup"), buf, 60, 5, 15,
+ 24, entries, _("OK"), _("Back"), NULL);
+ } while (!strcmp(newServer, "") || !strcmp(newDir, ""));
+
free(buf);
free(entries[1].text);
@@ -152,16 +155,17 @@ char * mountNfsImage(struct installMethod * method,
*/
substr = strstr(directory, ".img");
if (!substr || (substr && *(substr+4) != '\0')) {
- if (asprintf(&tmp, "%s/images/stage2.img",
- directory) == -1) {
+ if (asprintf(&tmp, "nfs:%s:%s/images/stage2.img",
+ host, directory) == -1) {
logMessage(CRITICAL, "%s: %d: %m", __func__, __LINE__);
abort();
}
- free(((struct nfsInstallData *) loaderData->stage2Data)->directory);
- ((struct nfsInstallData *) loaderData->stage2Data)->directory = strdup(tmp);
- directory = ((struct nfsInstallData *) loaderData->stage2Data)->directory;
+ setStage2LocFromCmdline(tmp, loaderData);
+ free(host);
+ free(directory);
free(tmp);
+ continue;
}
}