diff options
Diffstat (limited to 'loader/net.c')
-rw-r--r-- | loader/net.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/loader/net.c b/loader/net.c index d1bdff79b..c147ba00b 100644 --- a/loader/net.c +++ b/loader/net.c @@ -296,7 +296,9 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg, int flags) { struct in_addr addr; char dhcpChoice; char * chptr; + char * env; +#if !defined(__s390__) && !defined(__s390x__) text = newtTextboxReflowed(-1, -1, _("Please enter the IP configuration for this machine. Each " "item should be entered as an IP address in dotted-decimal " @@ -437,6 +439,49 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg, int flags) { } } while (i != 2); +#else /* s390 now */ + + /* quick and dirty hack by opaukstadt@millenux.com for s390 */ + /* ctc stores remoteip in broadcast-field until pump.h is changed */ + memset(&newCfg, 0, sizeof(newCfg)); + strcpy(newCfg.dev.device, device); + newCfg.isDynamic = 0; + env = getenv("IPADDR"); + if (env) { + inet_aton(env, &newCfg.dev.ip); + newCfg.dev.set |= PUMP_INTFINFO_HAS_IP; + } + env = getenv("NETMASK"); + if (env) { + inet_aton(env, &newCfg.dev.netmask); + newCfg.dev.set |= PUMP_INTFINFO_HAS_NETMASK; + } + env = getenv("GATEWAY"); + if (env) { + inet_aton(env, &newCfg.dev.gateway); + newCfg.dev.set |= PUMP_NETINFO_HAS_GATEWAY; + } + env = getenv("NETWORK"); + if (env) { + inet_aton(env, &newCfg.dev.network); + newCfg.dev.set |= PUMP_INTFINFO_HAS_NETWORK; + } + if (!strncmp(newCfg.dev.device, "ctc", 3)) { + env = getenv("REMIP"); + if (env) { + inet_aton(env, &newCfg.dev.broadcast); + newCfg.dev.set |= PUMP_INTFINFO_HAS_BROADCAST; + } + } else { + env = getenv("BROADCAST"); + if (env) { + inet_aton(env, &newCfg.dev.broadcast); + newCfg.dev.set |= PUMP_INTFINFO_HAS_BROADCAST; + } + } +#endif + + #ifdef __STANDALONE__ if (!newCfg.isDynamic) #endif @@ -459,7 +504,9 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg, int flags) { } } +#if !defined(__s390__) && !defined(__s390__) newtPopWindow(); +#endif if (!FL_TESTING(flags)) { configureNetwork(cfg); |