Make upgrade potentially a little less interactive.

Add and document new loadConfig function (sort of like a script #include).
Make TCP/IP setup far less chatty when it doesn't need to be.
This commit is contained in:
Jordan K. Hubbard 1997-09-08 11:09:11 +00:00
parent 6514ad5540
commit 321a8d519a
10 changed files with 423 additions and 27 deletions

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: dispatch.c,v 1.20 1997/07/16 05:22:40 jkh Exp $
* $Id: dispatch.c,v 1.21 1997/08/11 13:08:18 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -39,7 +39,8 @@
static int _shutdown(dialogMenuItem *unused);
static int _systemExecute(dialogMenuItem *unused);
static int _loadConfig(dialogMenuItem *unused);
static struct _word {
char *name;
int (*handler)(dialogMenuItem *self);
@ -82,6 +83,7 @@ static struct _word {
{ "installFixitFloppy", installFixitFloppy },
{ "installFilesystems", installFilesystems },
{ "installVarDefaults", installVarDefaults },
{ "loadConfig", _loadConfig },
{ "mediaSetCDROM", mediaSetCDROM },
{ "mediaSetFloppy", mediaSetFloppy },
{ "mediaSetDOS", mediaSetDOS },
@ -140,6 +142,35 @@ _systemExecute(dialogMenuItem *unused)
return DITEM_FAILURE;
}
static int
_loadConfig(dialogMenuItem *unused)
{
FILE *fp;
char *cp, buf[BUFSIZ];
int i = DITEM_SUCCESS;
cp = variable_get("file");
if ((!cp || (fp = fopen(cp, "r")) == NULL) &&
(fp = fopen("install.cfg", "r")) == NULL &&
(fp = fopen("/stand/install.cfg", "r")) == NULL &&
(fp = fopen("/tmp/install.cfg", "r")) == NULL) {
msgConfirm("Unable to locate an install.cfg file in $CWD, /stand or /tmp.");
i = DITEM_FAILURE;
}
else {
variable_set2(VAR_NONINTERACTIVE, "YES");
while (fgets(buf, sizeof buf, fp)) {
if ((i = DITEM_STATUS(dispatchCommand(buf))) != DITEM_SUCCESS) {
msgDebug("Command `%s' failed - rest of script aborted.\n", buf);
break;
}
}
}
fclose(fp);
variable_unset(VAR_NONINTERACTIVE);
return i;
}
/* For a given string, call it or spit out an undefined command diagnostic */
int
dispatchCommand(char *str)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: installUpgrade.c,v 1.48 1997/04/28 10:31:14 jkh Exp $
* $Id: installUpgrade.c,v 1.49 1997/05/09 07:44:19 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -45,6 +45,8 @@
#include <unistd.h>
#include <sys/mount.h>
static int installUpgradeNonInteractive(dialogMenuItem *self);
typedef struct _hitList {
enum { JUST_COPY, CALL_HANDLER } action ;
char *name;
@ -153,6 +155,9 @@ installUpgrade(dialogMenuItem *self)
char *saved_etc;
Boolean extractingBin = TRUE;
if (variable_get(VAR_NONINTERACTIVE))
return installUpgradeNonInteractive(self);
variable_set2(SYSTEM_STATE, "upgrade");
systemDisplayHelp("upgrade");
@ -276,7 +281,7 @@ installUpgrade(dialogMenuItem *self)
if (saved_etc) {
msgNotify("Preserving /etc directory..");
if (vsystem("tar -cf - -C /etc . | tar -xpf - -C %s", saved_etc))
if (vsystem("tar -cBpf - -C /etc . | tar -xBpf - -C %s", saved_etc))
if (msgYesNo("Unable to backup your /etc into %s.\n"
"Do you want to continue anyway?", saved_etc) != 0)
return DITEM_FAILURE | DITEM_RESTORE;
@ -351,3 +356,134 @@ installUpgrade(dialogMenuItem *self)
"the new system, just exit the installation.");
return DITEM_SUCCESS | DITEM_REDRAW;
}
static int
installUpgradeNonInteractive(dialogMenuItem *self)
{
char *saved_etc;
Boolean extractingBin = TRUE;
variable_set2(SYSTEM_STATE, "upgrade");
/* Make sure at least BIN is selected */
Dists |= DIST_BIN;
if (RunningAsInit) {
Device **devs;
int i, cnt;
char *cp;
cp = variable_get(VAR_DISK);
devs = deviceFind(cp, DEVICE_TYPE_DISK);
cnt = deviceCount(devs);
if (!cnt) {
msgConfirm("No disks found! Please verify that your disk controller is being\n"
"properly probed at boot time. See the Hardware Guide on the\n"
"Documentation menu for clues on diagnosing this type of problem.");
return DITEM_FAILURE;
}
else {
/* Enable all the drives befor we start */
for (i = 0; i < cnt; i++)
devs[i]->enabled = TRUE;
}
msgConfirm("OK. First, we're going to go to the disk label editor. In this editor\n"
"you will be expected to Mount any partitions you're interested in\n"
"upgrading. DO NOT set the Newfs flag to Y on anything in the label editor\n"
"unless you're absolutely sure you know what you're doing! In this\n"
"instance, you'll be using the label editor as little more than a fancy\n"
"screen-oriented partition mounting tool.\n\n"
"Once you're done in the label editor, press Q to return here for the next\n"
"step.");
if (DITEM_STATUS(diskLabelEditor(self)) == DITEM_FAILURE) {
msgConfirm("The disk label editor returned an error status. Upgrade operation\n"
"aborted.");
return DITEM_FAILURE | DITEM_RESTORE;
}
/* Don't write out MBR info */
variable_set2(DISK_PARTITIONED, "written");
if (DITEM_STATUS(diskLabelCommit(self)) == DITEM_FAILURE) {
msgConfirm("Not all file systems were properly mounted. Upgrade operation\n"
"aborted.");
variable_unset(DISK_PARTITIONED);
return DITEM_FAILURE | DITEM_RESTORE;
}
if (extractingBin) {
msgNotify("chflags'ing old binaries - please wait.");
(void)vsystem("chflags -R noschg /mnt/");
}
msgNotify("Updating /stand on root filesystem");
(void)vsystem("find -x /stand | cpio %s -pdum /mnt", cpioVerbosity());
if (DITEM_STATUS(chroot("/mnt")) == DITEM_FAILURE) {
msgConfirm("Unable to chroot to /mnt - something is wrong with the\n"
"root partition or the way it's mounted if this doesn't work.");
variable_unset(DISK_PARTITIONED);
return DITEM_FAILURE | DITEM_RESTORE;
}
chdir("/");
systemCreateHoloshell();
}
if (!mediaVerify() || !mediaDevice->init(mediaDevice)) {
msgNotify("Upgrade: Couldn't initialize media.");
return DITEM_FAILURE | DITEM_RESTORE;
}
saved_etc = "/usr/tmp/etc";
Mkdir(saved_etc);
msgNotify("Preserving /etc directory..");
if (vsystem("tar -cpBf - -C /etc . | tar -xpBf - -C %s", saved_etc)) {
msgNotify("Unable to backup your /etc into %s.", saved_etc);
return DITEM_FAILURE | DITEM_RESTORE;
}
if (file_readable("/kernel")) {
msgNotify("Moving old kernel to /kernel.prev");
system("chflags noschg /kernel && mv /kernel /kernel.prev");
}
msgNotify("Beginning extraction of distributions..");
if (DITEM_STATUS(distExtractAll(self)) == DITEM_FAILURE) {
msgConfirm("Hmmmm. We couldn't even extract the bin distribution. This upgrade\n"
"should be considered a failure and started from the beginning, sorry!\n"
"The system will reboot now.");
dialog_clear();
systemShutdown(1);
}
else if (Dists) {
if (!(Dists & DIST_BIN)) {
msgNotify("The extraction process seems to have had some problems, but we got most\n"
"of the essentials. We'll treat this as a warning since it may have been\n"
"only non-essential distributions which failed to upgrade.");
}
else {
msgConfirm("Hmmmm. We couldn't even extract the bin distribution. This upgrade\n"
"should be considered a failure and started from the beginning, sorry!\n"
"The system will reboot now.");
dialog_clear();
systemShutdown(1);
}
}
msgNotify("OK, now it's time to go pound on your root a little bit to create all the\n"
"/dev entries and such that a new system expects to see. I'll also perform a\n"
"few \"fixup\" operations to repair the effects of splatting a bin distribution\n"
"on top of an existing system..");
if (DITEM_STATUS(installFixup(self)) == DITEM_FAILURE) {
msgNotify("Hmmmmm. The fixups don't seem to have been very happy.\n"
"You may wish to examine the system a little more closely when\n"
"it comes time to merge your /etc customizations back.");
}
msgNotify("First stage of upgrade completed successfully.");
if (vsystem("tar -cpBf - -C %s . | tar --unlink -xpBf - -C /etc", saved_etc)) {
msgNotify("Unable to resurrect your old /etc!");
return DITEM_FAILURE | DITEM_RESTORE;
}
return DITEM_SUCCESS | DITEM_REDRAW;
}

View File

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $Id: sysinstall.8,v 1.2 1997/08/11 13:20:38 jkh Exp $
.\" $Id: sysinstall.8,v 1.3 1997/08/18 21:10:26 jkh Exp $
.\"
.Dd August 9, 1997
.Dt SYSINSTALL 8
@ -608,6 +608,15 @@ Initialize all variables to their defaults, overriding any
previous settings.
.Pp
\fBVariables:\fR None
.It loadConfig
Sort of like an #include statement, it allows you to load one
configuration file from another.
.Pp
\fBVariables:\fR
.Bl -tag -width indent
.It file
The fully pathname of the file to load.
.El
.It mediaSetCDROM
Select a FreeBSD CDROM as the installation media.
.Pp

View File

@ -1,5 +1,5 @@
/*
* $Id: tcpip.c,v 1.68 1997/06/12 09:01:38 jkh Exp $
* $Id: tcpip.c,v 1.69 1997/06/18 05:11:37 jkh Exp $
*
* Copyright (c) 1995
* Gary J Palmer. All rights reserved.
@ -156,10 +156,6 @@ tcpOpenDialog(Device *devp)
char *tmp;
char title[80];
if (!RunningAsInit) {
if (!msgYesNo("Running multi-user, assume that the network is already configured?"))
return DITEM_SUCCESS;
}
/* Initialise vars from previous device values */
if (devp->private) {
DevInfo *di = (DevInfo *)devp->private;
@ -346,9 +342,15 @@ tcpDeviceSelect(void)
cnt = deviceCount(devs);
rval = NULL;
if (!cnt)
if (!cnt) {
msgConfirm("No network devices available!");
else if (cnt == 1) {
return NULL;
}
else if (!RunningAsInit) {
if (!msgYesNo("Running multi-user, assume that the network is already configured?"))
return devs[0];
}
if (cnt == 1) {
if (DITEM_STATUS(tcpOpenDialog(devs[0]) == DITEM_SUCCESS))
rval = devs[0];
}

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: dispatch.c,v 1.20 1997/07/16 05:22:40 jkh Exp $
* $Id: dispatch.c,v 1.21 1997/08/11 13:08:18 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -39,7 +39,8 @@
static int _shutdown(dialogMenuItem *unused);
static int _systemExecute(dialogMenuItem *unused);
static int _loadConfig(dialogMenuItem *unused);
static struct _word {
char *name;
int (*handler)(dialogMenuItem *self);
@ -82,6 +83,7 @@ static struct _word {
{ "installFixitFloppy", installFixitFloppy },
{ "installFilesystems", installFilesystems },
{ "installVarDefaults", installVarDefaults },
{ "loadConfig", _loadConfig },
{ "mediaSetCDROM", mediaSetCDROM },
{ "mediaSetFloppy", mediaSetFloppy },
{ "mediaSetDOS", mediaSetDOS },
@ -140,6 +142,35 @@ _systemExecute(dialogMenuItem *unused)
return DITEM_FAILURE;
}
static int
_loadConfig(dialogMenuItem *unused)
{
FILE *fp;
char *cp, buf[BUFSIZ];
int i = DITEM_SUCCESS;
cp = variable_get("file");
if ((!cp || (fp = fopen(cp, "r")) == NULL) &&
(fp = fopen("install.cfg", "r")) == NULL &&
(fp = fopen("/stand/install.cfg", "r")) == NULL &&
(fp = fopen("/tmp/install.cfg", "r")) == NULL) {
msgConfirm("Unable to locate an install.cfg file in $CWD, /stand or /tmp.");
i = DITEM_FAILURE;
}
else {
variable_set2(VAR_NONINTERACTIVE, "YES");
while (fgets(buf, sizeof buf, fp)) {
if ((i = DITEM_STATUS(dispatchCommand(buf))) != DITEM_SUCCESS) {
msgDebug("Command `%s' failed - rest of script aborted.\n", buf);
break;
}
}
}
fclose(fp);
variable_unset(VAR_NONINTERACTIVE);
return i;
}
/* For a given string, call it or spit out an undefined command diagnostic */
int
dispatchCommand(char *str)

View File

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $Id: sysinstall.8,v 1.2 1997/08/11 13:20:38 jkh Exp $
.\" $Id: sysinstall.8,v 1.3 1997/08/18 21:10:26 jkh Exp $
.\"
.Dd August 9, 1997
.Dt SYSINSTALL 8
@ -608,6 +608,15 @@ Initialize all variables to their defaults, overriding any
previous settings.
.Pp
\fBVariables:\fR None
.It loadConfig
Sort of like an #include statement, it allows you to load one
configuration file from another.
.Pp
\fBVariables:\fR
.Bl -tag -width indent
.It file
The fully pathname of the file to load.
.El
.It mediaSetCDROM
Select a FreeBSD CDROM as the installation media.
.Pp

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: dispatch.c,v 1.20 1997/07/16 05:22:40 jkh Exp $
* $Id: dispatch.c,v 1.21 1997/08/11 13:08:18 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -39,7 +39,8 @@
static int _shutdown(dialogMenuItem *unused);
static int _systemExecute(dialogMenuItem *unused);
static int _loadConfig(dialogMenuItem *unused);
static struct _word {
char *name;
int (*handler)(dialogMenuItem *self);
@ -82,6 +83,7 @@ static struct _word {
{ "installFixitFloppy", installFixitFloppy },
{ "installFilesystems", installFilesystems },
{ "installVarDefaults", installVarDefaults },
{ "loadConfig", _loadConfig },
{ "mediaSetCDROM", mediaSetCDROM },
{ "mediaSetFloppy", mediaSetFloppy },
{ "mediaSetDOS", mediaSetDOS },
@ -140,6 +142,35 @@ _systemExecute(dialogMenuItem *unused)
return DITEM_FAILURE;
}
static int
_loadConfig(dialogMenuItem *unused)
{
FILE *fp;
char *cp, buf[BUFSIZ];
int i = DITEM_SUCCESS;
cp = variable_get("file");
if ((!cp || (fp = fopen(cp, "r")) == NULL) &&
(fp = fopen("install.cfg", "r")) == NULL &&
(fp = fopen("/stand/install.cfg", "r")) == NULL &&
(fp = fopen("/tmp/install.cfg", "r")) == NULL) {
msgConfirm("Unable to locate an install.cfg file in $CWD, /stand or /tmp.");
i = DITEM_FAILURE;
}
else {
variable_set2(VAR_NONINTERACTIVE, "YES");
while (fgets(buf, sizeof buf, fp)) {
if ((i = DITEM_STATUS(dispatchCommand(buf))) != DITEM_SUCCESS) {
msgDebug("Command `%s' failed - rest of script aborted.\n", buf);
break;
}
}
}
fclose(fp);
variable_unset(VAR_NONINTERACTIVE);
return i;
}
/* For a given string, call it or spit out an undefined command diagnostic */
int
dispatchCommand(char *str)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: installUpgrade.c,v 1.48 1997/04/28 10:31:14 jkh Exp $
* $Id: installUpgrade.c,v 1.49 1997/05/09 07:44:19 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -45,6 +45,8 @@
#include <unistd.h>
#include <sys/mount.h>
static int installUpgradeNonInteractive(dialogMenuItem *self);
typedef struct _hitList {
enum { JUST_COPY, CALL_HANDLER } action ;
char *name;
@ -153,6 +155,9 @@ installUpgrade(dialogMenuItem *self)
char *saved_etc;
Boolean extractingBin = TRUE;
if (variable_get(VAR_NONINTERACTIVE))
return installUpgradeNonInteractive(self);
variable_set2(SYSTEM_STATE, "upgrade");
systemDisplayHelp("upgrade");
@ -276,7 +281,7 @@ installUpgrade(dialogMenuItem *self)
if (saved_etc) {
msgNotify("Preserving /etc directory..");
if (vsystem("tar -cf - -C /etc . | tar -xpf - -C %s", saved_etc))
if (vsystem("tar -cBpf - -C /etc . | tar -xBpf - -C %s", saved_etc))
if (msgYesNo("Unable to backup your /etc into %s.\n"
"Do you want to continue anyway?", saved_etc) != 0)
return DITEM_FAILURE | DITEM_RESTORE;
@ -351,3 +356,134 @@ installUpgrade(dialogMenuItem *self)
"the new system, just exit the installation.");
return DITEM_SUCCESS | DITEM_REDRAW;
}
static int
installUpgradeNonInteractive(dialogMenuItem *self)
{
char *saved_etc;
Boolean extractingBin = TRUE;
variable_set2(SYSTEM_STATE, "upgrade");
/* Make sure at least BIN is selected */
Dists |= DIST_BIN;
if (RunningAsInit) {
Device **devs;
int i, cnt;
char *cp;
cp = variable_get(VAR_DISK);
devs = deviceFind(cp, DEVICE_TYPE_DISK);
cnt = deviceCount(devs);
if (!cnt) {
msgConfirm("No disks found! Please verify that your disk controller is being\n"
"properly probed at boot time. See the Hardware Guide on the\n"
"Documentation menu for clues on diagnosing this type of problem.");
return DITEM_FAILURE;
}
else {
/* Enable all the drives befor we start */
for (i = 0; i < cnt; i++)
devs[i]->enabled = TRUE;
}
msgConfirm("OK. First, we're going to go to the disk label editor. In this editor\n"
"you will be expected to Mount any partitions you're interested in\n"
"upgrading. DO NOT set the Newfs flag to Y on anything in the label editor\n"
"unless you're absolutely sure you know what you're doing! In this\n"
"instance, you'll be using the label editor as little more than a fancy\n"
"screen-oriented partition mounting tool.\n\n"
"Once you're done in the label editor, press Q to return here for the next\n"
"step.");
if (DITEM_STATUS(diskLabelEditor(self)) == DITEM_FAILURE) {
msgConfirm("The disk label editor returned an error status. Upgrade operation\n"
"aborted.");
return DITEM_FAILURE | DITEM_RESTORE;
}
/* Don't write out MBR info */
variable_set2(DISK_PARTITIONED, "written");
if (DITEM_STATUS(diskLabelCommit(self)) == DITEM_FAILURE) {
msgConfirm("Not all file systems were properly mounted. Upgrade operation\n"
"aborted.");
variable_unset(DISK_PARTITIONED);
return DITEM_FAILURE | DITEM_RESTORE;
}
if (extractingBin) {
msgNotify("chflags'ing old binaries - please wait.");
(void)vsystem("chflags -R noschg /mnt/");
}
msgNotify("Updating /stand on root filesystem");
(void)vsystem("find -x /stand | cpio %s -pdum /mnt", cpioVerbosity());
if (DITEM_STATUS(chroot("/mnt")) == DITEM_FAILURE) {
msgConfirm("Unable to chroot to /mnt - something is wrong with the\n"
"root partition or the way it's mounted if this doesn't work.");
variable_unset(DISK_PARTITIONED);
return DITEM_FAILURE | DITEM_RESTORE;
}
chdir("/");
systemCreateHoloshell();
}
if (!mediaVerify() || !mediaDevice->init(mediaDevice)) {
msgNotify("Upgrade: Couldn't initialize media.");
return DITEM_FAILURE | DITEM_RESTORE;
}
saved_etc = "/usr/tmp/etc";
Mkdir(saved_etc);
msgNotify("Preserving /etc directory..");
if (vsystem("tar -cpBf - -C /etc . | tar -xpBf - -C %s", saved_etc)) {
msgNotify("Unable to backup your /etc into %s.", saved_etc);
return DITEM_FAILURE | DITEM_RESTORE;
}
if (file_readable("/kernel")) {
msgNotify("Moving old kernel to /kernel.prev");
system("chflags noschg /kernel && mv /kernel /kernel.prev");
}
msgNotify("Beginning extraction of distributions..");
if (DITEM_STATUS(distExtractAll(self)) == DITEM_FAILURE) {
msgConfirm("Hmmmm. We couldn't even extract the bin distribution. This upgrade\n"
"should be considered a failure and started from the beginning, sorry!\n"
"The system will reboot now.");
dialog_clear();
systemShutdown(1);
}
else if (Dists) {
if (!(Dists & DIST_BIN)) {
msgNotify("The extraction process seems to have had some problems, but we got most\n"
"of the essentials. We'll treat this as a warning since it may have been\n"
"only non-essential distributions which failed to upgrade.");
}
else {
msgConfirm("Hmmmm. We couldn't even extract the bin distribution. This upgrade\n"
"should be considered a failure and started from the beginning, sorry!\n"
"The system will reboot now.");
dialog_clear();
systemShutdown(1);
}
}
msgNotify("OK, now it's time to go pound on your root a little bit to create all the\n"
"/dev entries and such that a new system expects to see. I'll also perform a\n"
"few \"fixup\" operations to repair the effects of splatting a bin distribution\n"
"on top of an existing system..");
if (DITEM_STATUS(installFixup(self)) == DITEM_FAILURE) {
msgNotify("Hmmmmm. The fixups don't seem to have been very happy.\n"
"You may wish to examine the system a little more closely when\n"
"it comes time to merge your /etc customizations back.");
}
msgNotify("First stage of upgrade completed successfully.");
if (vsystem("tar -cpBf - -C %s . | tar --unlink -xpBf - -C /etc", saved_etc)) {
msgNotify("Unable to resurrect your old /etc!");
return DITEM_FAILURE | DITEM_RESTORE;
}
return DITEM_SUCCESS | DITEM_REDRAW;
}

View File

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $Id: sysinstall.8,v 1.2 1997/08/11 13:20:38 jkh Exp $
.\" $Id: sysinstall.8,v 1.3 1997/08/18 21:10:26 jkh Exp $
.\"
.Dd August 9, 1997
.Dt SYSINSTALL 8
@ -608,6 +608,15 @@ Initialize all variables to their defaults, overriding any
previous settings.
.Pp
\fBVariables:\fR None
.It loadConfig
Sort of like an #include statement, it allows you to load one
configuration file from another.
.Pp
\fBVariables:\fR
.Bl -tag -width indent
.It file
The fully pathname of the file to load.
.El
.It mediaSetCDROM
Select a FreeBSD CDROM as the installation media.
.Pp

View File

@ -1,5 +1,5 @@
/*
* $Id: tcpip.c,v 1.68 1997/06/12 09:01:38 jkh Exp $
* $Id: tcpip.c,v 1.69 1997/06/18 05:11:37 jkh Exp $
*
* Copyright (c) 1995
* Gary J Palmer. All rights reserved.
@ -156,10 +156,6 @@ tcpOpenDialog(Device *devp)
char *tmp;
char title[80];
if (!RunningAsInit) {
if (!msgYesNo("Running multi-user, assume that the network is already configured?"))
return DITEM_SUCCESS;
}
/* Initialise vars from previous device values */
if (devp->private) {
DevInfo *di = (DevInfo *)devp->private;
@ -346,9 +342,15 @@ tcpDeviceSelect(void)
cnt = deviceCount(devs);
rval = NULL;
if (!cnt)
if (!cnt) {
msgConfirm("No network devices available!");
else if (cnt == 1) {
return NULL;
}
else if (!RunningAsInit) {
if (!msgYesNo("Running multi-user, assume that the network is already configured?"))
return devs[0];
}
if (cnt == 1) {
if (DITEM_STATUS(tcpOpenDialog(devs[0]) == DITEM_SUCCESS))
rval = devs[0];
}