summaryrefslogtreecommitdiffstats
path: root/release/sysinstall/tcpip.c
diff options
context:
space:
mode:
authorrgrimes <rgrimes@FreeBSD.org>1995-06-11 19:33:05 +0000
committerrgrimes <rgrimes@FreeBSD.org>1995-06-11 19:33:05 +0000
commit1b1ee5553889e207087539ddafa5dfd4e28bd585 (patch)
treeba998dfb4fcad03e00a5cbf58e2a0ad648bab6e6 /release/sysinstall/tcpip.c
parentb1a97daa1e06ab0de3071f979965878fd056292b (diff)
downloadFreeBSD-src-1b1ee5553889e207087539ddafa5dfd4e28bd585.zip
FreeBSD-src-1b1ee5553889e207087539ddafa5dfd4e28bd585.tar.gz
Merge RELENG_2_0_5 into HEAD
Diffstat (limited to 'release/sysinstall/tcpip.c')
-rw-r--r--release/sysinstall/tcpip.c58
1 files changed, 46 insertions, 12 deletions
diff --git a/release/sysinstall/tcpip.c b/release/sysinstall/tcpip.c
index ea2cf3e..40a6af8 100644
--- a/release/sysinstall/tcpip.c
+++ b/release/sysinstall/tcpip.c
@@ -1,5 +1,5 @@
/*
- * $Id: tcpip.c,v 1.28 1995/05/29 12:32:41 jkh Exp $
+ * $Id: tcpip.c,v 1.29.2.8 1995/06/06 06:08:29 jkh Exp $
*
* Copyright (c) 1995
* Gary J Palmer. All rights reserved.
@@ -83,7 +83,7 @@ typedef struct _layout {
static Layout layout[] = {
{ 1, 2, 25, HOSTNAME_FIELD_LEN - 1,
- "Host name:", "The name of your machine on a network, e.g. foo.bar.com",
+ "Host name:", "Your fully-qualified hostname, e.g. foo.bar.com",
hostname, STRINGOBJ, NULL },
#define LAYOUT_HOSTNAME 0
{ 1, 35, 20, HOSTNAME_FIELD_LEN - 1,
@@ -392,9 +392,11 @@ tcpOpenDialog(Device *devp)
if (!cancel) {
DevInfo *di;
char temp[512], ifn[64];
+ char *ifaces;
variable_set2(VAR_HOSTNAME, hostname);
- variable_set2(VAR_DOMAINNAME, domainname);
+ if (domainname[0])
+ variable_set2(VAR_DOMAINNAME, domainname);
if (gateway[0])
variable_set2(VAR_GATEWAY, gateway);
if (nameserver[0])
@@ -410,8 +412,14 @@ tcpOpenDialog(Device *devp)
sprintf(temp, "inet %s %s netmask %s", ipaddr, extras, netmask);
sprintf(ifn, "%s%s", VAR_IFCONFIG, devp->name);
variable_set2(ifn, temp);
- sprintf(ifn, "%s %s", devp->name, getenv(VAR_INTERFACES) ? getenv(VAR_INTERFACES) : "");
- variable_set2(VAR_INTERFACES, ifn);
+ ifaces = getenv(VAR_INTERFACES);
+ if (!ifaces)
+ variable_set2(VAR_INTERFACES, ifaces = "lo0");
+ /* Only add it if it's not there already */
+ if (!strstr(ifaces, devp->name)) {
+ sprintf(ifn, "%s %s", devp->name, ifaces);
+ variable_set2(VAR_INTERFACES, ifn);
+ }
if (ipaddr[0])
variable_set2(VAR_IPADDR, ipaddr);
return 0;
@@ -438,15 +446,41 @@ netHook(char *str)
}
/* Get a network device */
-int
-tcpDeviceSelect(char *str)
+Boolean
+tcpDeviceSelect(void)
{
DMenu *menu;
+ Device **devs;
+ int cnt;
+ int status;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_NETWORK);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No network devices available!");
+ status = FALSE;
+ }
+ else if (cnt == 1) {
+ tcpOpenDialog(devs[0]);
+ mediaDevice = devs[0];
+ status = TRUE;
+ }
+ else {
+
+ menu = deviceCreateMenu(&MenuNetworkDevice, DEVICE_TYPE_NETWORK, netHook);
+ if (!menu)
+ msgFatal("Unable to create network device menu! Argh!");
+ status = dmenuOpenSimple(menu);
+ free(menu);
+ }
+ return status;
+}
- menu = deviceCreateMenu(&MenuNetworkDevice, DEVICE_TYPE_NETWORK, netHook);
- if (!menu)
- msgFatal("Unable to create network device menu! Argh!");
- dmenuOpenSimple(menu);
- free(menu);
+/* Do it from a menu that doesn't care about status */
+int
+tcpMenuSelect(char *str)
+{
+ (void)tcpDeviceSelect();
+ configResolv();
return 0;
}
OpenPOWER on IntegriCloud