summaryrefslogtreecommitdiffstats
path: root/loader2/net.c
diff options
context:
space:
mode:
authorDavid Cantrell <dcantrell@redhat.com>2006-06-30 18:46:08 +0000
committerDavid Cantrell <dcantrell@redhat.com>2006-06-30 18:46:08 +0000
commitf945047d9ebd0344eea76e94cb9bba81a0cec0f1 (patch)
treeb870a469a7307e79aeb49650dd848e589609677e /loader2/net.c
parent3f12e85f2b72f2f3a59b2b1672e46eb32441ab94 (diff)
downloadanaconda-f945047d9ebd0344eea76e94cb9bba81a0cec0f1.tar.gz
anaconda-f945047d9ebd0344eea76e94cb9bba81a0cec0f1.tar.xz
anaconda-f945047d9ebd0344eea76e94cb9bba81a0cec0f1.zip
More problems with memory corru���r���z]��@��Z������(:�G5S�s"����.�>�5��c��(��*�m�|[�m���d��ZZ)���wI2�tu& �>�5�zG�
emr�����E�D0�Oi)h�!�CC�����U��j1+d�R`V����� SD |���=T^s0s�.��qE������*��[,�������[%<�`�+�=G�E���|�R���/.%M���Y��P��Ne���Qn��?iQ�8Y�h�8��d{��H��AU��g�9�$�van��u�( ��\j�X��{S,4���^^ #W�J!�V�I���)�$��9*�&bL2����KYw1HWY-��g���y��i��������2_a,M1�b���)Pr}��X��ga=Ln���'��q }p~h1(;�.�S��C���y%���6U1�w�T[��>B�����\&�~Xh������)�5ption as well as some housekeeping tasks: * loader2/net.c (setupInterface): Removed and moved those two lines to the calling function (configureNetwork). * loader2/net.c (readNetConfig): Spelling error fix. Calculate IPv4 broadcast if user did a static IP config, close any possibly open dhcp_nic handle if doing a static IP config. * loader2/net.h: Removed setupInterface prototype.
Diffstat (limited to 'loader2/net.c')
-rw-r--r--loader2/net.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/loader2/net.c b/loader2/net.c
index 6b7596459..3c41a52b3 100644
--- a/loader2/net.c
+++ b/loader2/net.c
@@ -524,7 +524,7 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg,
struct networkDeviceConfig newCfg;
struct intfconfig_s c;
int i;
- struct in_addr addr;
+ struct in_addr addr, nm;
struct in6_addr addr6;
char dhcpChoice;
char *dret = NULL;
@@ -561,7 +561,7 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg,
newCfg.essid = strdup(cfg->essid);
newCfg.wepkey = strdup(cfg->wepkey);
} else {
- logMessage(INFO, "%s is not a wireless adaptor", device);
+ logMessage(INFO, "%s is not a wireless adapter", device);
}
text = newtTextboxReflowed(-1, -1,
@@ -763,13 +763,24 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg,
newtPopWindow();
+ /* calculate broadcast address for IPv4 */
+ addr = ip_in_addr(&cfg->dev.ip);
+ nm = ip_in_addr(&cfg->dev.netmask);
+ cfg->dev.broadcast = ip_addr_v4(ntohl((addr.s_addr & nm.s_addr) | ~nm.s_addr));
+
+ /* make sure we don't have a dhcp_nic handle for static */
+ if ((cfg->isDynamic == 0) && (cfg->dev.dhcp_nic != NULL)) {
+ dhcp_nic_free(cfg->dev.dhcp_nic);
+ cfg->dev.dhcp_nic = NULL;
+ }
+
if (!FL_TESTING(flags)) {
configureNetwork(cfg);
findHostAndDomain(cfg);
writeResolvConf(cfg);
}
- return 0;
+ return LOADER_OK;
}
static int setupWireless(struct networkDeviceConfig *dev) {
@@ -796,11 +807,6 @@ static int setupWireless(struct networkDeviceConfig *dev) {
return 0;
}
-char *setupInterface(struct networkDeviceConfig *dev) {
- setupWireless(dev);
- return pumpSetupInterface(&dev->dev);
-}
-
void netlogger(void *arg, int priority, char *fmt, va_list va) {
int p;
char *buf = NULL;
@@ -850,9 +856,10 @@ char *doDhcp(struct networkDeviceConfig *dev) {
int configureNetwork(struct networkDeviceConfig * dev) {
char *rc;
- rc = setupInterface(dev);
+ setupWireless(dev);
+ rc = pumpSetupInterface(&dev->dev);
if (rc)
- logMessage(INFO, "result of setupInterface is %s", rc);
+ logMessage(INFO, "result of pumpSetupInterface is %s", rc);
/* we need to wait for a link after setting up the interface as some
* switches decide to reconfigure themselves after that (#115825)