Eliminate great evil in the networking code. That's all I'm gonna say.
This commit is contained in:
parent
dd680562f9
commit
20c5f58d49
@ -4,7 +4,7 @@
|
||||
* This is probably the last attempt in the `sysinstall' line, the next
|
||||
* generation being slated to essentially a complete rewrite.
|
||||
*
|
||||
* $Id: network.c,v 1.17 1996/12/08 12:27:58 jkh Exp $
|
||||
* $Id: network.c,v 1.18 1996/12/09 06:02:30 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Jordan Hubbard. All rights reserved.
|
||||
@ -46,12 +46,14 @@
|
||||
static Boolean networkInitialized;
|
||||
static pid_t startPPP(Device *devp);
|
||||
|
||||
static pid_t pppPID;
|
||||
|
||||
Boolean
|
||||
mediaInitNetwork(Device *dev)
|
||||
{
|
||||
int i;
|
||||
char *rp;
|
||||
char *cp, ifconfig[64];
|
||||
char *cp, ifconfig[255];
|
||||
|
||||
if (!RunningAsInit || networkInitialized)
|
||||
return TRUE;
|
||||
@ -60,13 +62,13 @@ mediaInitNetwork(Device *dev)
|
||||
if (!file_readable("/etc/resolv.conf"))
|
||||
configResolv();
|
||||
|
||||
/* Old process lying around? */
|
||||
if (dev->private) {
|
||||
kill((pid_t)dev->private, SIGTERM);
|
||||
dev->private = NULL;
|
||||
/* Old PPP process lying around? */
|
||||
if (pppPID) {
|
||||
kill(pppPID, SIGTERM);
|
||||
pppPID = 0;
|
||||
}
|
||||
if (!strncmp("ppp", dev->name, 3)) { /* PPP? */
|
||||
if (!(dev->private = (void *)startPPP(dev))) {
|
||||
if (!(pppPID = startPPP(dev))) {
|
||||
msgConfirm("Unable to start PPP! This installation method cannot be used.");
|
||||
return FALSE;
|
||||
}
|
||||
@ -95,8 +97,8 @@ mediaInitNetwork(Device *dev)
|
||||
strcpy(attach, val);
|
||||
/*
|
||||
* Doing this with vsystem() is actually bogus since we should be storing the pid of slattach
|
||||
* in dev->private for later killing. It's just too convenient to call vsystem(), however,
|
||||
* rather than constructing a proper argument for exec() so we punt on doing slip right for now.
|
||||
* for later killing. It's just too convenient to call vsystem(), however, rather than
|
||||
* constructing a proper argument for exec() so we punt on doing slip right for now.
|
||||
*/
|
||||
if (vsystem(attach)) {
|
||||
msgConfirm("slattach returned a bad status! Please verify that\n"
|
||||
@ -164,10 +166,10 @@ mediaShutdownNetwork(Device *dev)
|
||||
vsystem("route delete default");
|
||||
}
|
||||
}
|
||||
else if (dev->private) { /* ppp sticks its PID there */
|
||||
msgNotify("Killing previous PPP process %d.", (int)dev->private);
|
||||
kill((pid_t)dev->private, SIGTERM);
|
||||
dev->private = NULL;
|
||||
else if (pppPID) {
|
||||
msgNotify("Killing previous PPP process %d.", pppPID);
|
||||
kill(pppPID, SIGTERM);
|
||||
pppPID = 0;
|
||||
}
|
||||
networkInitialized = FALSE;
|
||||
}
|
||||
@ -196,12 +198,12 @@ startPPP(Device *devp)
|
||||
"maximum data rate since most modems can talk at one speed to the\n"
|
||||
"computer and at another speed to the remote end.\n\n"
|
||||
"If you're not sure what to put here, just select the default.");
|
||||
strcpy(speed, (val && *val) ? val : "115200");
|
||||
strncpy(speed, (val && *val) ? val : "115200", 16);
|
||||
|
||||
strcpy(provider, variable_get(VAR_GATEWAY) ? variable_get(VAR_GATEWAY) : "0");
|
||||
strncpy(provider, variable_get(VAR_GATEWAY) ? variable_get(VAR_GATEWAY) : "0", 16);
|
||||
val = msgGetInput(provider, "Enter the IP address of your service provider or 0 if you\n"
|
||||
"don't know it and would prefer to negotiate it dynamically.");
|
||||
strcpy(provider, val ? val : "0");
|
||||
strncpy(provider, val ? val : "0", 16);
|
||||
|
||||
if (devp->private && ((DevInfo *)devp->private)->ipaddr[0])
|
||||
strcpy(myaddr, ((DevInfo *)devp->private)->ipaddr);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* This is probably the last attempt in the `sysinstall' line, the next
|
||||
* generation being slated to essentially a complete rewrite.
|
||||
*
|
||||
* $Id: sysinstall.h,v 1.87 1996/11/09 18:12:17 jkh Exp $
|
||||
* $Id: sysinstall.h,v 1.88 1996/12/09 06:02:31 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Jordan Hubbard. All rights reserved.
|
||||
@ -621,7 +621,6 @@ extern void mediaShutdownTape(Device *dev);
|
||||
/* tcpip.c */
|
||||
extern int tcpOpenDialog(Device *dev);
|
||||
extern int tcpMenuSelect(dialogMenuItem *self);
|
||||
extern int tcpInstallDevice(char *str);
|
||||
extern Boolean tcpDeviceSelect(void);
|
||||
|
||||
/* termcap.c */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: tcpip.c,v 1.48 1996/10/05 16:33:04 jkh Exp $
|
||||
* $Id: tcpip.c,v 1.49 1996/11/07 08:03:29 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Gary J Palmer. All rights reserved.
|
||||
@ -168,61 +168,6 @@ verifySettings(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
tcpInstallDevice(char *str)
|
||||
{
|
||||
Device **devs;
|
||||
Device *dp = NULL;
|
||||
|
||||
/* Clip garbage off the ends */
|
||||
string_prune(str);
|
||||
str = string_skipwhite(str);
|
||||
if (!*str)
|
||||
return DITEM_FAILURE;
|
||||
devs = deviceFind(str, DEVICE_TYPE_NETWORK);
|
||||
if (devs && (dp = devs[0])) {
|
||||
char temp[512], ifn[255];
|
||||
|
||||
if (!dp->private) {
|
||||
DevInfo *di;
|
||||
char *ipaddr, *netmask, *extras;
|
||||
|
||||
di = dp->private = (DevInfo *)malloc(sizeof(DevInfo));
|
||||
|
||||
if ((ipaddr = variable_get(string_concat3(VAR_IPADDR, "_", dp->name))) == NULL)
|
||||
ipaddr = variable_get(VAR_IPADDR);
|
||||
|
||||
if ((netmask = variable_get(string_concat3(VAR_NETMASK, "_", dp->name))) == NULL)
|
||||
netmask = variable_get(VAR_NETMASK);
|
||||
|
||||
if ((extras = variable_get(string_concat3(VAR_EXTRAS, "_", dp->name))) == NULL)
|
||||
extras = variable_get(VAR_EXTRAS);
|
||||
|
||||
string_copy(di->ipaddr, ipaddr);
|
||||
string_copy(di->netmask, netmask);
|
||||
string_copy(di->extras, extras);
|
||||
|
||||
if (ipaddr) {
|
||||
char *ifaces;
|
||||
|
||||
sprintf(temp, "inet %s %s netmask %s", ipaddr, extras ? extras : "", netmask);
|
||||
sprintf(ifn, "%s%s", VAR_IFCONFIG, dp->name);
|
||||
variable_set2(ifn, temp);
|
||||
ifaces = variable_get(VAR_INTERFACES);
|
||||
if (!ifaces)
|
||||
variable_set2(VAR_INTERFACES, ifaces = "lo0");
|
||||
/* Only add it if it's not there already */
|
||||
if (!strstr(ifaces, dp->name)) {
|
||||
sprintf(ifn, "%s %s", dp->name, ifaces);
|
||||
variable_set2(VAR_INTERFACES, ifn);
|
||||
}
|
||||
}
|
||||
}
|
||||
mediaDevice = dp;
|
||||
}
|
||||
return dp ? DITEM_SUCCESS : DITEM_FAILURE;
|
||||
}
|
||||
|
||||
/* This is it - how to get TCP setup values */
|
||||
int
|
||||
tcpOpenDialog(Device *devp)
|
||||
|
@ -4,7 +4,7 @@
|
||||
* This is probably the last attempt in the `sysinstall' line, the next
|
||||
* generation being slated to essentially a complete rewrite.
|
||||
*
|
||||
* $Id: sysinstall.h,v 1.87 1996/11/09 18:12:17 jkh Exp $
|
||||
* $Id: sysinstall.h,v 1.88 1996/12/09 06:02:31 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Jordan Hubbard. All rights reserved.
|
||||
@ -621,7 +621,6 @@ extern void mediaShutdownTape(Device *dev);
|
||||
/* tcpip.c */
|
||||
extern int tcpOpenDialog(Device *dev);
|
||||
extern int tcpMenuSelect(dialogMenuItem *self);
|
||||
extern int tcpInstallDevice(char *str);
|
||||
extern Boolean tcpDeviceSelect(void);
|
||||
|
||||
/* termcap.c */
|
||||
|
@ -4,7 +4,7 @@
|
||||
* This is probably the last attempt in the `sysinstall' line, the next
|
||||
* generation being slated to essentially a complete rewrite.
|
||||
*
|
||||
* $Id: network.c,v 1.17 1996/12/08 12:27:58 jkh Exp $
|
||||
* $Id: network.c,v 1.18 1996/12/09 06:02:30 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Jordan Hubbard. All rights reserved.
|
||||
@ -46,12 +46,14 @@
|
||||
static Boolean networkInitialized;
|
||||
static pid_t startPPP(Device *devp);
|
||||
|
||||
static pid_t pppPID;
|
||||
|
||||
Boolean
|
||||
mediaInitNetwork(Device *dev)
|
||||
{
|
||||
int i;
|
||||
char *rp;
|
||||
char *cp, ifconfig[64];
|
||||
char *cp, ifconfig[255];
|
||||
|
||||
if (!RunningAsInit || networkInitialized)
|
||||
return TRUE;
|
||||
@ -60,13 +62,13 @@ mediaInitNetwork(Device *dev)
|
||||
if (!file_readable("/etc/resolv.conf"))
|
||||
configResolv();
|
||||
|
||||
/* Old process lying around? */
|
||||
if (dev->private) {
|
||||
kill((pid_t)dev->private, SIGTERM);
|
||||
dev->private = NULL;
|
||||
/* Old PPP process lying around? */
|
||||
if (pppPID) {
|
||||
kill(pppPID, SIGTERM);
|
||||
pppPID = 0;
|
||||
}
|
||||
if (!strncmp("ppp", dev->name, 3)) { /* PPP? */
|
||||
if (!(dev->private = (void *)startPPP(dev))) {
|
||||
if (!(pppPID = startPPP(dev))) {
|
||||
msgConfirm("Unable to start PPP! This installation method cannot be used.");
|
||||
return FALSE;
|
||||
}
|
||||
@ -95,8 +97,8 @@ mediaInitNetwork(Device *dev)
|
||||
strcpy(attach, val);
|
||||
/*
|
||||
* Doing this with vsystem() is actually bogus since we should be storing the pid of slattach
|
||||
* in dev->private for later killing. It's just too convenient to call vsystem(), however,
|
||||
* rather than constructing a proper argument for exec() so we punt on doing slip right for now.
|
||||
* for later killing. It's just too convenient to call vsystem(), however, rather than
|
||||
* constructing a proper argument for exec() so we punt on doing slip right for now.
|
||||
*/
|
||||
if (vsystem(attach)) {
|
||||
msgConfirm("slattach returned a bad status! Please verify that\n"
|
||||
@ -164,10 +166,10 @@ mediaShutdownNetwork(Device *dev)
|
||||
vsystem("route delete default");
|
||||
}
|
||||
}
|
||||
else if (dev->private) { /* ppp sticks its PID there */
|
||||
msgNotify("Killing previous PPP process %d.", (int)dev->private);
|
||||
kill((pid_t)dev->private, SIGTERM);
|
||||
dev->private = NULL;
|
||||
else if (pppPID) {
|
||||
msgNotify("Killing previous PPP process %d.", pppPID);
|
||||
kill(pppPID, SIGTERM);
|
||||
pppPID = 0;
|
||||
}
|
||||
networkInitialized = FALSE;
|
||||
}
|
||||
@ -196,12 +198,12 @@ startPPP(Device *devp)
|
||||
"maximum data rate since most modems can talk at one speed to the\n"
|
||||
"computer and at another speed to the remote end.\n\n"
|
||||
"If you're not sure what to put here, just select the default.");
|
||||
strcpy(speed, (val && *val) ? val : "115200");
|
||||
strncpy(speed, (val && *val) ? val : "115200", 16);
|
||||
|
||||
strcpy(provider, variable_get(VAR_GATEWAY) ? variable_get(VAR_GATEWAY) : "0");
|
||||
strncpy(provider, variable_get(VAR_GATEWAY) ? variable_get(VAR_GATEWAY) : "0", 16);
|
||||
val = msgGetInput(provider, "Enter the IP address of your service provider or 0 if you\n"
|
||||
"don't know it and would prefer to negotiate it dynamically.");
|
||||
strcpy(provider, val ? val : "0");
|
||||
strncpy(provider, val ? val : "0", 16);
|
||||
|
||||
if (devp->private && ((DevInfo *)devp->private)->ipaddr[0])
|
||||
strcpy(myaddr, ((DevInfo *)devp->private)->ipaddr);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* This is probably the last attempt in the `sysinstall' line, the next
|
||||
* generation being slated to essentially a complete rewrite.
|
||||
*
|
||||
* $Id: sysinstall.h,v 1.87 1996/11/09 18:12:17 jkh Exp $
|
||||
* $Id: sysinstall.h,v 1.88 1996/12/09 06:02:31 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Jordan Hubbard. All rights reserved.
|
||||
@ -621,7 +621,6 @@ extern void mediaShutdownTape(Device *dev);
|
||||
/* tcpip.c */
|
||||
extern int tcpOpenDialog(Device *dev);
|
||||
extern int tcpMenuSelect(dialogMenuItem *self);
|
||||
extern int tcpInstallDevice(char *str);
|
||||
extern Boolean tcpDeviceSelect(void);
|
||||
|
||||
/* termcap.c */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: tcpip.c,v 1.48 1996/10/05 16:33:04 jkh Exp $
|
||||
* $Id: tcpip.c,v 1.49 1996/11/07 08:03:29 jkh Exp $
|
||||
*
|
||||
* Copyright (c) 1995
|
||||
* Gary J Palmer. All rights reserved.
|
||||
@ -168,61 +168,6 @@ verifySettings(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
tcpInstallDevice(char *str)
|
||||
{
|
||||
Device **devs;
|
||||
Device *dp = NULL;
|
||||
|
||||
/* Clip garbage off the ends */
|
||||
string_prune(str);
|
||||
str = string_skipwhite(str);
|
||||
if (!*str)
|
||||
return DITEM_FAILURE;
|
||||
devs = deviceFind(str, DEVICE_TYPE_NETWORK);
|
||||
if (devs && (dp = devs[0])) {
|
||||
char temp[512], ifn[255];
|
||||
|
||||
if (!dp->private) {
|
||||
DevInfo *di;
|
||||
char *ipaddr, *netmask, *extras;
|
||||
|
||||
di = dp->private = (DevInfo *)malloc(sizeof(DevInfo));
|
||||
|
||||
if ((ipaddr = variable_get(string_concat3(VAR_IPADDR, "_", dp->name))) == NULL)
|
||||
ipaddr = variable_get(VAR_IPADDR);
|
||||
|
||||
if ((netmask = variable_get(string_concat3(VAR_NETMASK, "_", dp->name))) == NULL)
|
||||
netmask = variable_get(VAR_NETMASK);
|
||||
|
||||
if ((extras = variable_get(string_concat3(VAR_EXTRAS, "_", dp->name))) == NULL)
|
||||
extras = variable_get(VAR_EXTRAS);
|
||||
|
||||
string_copy(di->ipaddr, ipaddr);
|
||||
string_copy(di->netmask, netmask);
|
||||
string_copy(di->extras, extras);
|
||||
|
||||
if (ipaddr) {
|
||||
char *ifaces;
|
||||
|
||||
sprintf(temp, "inet %s %s netmask %s", ipaddr, extras ? extras : "", netmask);
|
||||
sprintf(ifn, "%s%s", VAR_IFCONFIG, dp->name);
|
||||
variable_set2(ifn, temp);
|
||||
ifaces = variable_get(VAR_INTERFACES);
|
||||
if (!ifaces)
|
||||
variable_set2(VAR_INTERFACES, ifaces = "lo0");
|
||||
/* Only add it if it's not there already */
|
||||
if (!strstr(ifaces, dp->name)) {
|
||||
sprintf(ifn, "%s %s", dp->name, ifaces);
|
||||
variable_set2(VAR_INTERFACES, ifn);
|
||||
}
|
||||
}
|
||||
}
|
||||
mediaDevice = dp;
|
||||
}
|
||||
return dp ? DITEM_SUCCESS : DITEM_FAILURE;
|
||||
}
|
||||
|
||||
/* This is it - how to get TCP setup values */
|
||||
int
|
||||
tcpOpenDialog(Device *devp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user