Module Name: src
Committed By: martin
Date: Sun Nov 11 10:06:10 UTC 2018
Modified Files:
src/usr.sbin/sysinst: defs.h disks.c util.c
Log Message:
Skip floopies when selecting an install target, but do not add them to
the CD list when selecting an installation source device.
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/sysinst/disks.c
cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/sysinst/util.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.23 src/usr.sbin/sysinst/defs.h:1.24
--- src/usr.sbin/sysinst/defs.h:1.23 Sun Nov 11 09:17:10 2018
+++ src/usr.sbin/sysinst/defs.h Sun Nov 11 10:06:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: defs.h,v 1.23 2018/11/11 09:17:10 martin Exp $ */
+/* $NetBSD: defs.h,v 1.24 2018/11/11 10:06:09 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -482,7 +482,7 @@ void toplevel(void);
bool get_default_cdrom(char *, size_t);
int find_disks(const char *);
bool enumerate_disks(void *state,bool (*func)(void *state, const char *dev));
-bool is_cdrom_device(const char *dev);
+bool is_cdrom_device(const char *dev, bool as_target);
struct menudesc;
void fmt_fspart(struct menudesc *, int, void *);
Index: src/usr.sbin/sysinst/disks.c
diff -u src/usr.sbin/sysinst/disks.c:1.24 src/usr.sbin/sysinst/disks.c:1.25
--- src/usr.sbin/sysinst/disks.c:1.24 Sun Nov 11 09:17:10 2018
+++ src/usr.sbin/sysinst/disks.c Sun Nov 11 10:06:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: disks.c,v 1.24 2018/11/11 09:17:10 martin Exp $ */
+/* $NetBSD: disks.c,v 1.25 2018/11/11 10:06:09 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -369,7 +369,7 @@ get_default_cdrom_helper(void *state, co
{
struct default_cdrom_data *data = state;
- if (!is_cdrom_device(dev))
+ if (!is_cdrom_device(dev, false))
return true;
strlcpy(data->device, dev, data->max_len);
@@ -511,11 +511,12 @@ is_ffs_wedge(const char *dev)
/*
* Does this device match an entry in our default CDROM device list?
+ * If looking for install targets, we also flag floopy devices.
*/
bool
-is_cdrom_device(const char *dev)
+is_cdrom_device(const char *dev, bool as_target)
{
- static const char *cdrom_devices[] = {
+ static const char *target_devices[] = {
#ifdef CD_NAMES
CD_NAMES
#endif
@@ -530,8 +531,15 @@ is_cdrom_device(const char *dev)
#endif
0
};
+ static const char *src_devices[] = {
+#ifdef CD_NAMES
+ CD_NAMES ,
+#endif
+ 0
+ };
- for (const char **dev_pat = cdrom_devices; *dev_pat; dev_pat++)
+ for (const char **dev_pat = as_target ? target_devices : src_devices;
+ *dev_pat; dev_pat++)
if (fnmatch(*dev_pat, dev, 0) == 0)
return true;
@@ -593,7 +601,7 @@ get_disks_helper(void *arg, const char *
struct disklabel l;
/* is this a CD device? */
- if (is_cdrom_device(dev))
+ if (is_cdrom_device(dev, true))
return true;
strlcpy(state->dd->dd_name, dev, sizeof state->dd->dd_name - 2);
Index: src/usr.sbin/sysinst/util.c
diff -u src/usr.sbin/sysinst/util.c:1.15 src/usr.sbin/sysinst/util.c:1.16
--- src/usr.sbin/sysinst/util.c:1.15 Thu Nov 8 20:29:37 2018
+++ src/usr.sbin/sysinst/util.c Sun Nov 11 10:06:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: util.c,v 1.15 2018/11/08 20:29:37 martin Exp $ */
+/* $NetBSD: util.c,v 1.16 2018/11/11 10:06:09 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -431,7 +431,7 @@ get_available_cds_helper(void *arg, cons
struct disklabel label;
int part, dev, error, sess, ready;
- if (!is_cdrom_device(device))
+ if (!is_cdrom_device(device, false))
return true;
sprintf(dname, "/dev/r%s%c", device, 'a'+RAW_PART);