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