diff options
Diffstat (limited to 'loader2')
-rw-r--r-- | loader2/net.h | 1 | ||||
-rw-r--r-- | loader2/nfsinstall.c | 20 |
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; } } |