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(),