From d5721f71b3015213d8a58741f7fa3857b17bee22 Mon Sep 17 00:00:00 2001 From: "sgehani%netscape.com" Date: Wed, 7 Jun 2000 23:15:14 +0000 Subject: [PATCH] Fix site selector failover url parsing and download redirect ini routine. (Both nsbeta2+ bugs.) [b=32694, 32766; r=dveditz] --- xpinstall/wizard/mac/src/InstAction.c | 38 +++++++++++++++------ xpinstall/wizard/mac/src/MacInstallWizard.h | 2 +- xpinstall/wizard/mac/src/Parser.c | 15 +++----- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/xpinstall/wizard/mac/src/InstAction.c b/xpinstall/wizard/mac/src/InstAction.c index 760311dd8247..53f2917750b9 100644 --- a/xpinstall/wizard/mac/src/InstAction.c +++ b/xpinstall/wizard/mac/src/InstAction.c @@ -282,6 +282,12 @@ DownloadRedirect(short vRefNum, long dirID, FSSpecPtr redirectINI) err = FSMakeFSSpec(vRefNum, dirID, "\pGetRedirect.idi", &getRedirectIDI); if (err == noErr) FSpDelete(&getRedirectIDI); + err = FSpCreate(&getRedirectIDI, 'NSCP', 'TEXT', smSystemScript); + if ((err != noErr) && (err != dupFNErr)) + { + ErrorHandler(err); + return false; + } err = FSpOpenDF(&getRedirectIDI, fsRdWrPerm, &refNum); if (err != noErr) { @@ -315,20 +321,30 @@ DownloadRedirect(short vRefNum, long dirID, FSSpecPtr redirectINI) #endif /* SDINST_IS_DLL */ #endif /* MOZILLA */ - /* verify redirect.ini existence */ - HLock(gControls->cfg->redirect.url[0]); - leaf = strrchr(*(gControls->cfg->redirect.url[0]), '/'); - if (!leaf) + bSuccess = false; + for (i = 0; i < gControls->cfg->redirect.numURLs; i++) { - bSuccess = false; - goto BAIL; + /* verify redirect.ini existence */ + HLock(gControls->cfg->redirect.url[i]); + leaf = strrchr(*(gControls->cfg->redirect.url[i]), '/'); + if (!leaf) + { + bSuccess = false; + goto BAIL; + } + pLeaf = CToPascal(leaf+1); + HUnlock(gControls->cfg->redirect.url[i]); + + err = FSMakeFSSpec(vRefNum, dirID, pLeaf, redirectINI); + if (err == noErr) + { + bSuccess = true; + break; + } } - pLeaf = CToPascal(leaf+1); - HUnlock(gControls->cfg->redirect.url[0]); - err = FSMakeFSSpec(vRefNum, dirID, pLeaf, redirectINI); - if (err != noErr) - bSuccess = false; + if (!bSuccess) + FSMakeFSSpec(0, 0, "\p", redirectINI); BAIL: if (buf) diff --git a/xpinstall/wizard/mac/src/MacInstallWizard.h b/xpinstall/wizard/mac/src/MacInstallWizard.h index d1a3c5676f4a..48c0706bcfc9 100644 --- a/xpinstall/wizard/mac/src/MacInstallWizard.h +++ b/xpinstall/wizard/mac/src/MacInstallWizard.h @@ -314,7 +314,7 @@ if (err) \ #define sSiteSelector 42 #define sDomain 43 #define sDescription 44 -#define sRedirect 45 +#define sRedirect 46 #define sTermDlg 27 diff --git a/xpinstall/wizard/mac/src/Parser.c b/xpinstall/wizard/mac/src/Parser.c index bb94006db9f6..16929210da8d 100644 --- a/xpinstall/wizard/mac/src/Parser.c +++ b/xpinstall/wizard/mac/src/Parser.c @@ -470,14 +470,9 @@ PopulateCompWinKeys(char *cfgText) DisposePtr(idxCh); strncat(currKey, eof, 1); - if (!FillKeyValueUsingName(currSName, currKey, gControls->cfg->comp[i].domain[j], cfgText)) - { - if (currKey) - DisposePtr(currKey); - if (currKeyBuf) - DisposePtr(currKeyBuf); - break; - } + // don't break if this fails since there may be more Server Paths thatn Domains + FillKeyValueUsingName(currSName, currKey, gControls->cfg->comp[i].domain[j], cfgText); + if (currKey) DisposePtr(currKey); if (currKeyBuf) @@ -739,8 +734,8 @@ PopulateTermWinKeys(char *cfgText) cSection = PascalToC(pSection); cDesc = PascalToC(pDescRoot); cURL = NewPtrClear(pURLRoot[0] + 4); - if (!cURL || ! cSection || !cDesc) - return eParseFailed; + if (!cURL || !cSection || !cDesc) + return eMem; gControls->cfg->redirect.desc = NewHandleClear(kValueMaxLen); if (FillKeyValueUsingResID(sRedirect, sDescription, gControls->cfg->redirect.desc, cfgText))