aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2012-01-25 02:15:40 +0000
committerEd Maste <emaste@FreeBSD.org>2012-01-25 02:15:40 +0000
commit3129859c9285ce9fa7e088f3b0619d79a895ee9b (patch)
tree209e3e4ffc74be26b845540a12e20ca5600e845d /usr.sbin
parent640372388086834e56fe505e287c42ff1580bbd6 (diff)
downloadsrc-3129859c9285ce9fa7e088f3b0619d79a895ee9b.tar.gz
src-3129859c9285ce9fa7e088f3b0619d79a895ee9b.zip
Clean up reinstall option and remove duplicate code
- Move the reinstall logic to be before menus are initialised (menus are not needed when reinstalling a zonefile). - Remove unnecessary re-initialization of path_db. - Update variable name and error message because we now use the zone name relative to /usr/share/zoneinfo, not the full path. pr: bin/164041 Submitted by: Devin Teske <dteske vicor com> MFC after: 1 week
Notes
Notes: svn path=/head/; revision=230520
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/tzsetup/tzsetup.c35
1 files changed, 12 insertions, 23 deletions
diff --git a/usr.sbin/tzsetup/tzsetup.c b/usr.sbin/tzsetup/tzsetup.c
index 3219439b6213..5da9d7224a5d 100644
--- a/usr.sbin/tzsetup/tzsetup.c
+++ b/usr.sbin/tzsetup/tzsetup.c
@@ -951,32 +951,16 @@ main(int argc, char **argv)
/* Override the user-supplied umask. */
(void)umask(S_IWGRP | S_IWOTH);
- read_iso3166_table();
- read_zones();
- sort_countries();
- make_menus();
-
if (reinstall == 1) {
FILE *f;
- char zonefile[MAXPATHLEN];
- char path_db[MAXPATHLEN];
-
- zonefile[0] = '\0';
- path_db[0] = '\0';
- if (chrootenv != NULL) {
- sprintf(zonefile, "%s/", chrootenv);
- sprintf(path_db, "%s/", chrootenv);
- }
- strcat(zonefile, _PATH_ZONEINFO);
- strcat(zonefile, "/");
- strcat(path_db, _PATH_DB);
+ char zoneinfo[MAXPATHLEN];
if ((f = fopen(path_db, "r")) != NULL) {
- if (fgets(zonefile, sizeof(zonefile), f) != NULL) {
- zonefile[sizeof(zonefile) - 1] = 0;
- if (strlen(zonefile) > 0) {
- zonefile[strlen(zonefile) - 1] = 0;
- rv = install_zoneinfo(zonefile);
+ if (fgets(zoneinfo, sizeof(zoneinfo), f) != NULL) {
+ zoneinfo[sizeof(zoneinfo) - 1] = 0;
+ if (strlen(zoneinfo) > 0) {
+ zoneinfo[strlen(zoneinfo) - 1] = 0;
+ rv = install_zoneinfo(zoneinfo);
exit(rv & ~DITEM_LEAVE_MENU);
}
errx(1, "Error reading %s.\n", path_db);
@@ -984,7 +968,7 @@ main(int argc, char **argv)
fclose(f);
errx(1,
"Unable to determine earlier installed zoneinfo "
- "file. Check %s", path_db);
+ "name. Check %s", path_db);
}
errx(1, "Cannot open %s for reading. Does it exist?", path_db);
}
@@ -1004,6 +988,11 @@ main(int argc, char **argv)
/* FALLTHROUGH */
}
+ read_iso3166_table();
+ read_zones();
+ sort_countries();
+ make_menus();
+
init_dialog(stdin, stdout);
if (skiputc == 0) {
DIALOG_VARS save_vars;