Module Name:    src
Committed By:   martin
Date:           Tue Sep 11 08:05:18 UTC 2018

Modified Files:
        src/usr.sbin/sysinst: defs.h main.c menus.mi msg.mi.de msg.mi.en
            msg.mi.es msg.mi.fr msg.mi.pl net.c

Log Message:
Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/sysinst/main.c \
    src/usr.sbin/sysinst/msg.mi.de src/usr.sbin/sysinst/msg.mi.es
cvs rdiff -u -r1.13 -r1.14 src/usr.sbin/sysinst/menus.mi
cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/sysinst/msg.mi.en
cvs rdiff -u -r1.10 -r1.11 src/usr.sbin/sysinst/msg.mi.fr
cvs rdiff -u -r1.9 -r1.10 src/usr.sbin/sysinst/msg.mi.pl
cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/sysinst/net.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/sysinst/defs.h
diff -u src/usr.sbin/sysinst/defs.h:1.15 src/usr.sbin/sysinst/defs.h:1.16
--- src/usr.sbin/sysinst/defs.h:1.15	Sat Sep  8 20:01:19 2018
+++ src/usr.sbin/sysinst/defs.h	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: defs.h,v 1.15 2018/09/08 20:01:19 martin Exp $	*/
+/*	$NetBSD: defs.h,v 1.16 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -340,6 +340,10 @@ int  clean_xfer_dir;
 #define SYSINST_FTP_HOST	"ftp.NetBSD.org"
 #endif
 
+#if !defined(SYSINST_HTTP_HOST)
+#define SYSINST_HTTP_HOST	"cdn.NetBSD.org"
+#endif
+
 #if !defined(SYSINST_FTP_DIR)
 #if defined(NETBSD_OFFICIAL_RELEASE)
 #define SYSINST_FTP_DIR		"pub/NetBSD/NetBSD-" REL
@@ -355,6 +359,9 @@ int  clean_xfer_dir;
 #if !defined(SYSINST_PKG_HOST)
 #define SYSINST_PKG_HOST	"ftp.NetBSD.org"
 #endif
+#if !defined(SYSINST_PKG_HTTP_HOST)
+#define SYSINST_PKG_HTTP_HOST	"cdn.NetBSD.org"
+#endif
 
 #if !defined(SYSINST_PKG_DIR)
 #define SYSINST_PKG_DIR		"pub/pkgsrc/packages/NetBSD"
@@ -363,6 +370,9 @@ int  clean_xfer_dir;
 #if !defined(SYSINST_PKGSRC_HOST)
 #define SYSINST_PKGSRC_HOST	SYSINST_PKG_HOST
 #endif
+#if !defined(SYSINST_PKGSRC_HTTP_HOST)
+#define SYSINST_PKGSRC_HTTP_HOST	SYSINST_PKG_HTTP_HOST
+#endif
 
 /* Abs. path we extract binary sets from */
 char ext_dir_bin[STRSIZE];
@@ -388,13 +398,17 @@ char pkgsrc_dir[STRSIZE];
 /* User shell */
 const char *ushell;
 
+#define	XFER_FTP	0
+#define	XFER_HTTP	1
+#define	XFER_MAX	XFER_HTTP
+
 struct ftpinfo {
-    char host[STRSIZE];
+    char xfer_host[XFER_MAX+1][STRSIZE];
     char dir[STRSIZE] ;
     char user[SSTRSIZE];
     char pass[STRSIZE];
     char proxy[STRSIZE];
-    const char *xfer_type;		/* "ftp" or "http" */
+    unsigned int xfer;	/* XFER_FTP for "ftp" or XFER_HTTP for "http" */
 };
 
 /* use the same struct for sets ftp and to build pkgpath */
@@ -500,12 +514,13 @@ int	get_real_geom(const char *, struct d
 /* from net.c */
 extern int network_up;
 extern char net_namesvr[STRSIZE];
-int	get_via_ftp(const char *);
+int	get_via_ftp(unsigned int);
 int	get_via_nfs(void);
 int	config_network(void);
 void	mnt_net_config(void);
 void	make_url(char *, struct ftpinfo *, const char *);
 int	get_pkgsrc(void);
+const char *url_proto(unsigned int);
 
 /* From run.c */
 int	collect(int, char **, const char *, ...) __printflike(3, 4);

Index: src/usr.sbin/sysinst/main.c
diff -u src/usr.sbin/sysinst/main.c:1.7 src/usr.sbin/sysinst/main.c:1.8
--- src/usr.sbin/sysinst/main.c:1.7	Thu May  4 16:26:10 2017
+++ src/usr.sbin/sysinst/main.c	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.7 2017/05/04 16:26:10 sevan Exp $	*/
+/*	$NetBSD: main.c,v 1.8 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -91,7 +91,8 @@ static const struct f_arg fflagopts[] = 
 	{"xfer dir", "/usr/INSTALL", xfer_dir, sizeof xfer_dir},
 	{"ext dir", "", ext_dir_bin, sizeof ext_dir_bin},
 	{"ext src dir", "", ext_dir_src, sizeof ext_dir_src},
-	{"ftp host", SYSINST_FTP_HOST, ftp.host, sizeof ftp.host},
+	{"ftp host", SYSINST_FTP_HOST, ftp.xfer_host[XFER_FTP], sizeof ftp.xfer_host[XFER_FTP]},
+	{"http host", SYSINST_HTTP_HOST, ftp.xfer_host[XFER_HTTP], sizeof ftp.xfer_host[XFER_HTTP]},
 	{"ftp dir", SYSINST_FTP_DIR, ftp.dir, sizeof ftp.dir},
 	{"ftp prefix", "/" MACH "/binary/sets", set_dir_bin, sizeof set_dir_bin},
 	{"ftp src prefix", "/source/sets", set_dir_src, sizeof set_dir_src},
@@ -108,13 +109,15 @@ static const struct f_arg fflagopts[] = 
 	{"targetroot mount", "/targetroot", targetroot_mnt, sizeof targetroot_mnt},
 	{"dist postfix", ".tgz", dist_postfix, sizeof dist_postfix},
 	{"diskname", "mydisk", bsddiskname, sizeof bsddiskname},
-	{"pkg host", SYSINST_PKG_HOST, pkg.host, sizeof pkg.host},
+	{"pkg host", SYSINST_PKG_HOST, pkg.xfer_host[XFER_FTP], sizeof pkg.xfer_host[XFER_FTP]},
+	{"pkg http host", SYSINST_PKG_HTTP_HOST, pkg.xfer_host[XFER_HTTP], sizeof pkg.xfer_host[XFER_HTTP]},
 	{"pkg dir", SYSINST_PKG_DIR, pkg.dir, sizeof pkg.dir},
 	{"pkg prefix", "/" MACH "/" REL "/All", pkg_dir, sizeof pkg_dir},
 	{"pkg user", "ftp", pkg.user, sizeof pkg.user},
 	{"pkg pass", "", pkg.pass, sizeof pkg.pass},
 	{"pkg proxy", "", pkg.proxy, sizeof pkg.proxy},
-	{"pkgsrc host", SYSINST_PKGSRC_HOST, pkgsrc.host, sizeof pkgsrc.host},
+	{"pkgsrc host", SYSINST_PKGSRC_HOST, pkgsrc.xfer_host[XFER_FTP], sizeof pkgsrc.xfer_host[XFER_FTP]},
+	{"pkgsrc http host", SYSINST_PKGSRC_HTTP_HOST, pkgsrc.xfer_host[XFER_HTTP], sizeof pkgsrc.xfer_host[XFER_HTTP]},
 	{"pkgsrc dir", "", pkgsrc.dir, sizeof pkgsrc.dir},
 	{"pkgsrc prefix", "pub/pkgsrc/stable", pkgsrc_dir, sizeof pkgsrc_dir},
 	{"pkgsrc user", "ftp", pkgsrc.user, sizeof pkgsrc.user},
@@ -149,7 +152,7 @@ init(void)
 			strlcpy(arg->var, arg->dflt, arg->size);
 	}
 	strlcpy(pm_new->bsddiskname, bsddiskname, sizeof pm_new->bsddiskname);
-	pkg.xfer_type = pkgsrc.xfer_type = "http";
+	pkg.xfer = pkgsrc.xfer = XFER_HTTP;
 	
 	clr_arg.bg=COLOR_BLUE;
 	clr_arg.fg=COLOR_WHITE;
Index: src/usr.sbin/sysinst/msg.mi.de
diff -u src/usr.sbin/sysinst/msg.mi.de:1.7 src/usr.sbin/sysinst/msg.mi.de:1.8
--- src/usr.sbin/sysinst/msg.mi.de:1.7	Sun Jun  3 13:16:30 2018
+++ src/usr.sbin/sysinst/msg.mi.de	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.de,v 1.7 2018/06/03 13:16:30 martin Exp $	*/
+/*	$NetBSD: msg.mi.de,v 1.8 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -988,6 +988,7 @@ message Base_dir {Basispfad}
 message Set_dir_bin {Binärpaket-Verzeichnis}
 message Set_dir_src {Quelltext-Verzeichnis}
 message Xfer_dir {Zwischenspeicher}
+message transfer_method {Download via}
 message User {Benutzer}
 message Password {Passwort}
 message Proxy {Proxy}
Index: src/usr.sbin/sysinst/msg.mi.es
diff -u src/usr.sbin/sysinst/msg.mi.es:1.7 src/usr.sbin/sysinst/msg.mi.es:1.8
--- src/usr.sbin/sysinst/msg.mi.es:1.7	Sun Jun  3 13:16:30 2018
+++ src/usr.sbin/sysinst/msg.mi.es	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.es,v 1.7 2018/06/03 13:16:30 martin Exp $	*/
+/*	$NetBSD: msg.mi.es,v 1.8 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -954,6 +954,7 @@ message Base_dir {Directorio base}
 message Set_dir_src {Directorio de conjuntos binary} /* fix XLAT */
 message Set_dir_bin {Directorio de conjuntos source} /* fix XLAT */
 message Xfer_dir {Directorio a transferir a}
+message transfer_method {Download via}
 message User {Usuario}
 message Password {Contraseña}
 message Proxy {Proxy}

Index: src/usr.sbin/sysinst/menus.mi
diff -u src/usr.sbin/sysinst/menus.mi:1.13 src/usr.sbin/sysinst/menus.mi:1.14
--- src/usr.sbin/sysinst/menus.mi:1.13	Sun Jun  3 13:23:58 2018
+++ src/usr.sbin/sysinst/menus.mi	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: menus.mi,v 1.13 2018/06/03 13:23:58 martin Exp $	*/
+/*	$NetBSD: menus.mi,v 1.14 2018/09/11 08:05:18 martin Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -327,8 +327,8 @@ menu sizechoice, sub menu, y=0, title MS
 
 menu distmedium, title MSG_Select_medium, y=-5;
 	option MSG_cdrom,     exit, action { *(int *)arg = get_via_cdrom(); };
-	option MSG_http,      exit, action { *(int *)arg = get_via_ftp("http"); };
-	option MSG_ftp,	      exit, action { *(int *)arg = get_via_ftp("ftp"); };
+	option MSG_http,      exit, action { *(int *)arg = get_via_ftp(XFER_HTTP); };
+	option MSG_ftp,	      exit, action { *(int *)arg = get_via_ftp(XFER_FTP); };
 	option MSG_nfs,	      exit, action { *(int *)arg = get_via_nfs(); };
 	option MSG_floppy,    exit, action { *(int *)arg = get_via_floppy(); };
 	option MSG_local_fs,  exit, action { *(int *)arg = get_via_localfs(); };
@@ -347,9 +347,9 @@ menu distset, title MSG_Select_your_dist
 
 menu ftpsource, y=-4, x=0, w=70, no box, no clear,
 	    exitstring MSG_Get_Distribution;
-	display action { msg_display(MSG_ftpsource, ((arg_rv*)arg)->arg); };
-	option {src_legend(menu, MSG_Host, ftp.host);},
-		action { src_prompt(MSG_Host, ftp.host, sizeof ftp.host); };
+	display action { msg_display(MSG_ftpsource, url_proto((uintptr_t)((arg_rv*)arg)->arg)); };
+	option {src_legend(menu, MSG_Host, ftp.xfer_host[(uintptr_t)((arg_rv*)arg)->arg]);},
+		action { src_prompt(MSG_Host, ftp.xfer_host[(uintptr_t)((arg_rv*)arg)->arg], sizeof ftp.xfer_host[(uintptr_t)((arg_rv*)arg)->arg]); };
 	option {src_legend(menu, MSG_Base_dir, ftp.dir);},
 		action { src_prompt(MSG_Base_dir, ftp.dir, sizeof ftp.dir); };
 	option {src_legend(menu, MSG_Set_dir_bin, set_dir_bin);},
@@ -533,8 +533,8 @@ menu zeroconf, title "Zeroconf", no clea
 menu binpkg, y=-4, x=0, w=70, no box, no clear,
 	    exitstring MSG_Install_pkgin;
 	display action { msg_display(MSG_pkgpath); };
-	option {src_legend(menu, MSG_Host, pkg.host);},
-		action { src_prompt(MSG_Host, pkg.host, sizeof pkg.host); };
+	option {src_legend(menu, MSG_Host, pkg.xfer_host[pkg.xfer]);},
+		action { src_prompt(MSG_Host, pkg.xfer_host[pkg.xfer], sizeof pkg.xfer_host[pkg.xfer]); };
 	option {src_legend(menu, MSG_Base_dir, pkg.dir);},
 		action { src_prompt(MSG_Base_dir, pkg.dir, sizeof pkg.dir); };
 	option {src_legend(menu, MSG_Pkg_dir, pkg_dir);},
@@ -573,14 +573,16 @@ menu binpkg, y=-4, x=0, w=70, no box, no
 			config_network();
 			mnt_net_config();
 		};
+	option {src_legend(menu, MSG_transfer_method, url_proto(pkg.xfer));},
+		action { pkg.xfer = (pkg.xfer+1) % (XFER_MAX+1); };
 	option MSG_quit_pkgs_install, exit, action { ((arg_rv*)arg)->rv = SET_SKIP; };
 
 menu pkgsrc, y=-4, x=0, w=70, no box, no clear,
 	    exit, exitstring MSG_Install_pkgsrc;
 	display action { msg_display(MSG_pkgsrc); };
-	option {src_legend(menu, MSG_Host, pkgsrc.host);},
-		action { src_prompt(MSG_Host, pkgsrc.host,
-			sizeof pkgsrc.host); };
+	option {src_legend(menu, MSG_Host, pkgsrc.xfer_host[pkgsrc.xfer]);},
+		action { src_prompt(MSG_Host, pkgsrc.xfer_host[pkgsrc.xfer],
+			sizeof pkgsrc.xfer_host[pkgsrc.xfer]); };
 	option {src_legend(menu, MSG_Pkgsrc_dir, pkgsrc_dir);},
 		action { src_prompt(MSG_Pkgsrc_dir, pkgsrc_dir, sizeof pkgsrc_dir); };
 	option {src_legend(menu, MSG_User, pkgsrc.user);},
@@ -612,6 +614,8 @@ menu pkgsrc, y=-4, x=0, w=70, no box, no
 	option {src_legend(menu, MSG_delete_xfer_file,
 			clean_xfer_dir ? MSG_Yes : MSG_No);},
 		action {clean_xfer_dir = ask_yesno(MSG_delete_xfer_file); };
+	option {src_legend(menu, MSG_transfer_method, url_proto(pkgsrc.xfer));},
+		action { pkgsrc.xfer = (pkgsrc.xfer+1) % (XFER_MAX+1); };
 	option MSG_quit_pkgsrc, exit, action { *((int*)arg) = SET_SKIP;};
 
 menu usersh, title MSG_User_shell, no clear;

Index: src/usr.sbin/sysinst/msg.mi.en
diff -u src/usr.sbin/sysinst/msg.mi.en:1.11 src/usr.sbin/sysinst/msg.mi.en:1.12
--- src/usr.sbin/sysinst/msg.mi.en:1.11	Sun Jun  3 13:16:30 2018
+++ src/usr.sbin/sysinst/msg.mi.en	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.en,v 1.11 2018/06/03 13:16:30 martin Exp $	*/
+/*	$NetBSD: msg.mi.en,v 1.12 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -923,6 +923,7 @@ message Base_dir {Base directory}
 message Set_dir_bin {Binary set directory}
 message Set_dir_src {Source set directory}
 message Xfer_dir {Transfer directory}
+message transfer_method {Download via}
 message User {User}
 message Password {Password}
 message Proxy {Proxy}

Index: src/usr.sbin/sysinst/msg.mi.fr
diff -u src/usr.sbin/sysinst/msg.mi.fr:1.10 src/usr.sbin/sysinst/msg.mi.fr:1.11
--- src/usr.sbin/sysinst/msg.mi.fr:1.10	Sun Jun  3 13:16:30 2018
+++ src/usr.sbin/sysinst/msg.mi.fr	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.fr,v 1.10 2018/06/03 13:16:30 martin Exp $	*/
+/*	$NetBSD: msg.mi.fr,v 1.11 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -1023,6 +1023,7 @@ message Base_dir {Répertoire de base}
 message Set_dir_bin {Répertoire des composants binaire}
 message Set_dir_src {Répertoire des composants source}
 message Xfer_dir {Répertoire de transfert}
+message transfer_method {Download via}
 message User {Utilisateur}
 message Password {Mot de passe}
 message Proxy {Proxy}

Index: src/usr.sbin/sysinst/msg.mi.pl
diff -u src/usr.sbin/sysinst/msg.mi.pl:1.9 src/usr.sbin/sysinst/msg.mi.pl:1.10
--- src/usr.sbin/sysinst/msg.mi.pl:1.9	Sun Jun  3 13:16:30 2018
+++ src/usr.sbin/sysinst/msg.mi.pl	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.pl,v 1.9 2018/06/03 13:16:30 martin Exp $	*/
+/*	$NetBSD: msg.mi.pl,v 1.10 2018/09/11 08:05:18 martin Exp $	*/
 /*	Based on english version: */
 /*	NetBSD: msg.mi.pl,v 1.36 2004/04/17 18:55:35 atatat Exp       */
 
@@ -926,6 +926,7 @@ message Base_dir {Katalog}
 message Set_dir_src {Katalog pakiet binary} /* fix XLAT */
 message Set_dir_bin {Katalog pakiet source} /* fix XLAT */
 message Xfer_dir {Transfer Katalog} /* fix XLAT */
+message transfer_method {Download via}
 message User {Uzytkownik}
 message Password {Haslo}
 message Proxy {Proxy}

Index: src/usr.sbin/sysinst/net.c
diff -u src/usr.sbin/sysinst/net.c:1.24 src/usr.sbin/sysinst/net.c:1.25
--- src/usr.sbin/sysinst/net.c:1.24	Fri May 18 12:23:22 2018
+++ src/usr.sbin/sysinst/net.c	Tue Sep 11 08:05:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: net.c,v 1.24 2018/05/18 12:23:22 joerg Exp $	*/
+/*	$NetBSD: net.c,v 1.25 2018/09/11 08:05:18 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -849,6 +849,17 @@ done:
 	return network_up;
 }
 
+const char *
+url_proto(unsigned int xfer)
+{
+	switch (xfer) {
+	case XFER_FTP:	return "ftp";
+	case XFER_HTTP:	return "http";
+	}
+
+	return "";
+}
+
 void
 make_url(char *urlbuffer, struct ftpinfo *f, const char *dir)
 {
@@ -892,8 +903,8 @@ make_url(char *urlbuffer, struct ftpinfo
 			ftp_dir_encoded + sizeof ftp_dir_encoded,
 			RFC1738_SAFE_LESS_SHELL_PLUS_SLASH, 0);
 
-	snprintf(urlbuffer, STRSIZE, "%s://%s%s/%s", f->xfer_type,
-	    ftp_user_encoded, f->host, ftp_dir_encoded);
+	snprintf(urlbuffer, STRSIZE, "%s://%s%s/%s", url_proto(f->xfer),
+	    ftp_user_encoded, f->xfer_host[f->xfer], ftp_dir_encoded);
 }
 
 
@@ -959,12 +970,12 @@ get_pkgsrc(void)
 }
 
 int
-get_via_ftp(const char *xfer_type)
+get_via_ftp(unsigned int xfer)
 {
 	arg_rv arg;
 
 	arg.rv = -1;
-	arg.arg = __UNCONST(xfer_type);
+	arg.arg = (void*)(uintptr_t)(xfer);
 	process_menu(MENU_ftpsource, &arg);
 	
 	if (arg.rv == SET_RETRY)
@@ -972,7 +983,7 @@ get_via_ftp(const char *xfer_type)
 
 	/* We'll fetch each file just before installing it */
 	fetch_fn = ftp_fetch;
-	ftp.xfer_type = xfer_type;
+	ftp.xfer = xfer;
 	snprintf(ext_dir_bin, sizeof ext_dir_bin, "%s/%s", target_prefix(),
 	    xfer_dir + (*xfer_dir == '/'));
 	snprintf(ext_dir_src, sizeof ext_dir_src, "%s/%s", target_prefix(),

Reply via email to