Use a much saner method of locating the release directory on an FTP server.

Now, if a release is specified, instead of just looking for a directory
with the same name as the release, try several possible directories (each
suffixed with the release name) relative to the base directory including
".", "releases/MACHINE", "snapshots/MACHINE", and each of those prefixed
with "pub/FreeBSD/".  This will allow us to remove the evil symlinks under
pub/FreeBSD/releases/MACHINE/ to the snapshots on the ftp site.
This commit is contained in:
John Baldwin 2000-07-25 23:22:16 +00:00
parent edf6db6217
commit ab21e668ee
5 changed files with 354 additions and 325 deletions

View File

@ -48,6 +48,11 @@ Boolean ftpInitted = FALSE;
static FILE *OpenConn; static FILE *OpenConn;
int FtpPort; int FtpPort;
/* List of sub directories to look for under a given FTP server. */
static const char *ftp_dirs[] = { ".", "releases/"MACHINE, "snapshots/"MACHINE,
"pub/FreeBSD", "pub/FreeBSD/releases/"MACHINE,
"pub/FreeBSD/snapshots/"MACHINE, NULL };
/* Brings up attached network device, if any - takes FTP device as arg */ /* Brings up attached network device, if any - takes FTP device as arg */
static Boolean static Boolean
netUp(Device *dev) netUp(Device *dev)
@ -73,7 +78,7 @@ netDown(Device *dev)
Boolean Boolean
mediaInitFTP(Device *dev) mediaInitFTP(Device *dev)
{ {
int i, code, af; int i, code, af, fdir;
char *cp, *rel, *hostname, *dir; char *cp, *rel, *hostname, *dir;
char *user, *login_name, password[80]; char *user, *login_name, password[80];
@ -141,32 +146,55 @@ try:
} }
} }
/* Give it a shot - can't hurt to try and zoom in if we can, unless the release is set to /*
__RELEASE or "none" which signifies that it's not set */ * Now that we've verified that the path we're given is ok, let's try to
* be a bit intelligent in locating the release we are looking for. First
* off, if the release is specified as "__RELEASE" or "none", then just
* assume that the current directory is the one we want and give up.
*/
rel = variable_get(VAR_RELNAME); rel = variable_get(VAR_RELNAME);
if (strcmp(rel, "__RELEASE") && strcmp(rel, "none")) if (strcmp(rel, "__RELEASE") && strcmp(rel, "none")) {
i = ftpChdir(OpenConn, rel); /*
else * Ok, since we have a release variable, let's walk through the list
i = 0; * of directories looking for a release directory. The first one to
if (i) { * match wins. For each case, we chdir to ftp_dirs[fdir] first. If
if (!msgYesNo("Warning: Can't CD to `%s' distribution on this\n" * that fails, we skip to the next one. Otherwise, we try to chdir to
* rel. If it succeeds we break out. If it fails, then we go back to
* the base directory and try again. Lots of chdirs, but oh well. :)
*/
fdir = 0;
while (ftp_dirs[fdir] != NULL) {
if (ftpChdir(OpenConn, ftp_dirs[fdir++]) != 0)
continue;
if (ftpChdir(OpenConn, rel) == 0) {
ftpInitted = TRUE;
return TRUE;
}
ftpChdir(OpenConn, "/");
if (dir && *dir != '\0')
ftpChdir(OpenConn, dir);
}
/*
* If we get here, then all of the directories we tried failed, so
* print out the error message and ask the user if they want to try
* again.
*/
if (!msgYesNo("Warning: Can't find the `%s' distribution on this\n"
"FTP server. You may need to visit a different server for\n" "FTP server. You may need to visit a different server for\n"
"the release you're trying to fetch or go to the Options\n" "the release you are trying to fetch or go to the Options\n"
"menu and to set the release name to explicitly match what's\n" "menu and to set the release name to explicitly match what's\n"
"available on %s (or set to \"none\").\n\n" "available on %s (or set to \"none\").\n\n"
"Would you like to select another FTP server?", "Would you like to select another FTP server?",
rel, hostname)) { rel, hostname)) {
variable_unset(VAR_FTP_PATH); variable_unset(VAR_FTP_PATH);
if (DITEM_STATUS(mediaSetFTP(NULL)) == DITEM_FAILURE) if (DITEM_STATUS(mediaSetFTP(NULL)) != DITEM_FAILURE)
goto punt;
else
goto try; goto try;
} }
else } else {
goto punt; ftpInitted = TRUE;
return TRUE;
} }
ftpInitted = TRUE;
return TRUE;
punt: punt:
ftpInitted = FALSE; ftpInitted = FALSE;

View File

@ -36,15 +36,6 @@
#include "sysinstall.h" #include "sysinstall.h"
#if defined(__alpha__)
#define _AS(str) str "alpha/"
#elif defined(PC98)
#define _AS(str) str "pc98/"
#else
#define _AS(str) str "i386/"
#endif
#define _AP(str) _AS(str "/pub/FreeBSD/releases/")
/* Miscellaneous work routines for menus */ /* Miscellaneous work routines for menus */
static int static int
setSrc(dialogMenuItem *self) setSrc(dialogMenuItem *self)
@ -546,183 +537,183 @@ DMenu MenuMediaFTP = {
"Select a site that's close!", "Select a site that's close!",
"install", "install",
{ { "Primary Site", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL, { { "Primary Site", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://ftp.freebsd.org/pub/FreeBSD/releases/") }, VAR_FTP_PATH "=ftp://ftp.freebsd.org" },
{ "URL", "Specify some other ftp site by URL", NULL, dmenuSetVariable, NULL, { "URL", "Specify some other ftp site by URL", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH "=other" }, VAR_FTP_PATH "=other" },
{ " 5.0 SNAP Server", "current.freebsd.org", NULL, dmenuSetVariable, NULL, { " 5.0 SNAP Server", "current.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://current.freebsd.org/pub/FreeBSD/snapshots/") }, VAR_FTP_PATH "=ftp://current.freebsd.org" },
{ " 4.0 SNAP Server", "releng4.freebsd.org", NULL, dmenuSetVariable, NULL, { " 4.0 SNAP Server", "releng4.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/") }, VAR_FTP_PATH "=ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/" },
{ " IPv6 Ready", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " IPv6 Ready", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.jp.freebsd.org" },
{ "Argentina", "ftp.ar.freebsd.org", NULL, dmenuSetVariable, NULL, { "Argentina", "ftp.ar.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ar.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ar.freebsd.org" },
{ " Australia", "ftp.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia", "ftp.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.au.freebsd.org" },
{ " Australia #2","ftp2.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #2","ftp2.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.au.freebsd.org" },
{ " Australia #3","ftp3.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #3","ftp3.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.au.freebsd.org" },
{ " Australia #4","ftp4.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #4","ftp4.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.au.freebsd.org" },
{ " Australia #5","ftp5.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #5","ftp5.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.au.freebsd.org" },
{ "Brazil", "ftp.br.freebsd.org", NULL, dmenuSetVariable, NULL, { "Brazil", "ftp.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.br.freebsd.org" },
{ " Brazil #2", "ftp2.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #2", "ftp2.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.br.freebsd.org" },
{ " Brazil #3", "ftp3.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #3", "ftp3.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.br.freebsd.org" },
{ " Brazil #4", "ftp4.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #4", "ftp4.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.br.freebsd.org" },
{ " Brazil #5", "ftp5.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #5", "ftp5.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.br.freebsd.org" },
{ " Brazil #6", "ftp6.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #6", "ftp6.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.br.freebsd.org" },
{ " Brazil #7", "ftp7.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #7", "ftp7.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.br.freebsd.org" },
{ " Canada", "ftp.ca.freebsd.org", NULL, dmenuSetVariable, NULL, { " Canada", "ftp.ca.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ca.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ca.freebsd.org" },
{ " Czech Republic", "ftp.cz.freebsd.org", NULL, dmenuSetVariable, NULL, { " Czech Republic", "ftp.cz.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.cz.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.cz.freebsd.org" },
{ "Denmark", "ftp.dk.freebsd.org", NULL, dmenuSetVariable, NULL, { "Denmark", "ftp.dk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.dk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.dk.freebsd.org" },
{ " Denmark #2", "ftp2.dk.freebsd.org", NULL, dmenuSetVariable, NULL, { " Denmark #2", "ftp2.dk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.dk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.dk.freebsd.org" },
{ "Estonia", "ftp.ee.freebsd.org", NULL, dmenuSetVariable, NULL, { "Estonia", "ftp.ee.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ee.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ee.freebsd.org" },
{ "Finland", "ftp.fi.freebsd.org", NULL, dmenuSetVariable, NULL, { "Finland", "ftp.fi.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.fi.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.fi.freebsd.org" },
{ " France", "ftp.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France", "ftp.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.fr.freebsd.org" },
{ " France #2", "ftp2.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #2", "ftp2.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.fr.freebsd.org" },
{ " France #3", "ftp3.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #3", "ftp3.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ " France #4", "ftp4.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #4", "ftp4.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ " France #5", "ftp5.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #5", "ftp5.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ "Germany", "ftp.de.freebsd.org", NULL, dmenuSetVariable, NULL, { "Germany", "ftp.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.de.freebsd.org" },
{ " Germany #2", "ftp2.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #2", "ftp2.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.de.freebsd.org" },
{ " Germany #3", "ftp3.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #3", "ftp3.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.de.freebsd.org" },
{ " Germany #4", "ftp4.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #4", "ftp4.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.de.freebsd.org" },
{ " Germany #5", "ftp5.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #5", "ftp5.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.de.freebsd.org" },
{ " Germany #6", "ftp6.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #6", "ftp6.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.de.freebsd.org" },
{ " Germany #7", "ftp7.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #7", "ftp7.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.de.freebsd.org" },
{ "Holland", "ftp.nl.freebsd.org", NULL, dmenuSetVariable, NULL, { "Holland", "ftp.nl.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.nl.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.nl.freebsd.org" },
{ " Hong Kong", "ftp.hk.super.net", NULL, dmenuSetVariable, NULL, { " Hong Kong", "ftp.hk.super.net", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.hk.super.net") }, VAR_FTP_PATH "=ftp://ftp.hk.super.net" },
{ "Iceland", "ftp.is.freebsd.org", NULL, dmenuSetVariable, NULL, { "Iceland", "ftp.is.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.is.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.is.freebsd.org" },
{ " Ireland", "ftp.ie.freebsd.org", NULL, dmenuSetVariable, NULL, { " Ireland", "ftp.ie.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ie.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ie.freebsd.org" },
{ " Israel", "ftp.il.freebsd.org", NULL, dmenuSetVariable, NULL, { " Israel", "ftp.il.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.il.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.il.freebsd.org" },
{ " Israel #2", "ftp2.il.freebsd.org", NULL, dmenuSetVariable, NULL, { " Israel #2", "ftp2.il.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.il.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.il.freebsd.org" },
{ "Japan", "ftp.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { "Japan", "ftp.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.jp.freebsd.org" },
{ " Japan #2", "ftp2.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #2", "ftp2.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.jp.freebsd.org" },
{ " Japan #3", "ftp3.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #3", "ftp3.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.jp.freebsd.org" },
{ " Japan #4", "ftp4.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #4", "ftp4.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.jp.freebsd.org" },
{ " Japan #5", "ftp5.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #5", "ftp5.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.jp.freebsd.org" },
{ " Japan #6", "ftp6.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #6", "ftp6.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.jp.freebsd.org" },
{ " Japan #7", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #7", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.jp.freebsd.org" },
{ "Korea", "ftp.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { "Korea", "ftp.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.kr.freebsd.org" },
{ " Korea #2", "ftp2.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #2", "ftp2.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.kr.freebsd.org" },
{ " Korea #3", "ftp3.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #3", "ftp3.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.kr.freebsd.org" },
{ " Korea #4", "ftp4.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #4", "ftp4.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.kr.freebsd.org" },
{ " Korea #5", "ftp5.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #5", "ftp5.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.kr.freebsd.org" },
{ "New Zealand", "ftp.nz.freebsd.org", NULL, dmenuSetVariable, NULL, { "New Zealand", "ftp.nz.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.nz.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.nz.freebsd.org" },
{ "Poland", "ftp.pl.freebsd.org", NULL, dmenuSetVariable, NULL, { "Poland", "ftp.pl.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.pl.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.pl.freebsd.org" },
{ " Portugal", "ftp.pt.freebsd.org", NULL, dmenuSetVariable, NULL, { " Portugal", "ftp.pt.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.pt.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.pt.freebsd.org" },
{ " Portugal #2", "ftp2.pt.freebsd.org", NULL, dmenuSetVariable, NULL, { " Portugal #2", "ftp2.pt.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.pt.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.pt.freebsd.org" },
{ "Russia", "ftp.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { "Russia", "ftp.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ru.freebsd.org" },
{ " Russia #2", "ftp2.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #2", "ftp2.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.ru.freebsd.org" },
{ " Russia #3", "ftp3.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #3", "ftp3.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.ru.freebsd.org" },
{ " Russia #4", "ftp4.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #4", "ftp4.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.ru.freebsd.org" },
{ "Slovak Republic", "ftp.sk.freebsd.org", NULL, dmenuSetVariable, NULL, { "Slovak Republic", "ftp.sk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.sk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.sk.freebsd.org" },
{ "Slovenia", "ftp.si.freebsd.org", NULL, dmenuSetVariable, NULL, { "Slovenia", "ftp.si.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.si.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.si.freebsd.org" },
{ " South Africa", "ftp.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa", "ftp.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.za.freebsd.org" },
{ " South Africa #2", "ftp2.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #2", "ftp2.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.za.freebsd.org" },
{ " South Africa #3", "ftp3.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #3", "ftp3.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.za.freebsd.org" },
{ " South Africa #4", "ftp4.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #4", "ftp4.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.za.freebsd.org" },
{ " Spain", "ftp.es.freebsd.org", NULL, dmenuSetVariable, NULL, { " Spain", "ftp.es.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.es.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.es.freebsd.org" },
{ " Spain #2", "ftp2.es.freebsd.org", NULL, dmenuSetVariable, NULL, { " Spain #2", "ftp2.es.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.es.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.es.freebsd.org" },
{ " Sweden", "ftp.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden", "ftp.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.se.freebsd.org" },
{ " Sweden #2", "ftp2.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden #2", "ftp2.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.se.freebsd.org" },
{ " Sweden #3", "ftp3.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden #3", "ftp3.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.se.freebsd.org" },
{ "Taiwan", "ftp.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { "Taiwan", "ftp.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.tw.freebsd.org" },
{ " Taiwan #2", "ftp2.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #2", "ftp2.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.tw.freebsd.org" },
{ " Taiwan #3", "ftp3.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #3", "ftp3.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.tw.freebsd.org" },
{ " Taiwan #4", "ftp4.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #4", "ftp4.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.tw.freebsd.org" },
{ " Thailand", "ftp.nectec.or.th", NULL, dmenuSetVariable, NULL, { " Thailand", "ftp.nectec.or.th", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://ftp.nectec.or.th/pub/mirrors/FreeBSD/") }, VAR_FTP_PATH "=ftp://ftp.nectec.or.th/pub/mirrors/FreeBSD/" },
{ "UK", "ftp.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { "UK", "ftp.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.uk.freebsd.org" },
{ " UK #2", "ftp2.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #2", "ftp2.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.uk.freebsd.org" },
{ " UK #3", "ftp3.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #3", "ftp3.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.uk.freebsd.org" },
{ " UK #4", "ftp4.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #4", "ftp4.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.uk.freebsd.org" },
{ " UK #5", "ftp5.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #5", "ftp5.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.uk.freebsd.org" },
{ " USA", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.freebsd.org" },
{ " USA #2", "ftp2.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #2", "ftp2.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.freebsd.org" },
{ " USA #3", "ftp3.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #3", "ftp3.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.freebsd.org" },
{ " USA #4", "ftp4.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #4", "ftp4.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.freebsd.org" },
{ " USA #5", "ftp5.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #5", "ftp5.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.freebsd.org" },
{ " USA #6", "ftp6.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #6", "ftp6.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.freebsd.org" },
{ NULL } } { NULL } }
}; };

View File

@ -36,15 +36,6 @@
#include "sysinstall.h" #include "sysinstall.h"
#if defined(__alpha__)
#define _AS(str) str "alpha/"
#elif defined(PC98)
#define _AS(str) str "pc98/"
#else
#define _AS(str) str "i386/"
#endif
#define _AP(str) _AS(str "/pub/FreeBSD/releases/")
/* Miscellaneous work routines for menus */ /* Miscellaneous work routines for menus */
static int static int
setSrc(dialogMenuItem *self) setSrc(dialogMenuItem *self)
@ -546,183 +537,183 @@ DMenu MenuMediaFTP = {
"Select a site that's close!", "Select a site that's close!",
"install", "install",
{ { "Primary Site", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL, { { "Primary Site", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://ftp.freebsd.org/pub/FreeBSD/releases/") }, VAR_FTP_PATH "=ftp://ftp.freebsd.org" },
{ "URL", "Specify some other ftp site by URL", NULL, dmenuSetVariable, NULL, { "URL", "Specify some other ftp site by URL", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH "=other" }, VAR_FTP_PATH "=other" },
{ " 5.0 SNAP Server", "current.freebsd.org", NULL, dmenuSetVariable, NULL, { " 5.0 SNAP Server", "current.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://current.freebsd.org/pub/FreeBSD/snapshots/") }, VAR_FTP_PATH "=ftp://current.freebsd.org" },
{ " 4.0 SNAP Server", "releng4.freebsd.org", NULL, dmenuSetVariable, NULL, { " 4.0 SNAP Server", "releng4.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/") }, VAR_FTP_PATH "=ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/" },
{ " IPv6 Ready", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " IPv6 Ready", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.jp.freebsd.org" },
{ "Argentina", "ftp.ar.freebsd.org", NULL, dmenuSetVariable, NULL, { "Argentina", "ftp.ar.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ar.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ar.freebsd.org" },
{ " Australia", "ftp.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia", "ftp.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.au.freebsd.org" },
{ " Australia #2","ftp2.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #2","ftp2.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.au.freebsd.org" },
{ " Australia #3","ftp3.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #3","ftp3.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.au.freebsd.org" },
{ " Australia #4","ftp4.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #4","ftp4.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.au.freebsd.org" },
{ " Australia #5","ftp5.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #5","ftp5.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.au.freebsd.org" },
{ "Brazil", "ftp.br.freebsd.org", NULL, dmenuSetVariable, NULL, { "Brazil", "ftp.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.br.freebsd.org" },
{ " Brazil #2", "ftp2.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #2", "ftp2.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.br.freebsd.org" },
{ " Brazil #3", "ftp3.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #3", "ftp3.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.br.freebsd.org" },
{ " Brazil #4", "ftp4.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #4", "ftp4.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.br.freebsd.org" },
{ " Brazil #5", "ftp5.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #5", "ftp5.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.br.freebsd.org" },
{ " Brazil #6", "ftp6.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #6", "ftp6.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.br.freebsd.org" },
{ " Brazil #7", "ftp7.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #7", "ftp7.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.br.freebsd.org" },
{ " Canada", "ftp.ca.freebsd.org", NULL, dmenuSetVariable, NULL, { " Canada", "ftp.ca.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ca.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ca.freebsd.org" },
{ " Czech Republic", "ftp.cz.freebsd.org", NULL, dmenuSetVariable, NULL, { " Czech Republic", "ftp.cz.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.cz.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.cz.freebsd.org" },
{ "Denmark", "ftp.dk.freebsd.org", NULL, dmenuSetVariable, NULL, { "Denmark", "ftp.dk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.dk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.dk.freebsd.org" },
{ " Denmark #2", "ftp2.dk.freebsd.org", NULL, dmenuSetVariable, NULL, { " Denmark #2", "ftp2.dk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.dk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.dk.freebsd.org" },
{ "Estonia", "ftp.ee.freebsd.org", NULL, dmenuSetVariable, NULL, { "Estonia", "ftp.ee.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ee.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ee.freebsd.org" },
{ "Finland", "ftp.fi.freebsd.org", NULL, dmenuSetVariable, NULL, { "Finland", "ftp.fi.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.fi.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.fi.freebsd.org" },
{ " France", "ftp.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France", "ftp.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.fr.freebsd.org" },
{ " France #2", "ftp2.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #2", "ftp2.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.fr.freebsd.org" },
{ " France #3", "ftp3.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #3", "ftp3.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ " France #4", "ftp4.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #4", "ftp4.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ " France #5", "ftp5.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #5", "ftp5.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ "Germany", "ftp.de.freebsd.org", NULL, dmenuSetVariable, NULL, { "Germany", "ftp.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.de.freebsd.org" },
{ " Germany #2", "ftp2.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #2", "ftp2.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.de.freebsd.org" },
{ " Germany #3", "ftp3.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #3", "ftp3.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.de.freebsd.org" },
{ " Germany #4", "ftp4.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #4", "ftp4.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.de.freebsd.org" },
{ " Germany #5", "ftp5.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #5", "ftp5.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.de.freebsd.org" },
{ " Germany #6", "ftp6.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #6", "ftp6.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.de.freebsd.org" },
{ " Germany #7", "ftp7.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #7", "ftp7.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.de.freebsd.org" },
{ "Holland", "ftp.nl.freebsd.org", NULL, dmenuSetVariable, NULL, { "Holland", "ftp.nl.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.nl.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.nl.freebsd.org" },
{ " Hong Kong", "ftp.hk.super.net", NULL, dmenuSetVariable, NULL, { " Hong Kong", "ftp.hk.super.net", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.hk.super.net") }, VAR_FTP_PATH "=ftp://ftp.hk.super.net" },
{ "Iceland", "ftp.is.freebsd.org", NULL, dmenuSetVariable, NULL, { "Iceland", "ftp.is.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.is.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.is.freebsd.org" },
{ " Ireland", "ftp.ie.freebsd.org", NULL, dmenuSetVariable, NULL, { " Ireland", "ftp.ie.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ie.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ie.freebsd.org" },
{ " Israel", "ftp.il.freebsd.org", NULL, dmenuSetVariable, NULL, { " Israel", "ftp.il.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.il.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.il.freebsd.org" },
{ " Israel #2", "ftp2.il.freebsd.org", NULL, dmenuSetVariable, NULL, { " Israel #2", "ftp2.il.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.il.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.il.freebsd.org" },
{ "Japan", "ftp.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { "Japan", "ftp.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.jp.freebsd.org" },
{ " Japan #2", "ftp2.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #2", "ftp2.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.jp.freebsd.org" },
{ " Japan #3", "ftp3.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #3", "ftp3.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.jp.freebsd.org" },
{ " Japan #4", "ftp4.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #4", "ftp4.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.jp.freebsd.org" },
{ " Japan #5", "ftp5.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #5", "ftp5.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.jp.freebsd.org" },
{ " Japan #6", "ftp6.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #6", "ftp6.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.jp.freebsd.org" },
{ " Japan #7", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #7", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.jp.freebsd.org" },
{ "Korea", "ftp.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { "Korea", "ftp.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.kr.freebsd.org" },
{ " Korea #2", "ftp2.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #2", "ftp2.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.kr.freebsd.org" },
{ " Korea #3", "ftp3.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #3", "ftp3.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.kr.freebsd.org" },
{ " Korea #4", "ftp4.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #4", "ftp4.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.kr.freebsd.org" },
{ " Korea #5", "ftp5.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #5", "ftp5.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.kr.freebsd.org" },
{ "New Zealand", "ftp.nz.freebsd.org", NULL, dmenuSetVariable, NULL, { "New Zealand", "ftp.nz.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.nz.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.nz.freebsd.org" },
{ "Poland", "ftp.pl.freebsd.org", NULL, dmenuSetVariable, NULL, { "Poland", "ftp.pl.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.pl.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.pl.freebsd.org" },
{ " Portugal", "ftp.pt.freebsd.org", NULL, dmenuSetVariable, NULL, { " Portugal", "ftp.pt.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.pt.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.pt.freebsd.org" },
{ " Portugal #2", "ftp2.pt.freebsd.org", NULL, dmenuSetVariable, NULL, { " Portugal #2", "ftp2.pt.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.pt.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.pt.freebsd.org" },
{ "Russia", "ftp.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { "Russia", "ftp.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ru.freebsd.org" },
{ " Russia #2", "ftp2.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #2", "ftp2.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.ru.freebsd.org" },
{ " Russia #3", "ftp3.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #3", "ftp3.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.ru.freebsd.org" },
{ " Russia #4", "ftp4.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #4", "ftp4.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.ru.freebsd.org" },
{ "Slovak Republic", "ftp.sk.freebsd.org", NULL, dmenuSetVariable, NULL, { "Slovak Republic", "ftp.sk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.sk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.sk.freebsd.org" },
{ "Slovenia", "ftp.si.freebsd.org", NULL, dmenuSetVariable, NULL, { "Slovenia", "ftp.si.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.si.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.si.freebsd.org" },
{ " South Africa", "ftp.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa", "ftp.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.za.freebsd.org" },
{ " South Africa #2", "ftp2.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #2", "ftp2.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.za.freebsd.org" },
{ " South Africa #3", "ftp3.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #3", "ftp3.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.za.freebsd.org" },
{ " South Africa #4", "ftp4.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #4", "ftp4.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.za.freebsd.org" },
{ " Spain", "ftp.es.freebsd.org", NULL, dmenuSetVariable, NULL, { " Spain", "ftp.es.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.es.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.es.freebsd.org" },
{ " Spain #2", "ftp2.es.freebsd.org", NULL, dmenuSetVariable, NULL, { " Spain #2", "ftp2.es.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.es.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.es.freebsd.org" },
{ " Sweden", "ftp.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden", "ftp.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.se.freebsd.org" },
{ " Sweden #2", "ftp2.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden #2", "ftp2.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.se.freebsd.org" },
{ " Sweden #3", "ftp3.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden #3", "ftp3.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.se.freebsd.org" },
{ "Taiwan", "ftp.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { "Taiwan", "ftp.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.tw.freebsd.org" },
{ " Taiwan #2", "ftp2.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #2", "ftp2.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.tw.freebsd.org" },
{ " Taiwan #3", "ftp3.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #3", "ftp3.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.tw.freebsd.org" },
{ " Taiwan #4", "ftp4.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #4", "ftp4.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.tw.freebsd.org" },
{ " Thailand", "ftp.nectec.or.th", NULL, dmenuSetVariable, NULL, { " Thailand", "ftp.nectec.or.th", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://ftp.nectec.or.th/pub/mirrors/FreeBSD/") }, VAR_FTP_PATH "=ftp://ftp.nectec.or.th/pub/mirrors/FreeBSD/" },
{ "UK", "ftp.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { "UK", "ftp.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.uk.freebsd.org" },
{ " UK #2", "ftp2.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #2", "ftp2.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.uk.freebsd.org" },
{ " UK #3", "ftp3.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #3", "ftp3.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.uk.freebsd.org" },
{ " UK #4", "ftp4.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #4", "ftp4.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.uk.freebsd.org" },
{ " UK #5", "ftp5.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #5", "ftp5.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.uk.freebsd.org" },
{ " USA", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.freebsd.org" },
{ " USA #2", "ftp2.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #2", "ftp2.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.freebsd.org" },
{ " USA #3", "ftp3.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #3", "ftp3.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.freebsd.org" },
{ " USA #4", "ftp4.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #4", "ftp4.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.freebsd.org" },
{ " USA #5", "ftp5.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #5", "ftp5.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.freebsd.org" },
{ " USA #6", "ftp6.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #6", "ftp6.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.freebsd.org" },
{ NULL } } { NULL } }
}; };

View File

@ -48,6 +48,11 @@ Boolean ftpInitted = FALSE;
static FILE *OpenConn; static FILE *OpenConn;
int FtpPort; int FtpPort;
/* List of sub directories to look for under a given FTP server. */
static const char *ftp_dirs[] = { ".", "releases/"MACHINE, "snapshots/"MACHINE,
"pub/FreeBSD", "pub/FreeBSD/releases/"MACHINE,
"pub/FreeBSD/snapshots/"MACHINE, NULL };
/* Brings up attached network device, if any - takes FTP device as arg */ /* Brings up attached network device, if any - takes FTP device as arg */
static Boolean static Boolean
netUp(Device *dev) netUp(Device *dev)
@ -73,7 +78,7 @@ netDown(Device *dev)
Boolean Boolean
mediaInitFTP(Device *dev) mediaInitFTP(Device *dev)
{ {
int i, code, af; int i, code, af, fdir;
char *cp, *rel, *hostname, *dir; char *cp, *rel, *hostname, *dir;
char *user, *login_name, password[80]; char *user, *login_name, password[80];
@ -141,32 +146,55 @@ try:
} }
} }
/* Give it a shot - can't hurt to try and zoom in if we can, unless the release is set to /*
__RELEASE or "none" which signifies that it's not set */ * Now that we've verified that the path we're given is ok, let's try to
* be a bit intelligent in locating the release we are looking for. First
* off, if the release is specified as "__RELEASE" or "none", then just
* assume that the current directory is the one we want and give up.
*/
rel = variable_get(VAR_RELNAME); rel = variable_get(VAR_RELNAME);
if (strcmp(rel, "__RELEASE") && strcmp(rel, "none")) if (strcmp(rel, "__RELEASE") && strcmp(rel, "none")) {
i = ftpChdir(OpenConn, rel); /*
else * Ok, since we have a release variable, let's walk through the list
i = 0; * of directories looking for a release directory. The first one to
if (i) { * match wins. For each case, we chdir to ftp_dirs[fdir] first. If
if (!msgYesNo("Warning: Can't CD to `%s' distribution on this\n" * that fails, we skip to the next one. Otherwise, we try to chdir to
* rel. If it succeeds we break out. If it fails, then we go back to
* the base directory and try again. Lots of chdirs, but oh well. :)
*/
fdir = 0;
while (ftp_dirs[fdir] != NULL) {
if (ftpChdir(OpenConn, ftp_dirs[fdir++]) != 0)
continue;
if (ftpChdir(OpenConn, rel) == 0) {
ftpInitted = TRUE;
return TRUE;
}
ftpChdir(OpenConn, "/");
if (dir && *dir != '\0')
ftpChdir(OpenConn, dir);
}
/*
* If we get here, then all of the directories we tried failed, so
* print out the error message and ask the user if they want to try
* again.
*/
if (!msgYesNo("Warning: Can't find the `%s' distribution on this\n"
"FTP server. You may need to visit a different server for\n" "FTP server. You may need to visit a different server for\n"
"the release you're trying to fetch or go to the Options\n" "the release you are trying to fetch or go to the Options\n"
"menu and to set the release name to explicitly match what's\n" "menu and to set the release name to explicitly match what's\n"
"available on %s (or set to \"none\").\n\n" "available on %s (or set to \"none\").\n\n"
"Would you like to select another FTP server?", "Would you like to select another FTP server?",
rel, hostname)) { rel, hostname)) {
variable_unset(VAR_FTP_PATH); variable_unset(VAR_FTP_PATH);
if (DITEM_STATUS(mediaSetFTP(NULL)) == DITEM_FAILURE) if (DITEM_STATUS(mediaSetFTP(NULL)) != DITEM_FAILURE)
goto punt;
else
goto try; goto try;
} }
else } else {
goto punt; ftpInitted = TRUE;
return TRUE;
} }
ftpInitted = TRUE;
return TRUE;
punt: punt:
ftpInitted = FALSE; ftpInitted = FALSE;

View File

@ -36,15 +36,6 @@
#include "sysinstall.h" #include "sysinstall.h"
#if defined(__alpha__)
#define _AS(str) str "alpha/"
#elif defined(PC98)
#define _AS(str) str "pc98/"
#else
#define _AS(str) str "i386/"
#endif
#define _AP(str) _AS(str "/pub/FreeBSD/releases/")
/* Miscellaneous work routines for menus */ /* Miscellaneous work routines for menus */
static int static int
setSrc(dialogMenuItem *self) setSrc(dialogMenuItem *self)
@ -546,183 +537,183 @@ DMenu MenuMediaFTP = {
"Select a site that's close!", "Select a site that's close!",
"install", "install",
{ { "Primary Site", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL, { { "Primary Site", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://ftp.freebsd.org/pub/FreeBSD/releases/") }, VAR_FTP_PATH "=ftp://ftp.freebsd.org" },
{ "URL", "Specify some other ftp site by URL", NULL, dmenuSetVariable, NULL, { "URL", "Specify some other ftp site by URL", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH "=other" }, VAR_FTP_PATH "=other" },
{ " 5.0 SNAP Server", "current.freebsd.org", NULL, dmenuSetVariable, NULL, { " 5.0 SNAP Server", "current.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://current.freebsd.org/pub/FreeBSD/snapshots/") }, VAR_FTP_PATH "=ftp://current.freebsd.org" },
{ " 4.0 SNAP Server", "releng4.freebsd.org", NULL, dmenuSetVariable, NULL, { " 4.0 SNAP Server", "releng4.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/") }, VAR_FTP_PATH "=ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/" },
{ " IPv6 Ready", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " IPv6 Ready", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.jp.freebsd.org" },
{ "Argentina", "ftp.ar.freebsd.org", NULL, dmenuSetVariable, NULL, { "Argentina", "ftp.ar.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ar.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ar.freebsd.org" },
{ " Australia", "ftp.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia", "ftp.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.au.freebsd.org" },
{ " Australia #2","ftp2.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #2","ftp2.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.au.freebsd.org" },
{ " Australia #3","ftp3.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #3","ftp3.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.au.freebsd.org" },
{ " Australia #4","ftp4.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #4","ftp4.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.au.freebsd.org" },
{ " Australia #5","ftp5.au.freebsd.org", NULL, dmenuSetVariable, NULL, { " Australia #5","ftp5.au.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.au.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.au.freebsd.org" },
{ "Brazil", "ftp.br.freebsd.org", NULL, dmenuSetVariable, NULL, { "Brazil", "ftp.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.br.freebsd.org" },
{ " Brazil #2", "ftp2.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #2", "ftp2.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.br.freebsd.org" },
{ " Brazil #3", "ftp3.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #3", "ftp3.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.br.freebsd.org" },
{ " Brazil #4", "ftp4.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #4", "ftp4.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.br.freebsd.org" },
{ " Brazil #5", "ftp5.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #5", "ftp5.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.br.freebsd.org" },
{ " Brazil #6", "ftp6.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #6", "ftp6.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.br.freebsd.org" },
{ " Brazil #7", "ftp7.br.freebsd.org", NULL, dmenuSetVariable, NULL, { " Brazil #7", "ftp7.br.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.br.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.br.freebsd.org" },
{ " Canada", "ftp.ca.freebsd.org", NULL, dmenuSetVariable, NULL, { " Canada", "ftp.ca.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ca.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ca.freebsd.org" },
{ " Czech Republic", "ftp.cz.freebsd.org", NULL, dmenuSetVariable, NULL, { " Czech Republic", "ftp.cz.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.cz.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.cz.freebsd.org" },
{ "Denmark", "ftp.dk.freebsd.org", NULL, dmenuSetVariable, NULL, { "Denmark", "ftp.dk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.dk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.dk.freebsd.org" },
{ " Denmark #2", "ftp2.dk.freebsd.org", NULL, dmenuSetVariable, NULL, { " Denmark #2", "ftp2.dk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.dk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.dk.freebsd.org" },
{ "Estonia", "ftp.ee.freebsd.org", NULL, dmenuSetVariable, NULL, { "Estonia", "ftp.ee.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ee.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ee.freebsd.org" },
{ "Finland", "ftp.fi.freebsd.org", NULL, dmenuSetVariable, NULL, { "Finland", "ftp.fi.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.fi.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.fi.freebsd.org" },
{ " France", "ftp.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France", "ftp.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.fr.freebsd.org" },
{ " France #2", "ftp2.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #2", "ftp2.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.fr.freebsd.org" },
{ " France #3", "ftp3.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #3", "ftp3.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ " France #4", "ftp4.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #4", "ftp4.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ " France #5", "ftp5.fr.freebsd.org", NULL, dmenuSetVariable, NULL, { " France #5", "ftp5.fr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.fr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.fr.freebsd.org" },
{ "Germany", "ftp.de.freebsd.org", NULL, dmenuSetVariable, NULL, { "Germany", "ftp.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.de.freebsd.org" },
{ " Germany #2", "ftp2.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #2", "ftp2.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.de.freebsd.org" },
{ " Germany #3", "ftp3.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #3", "ftp3.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.de.freebsd.org" },
{ " Germany #4", "ftp4.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #4", "ftp4.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.de.freebsd.org" },
{ " Germany #5", "ftp5.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #5", "ftp5.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.de.freebsd.org" },
{ " Germany #6", "ftp6.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #6", "ftp6.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.de.freebsd.org" },
{ " Germany #7", "ftp7.de.freebsd.org", NULL, dmenuSetVariable, NULL, { " Germany #7", "ftp7.de.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.de.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.de.freebsd.org" },
{ "Holland", "ftp.nl.freebsd.org", NULL, dmenuSetVariable, NULL, { "Holland", "ftp.nl.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.nl.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.nl.freebsd.org" },
{ " Hong Kong", "ftp.hk.super.net", NULL, dmenuSetVariable, NULL, { " Hong Kong", "ftp.hk.super.net", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.hk.super.net") }, VAR_FTP_PATH "=ftp://ftp.hk.super.net" },
{ "Iceland", "ftp.is.freebsd.org", NULL, dmenuSetVariable, NULL, { "Iceland", "ftp.is.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.is.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.is.freebsd.org" },
{ " Ireland", "ftp.ie.freebsd.org", NULL, dmenuSetVariable, NULL, { " Ireland", "ftp.ie.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ie.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ie.freebsd.org" },
{ " Israel", "ftp.il.freebsd.org", NULL, dmenuSetVariable, NULL, { " Israel", "ftp.il.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.il.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.il.freebsd.org" },
{ " Israel #2", "ftp2.il.freebsd.org", NULL, dmenuSetVariable, NULL, { " Israel #2", "ftp2.il.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.il.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.il.freebsd.org" },
{ "Japan", "ftp.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { "Japan", "ftp.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.jp.freebsd.org" },
{ " Japan #2", "ftp2.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #2", "ftp2.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.jp.freebsd.org" },
{ " Japan #3", "ftp3.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #3", "ftp3.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.jp.freebsd.org" },
{ " Japan #4", "ftp4.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #4", "ftp4.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.jp.freebsd.org" },
{ " Japan #5", "ftp5.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #5", "ftp5.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.jp.freebsd.org" },
{ " Japan #6", "ftp6.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #6", "ftp6.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.jp.freebsd.org" },
{ " Japan #7", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL, { " Japan #7", "ftp7.jp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp7.jp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp7.jp.freebsd.org" },
{ "Korea", "ftp.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { "Korea", "ftp.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.kr.freebsd.org" },
{ " Korea #2", "ftp2.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #2", "ftp2.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.kr.freebsd.org" },
{ " Korea #3", "ftp3.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #3", "ftp3.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.kr.freebsd.org" },
{ " Korea #4", "ftp4.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #4", "ftp4.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.kr.freebsd.org" },
{ " Korea #5", "ftp5.kr.freebsd.org", NULL, dmenuSetVariable, NULL, { " Korea #5", "ftp5.kr.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.kr.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.kr.freebsd.org" },
{ "New Zealand", "ftp.nz.freebsd.org", NULL, dmenuSetVariable, NULL, { "New Zealand", "ftp.nz.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.nz.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.nz.freebsd.org" },
{ "Poland", "ftp.pl.freebsd.org", NULL, dmenuSetVariable, NULL, { "Poland", "ftp.pl.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.pl.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.pl.freebsd.org" },
{ " Portugal", "ftp.pt.freebsd.org", NULL, dmenuSetVariable, NULL, { " Portugal", "ftp.pt.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.pt.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.pt.freebsd.org" },
{ " Portugal #2", "ftp2.pt.freebsd.org", NULL, dmenuSetVariable, NULL, { " Portugal #2", "ftp2.pt.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.pt.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.pt.freebsd.org" },
{ "Russia", "ftp.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { "Russia", "ftp.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.ru.freebsd.org" },
{ " Russia #2", "ftp2.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #2", "ftp2.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.ru.freebsd.org" },
{ " Russia #3", "ftp3.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #3", "ftp3.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.ru.freebsd.org" },
{ " Russia #4", "ftp4.ru.freebsd.org", NULL, dmenuSetVariable, NULL, { " Russia #4", "ftp4.ru.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.ru.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.ru.freebsd.org" },
{ "Slovak Republic", "ftp.sk.freebsd.org", NULL, dmenuSetVariable, NULL, { "Slovak Republic", "ftp.sk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.sk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.sk.freebsd.org" },
{ "Slovenia", "ftp.si.freebsd.org", NULL, dmenuSetVariable, NULL, { "Slovenia", "ftp.si.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.si.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.si.freebsd.org" },
{ " South Africa", "ftp.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa", "ftp.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.za.freebsd.org" },
{ " South Africa #2", "ftp2.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #2", "ftp2.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.za.freebsd.org" },
{ " South Africa #3", "ftp3.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #3", "ftp3.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.za.freebsd.org" },
{ " South Africa #4", "ftp4.za.freebsd.org", NULL, dmenuSetVariable, NULL, { " South Africa #4", "ftp4.za.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.za.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.za.freebsd.org" },
{ " Spain", "ftp.es.freebsd.org", NULL, dmenuSetVariable, NULL, { " Spain", "ftp.es.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.es.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.es.freebsd.org" },
{ " Spain #2", "ftp2.es.freebsd.org", NULL, dmenuSetVariable, NULL, { " Spain #2", "ftp2.es.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.es.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.es.freebsd.org" },
{ " Sweden", "ftp.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden", "ftp.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.se.freebsd.org" },
{ " Sweden #2", "ftp2.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden #2", "ftp2.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.se.freebsd.org" },
{ " Sweden #3", "ftp3.se.freebsd.org", NULL, dmenuSetVariable, NULL, { " Sweden #3", "ftp3.se.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.se.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.se.freebsd.org" },
{ "Taiwan", "ftp.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { "Taiwan", "ftp.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.tw.freebsd.org" },
{ " Taiwan #2", "ftp2.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #2", "ftp2.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.tw.freebsd.org" },
{ " Taiwan #3", "ftp3.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #3", "ftp3.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.tw.freebsd.org" },
{ " Taiwan #4", "ftp4.tw.freebsd.org", NULL, dmenuSetVariable, NULL, { " Taiwan #4", "ftp4.tw.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.tw.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.tw.freebsd.org" },
{ " Thailand", "ftp.nectec.or.th", NULL, dmenuSetVariable, NULL, { " Thailand", "ftp.nectec.or.th", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AS("=ftp://ftp.nectec.or.th/pub/mirrors/FreeBSD/") }, VAR_FTP_PATH "=ftp://ftp.nectec.or.th/pub/mirrors/FreeBSD/" },
{ "UK", "ftp.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { "UK", "ftp.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.uk.freebsd.org" },
{ " UK #2", "ftp2.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #2", "ftp2.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.uk.freebsd.org" },
{ " UK #3", "ftp3.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #3", "ftp3.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.uk.freebsd.org" },
{ " UK #4", "ftp4.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #4", "ftp4.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.uk.freebsd.org" },
{ " UK #5", "ftp5.uk.freebsd.org", NULL, dmenuSetVariable, NULL, { " UK #5", "ftp5.uk.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.uk.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.uk.freebsd.org" },
{ " USA", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA", "ftp.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp.freebsd.org" },
{ " USA #2", "ftp2.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #2", "ftp2.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp2.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp2.freebsd.org" },
{ " USA #3", "ftp3.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #3", "ftp3.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp3.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp3.freebsd.org" },
{ " USA #4", "ftp4.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #4", "ftp4.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp4.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp4.freebsd.org" },
{ " USA #5", "ftp5.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #5", "ftp5.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp5.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp5.freebsd.org" },
{ " USA #6", "ftp6.freebsd.org", NULL, dmenuSetVariable, NULL, { " USA #6", "ftp6.freebsd.org", NULL, dmenuSetVariable, NULL,
VAR_FTP_PATH _AP("=ftp://ftp6.freebsd.org") }, VAR_FTP_PATH "=ftp://ftp6.freebsd.org" },
{ NULL } } { NULL } }
}; };