FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian User

 
 
LinkBack Thread Tools
 
Old 06-17-2011, 08:42 AM
Vratislav Podzimek
 
Default enable netmask setting for wireless connections

---
loader/kickstart.c | 6 +++---
loader/net.c | 23 +++++++++++++++--------
loader/net.h | 3 ++-
3 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/loader/kickstart.c b/loader/kickstart.c
index 989d965..60163ee 100644
--- a/loader/kickstart.c
+++ b/loader/kickstart.c
@@ -654,17 +654,17 @@ int process_kickstart_wifi (struct loaderData_s * loaderData) {
if (loaderData->wepkey != NULL) {
rc = add_and_activate_wifi_connection(&(loaderData->netDev), loaderData->essid,
WIFI_PROTECTION_WEP, loaderData->wepkey, loaderData->ipinfo_set, loaderData->ipv4,
- loaderData->gateway, loaderData->dns);
+ loaderData->gateway, loaderData->dns, loaderData->netmask);
}
else if (loaderData->wpakey != NULL) {
rc = add_and_activate_wifi_connection(&(loaderData->netDev), loaderData->essid,
WIFI_PROTECTION_WPA, loaderData->wpakey, loaderData->ipinfo_set, loaderData->ipv4,
- loaderData->gateway, loaderData->dns);
+ loaderData->gateway, loaderData->dns, loaderData->netmask);
}
else {
rc = add_and_activate_wifi_connection(&(loaderData->netDev), loaderData->essid,
WIFI_PROTECTION_UNPROTECTED, NULL, loaderData->ipinfo_set, loaderData->ipv4,
- loaderData->gateway, loaderData->dns);
+ loaderData->gateway, loaderData->dns, loaderData->netmask);
}
}

diff --git a/loader/net.c b/loader/net.c
index 5b0808a..7275a4b 100644
--- a/loader/net.c
+++ b/loader/net.c
@@ -1772,19 +1772,19 @@ int kickstartNetworkUp(struct loaderData_s * loaderData, iface_t * iface) {
rc = add_and_activate_wifi_connection(&(loaderData->netDev),
loaderData->essid, WIFI_PROTECTION_WEP, loaderData->wepkey,
loaderData->ipinfo_set, loaderData->ipv4, loaderData->gateway,
- loaderData->dns);
+ loaderData->dns, loaderData->netmask);

else if (loaderData->wpakey != NULL)
rc = add_and_activate_wifi_connection(&(loaderData->netDev),
loaderData->essid, WIFI_PROTECTION_WPA, loaderData->wpakey,
loaderData->ipinfo_set, loaderData->ipv4, loaderData->gateway,
- loaderData->dns);
+ loaderData->dns, loaderData->netmask);

else
rc = add_and_activate_wifi_connection(&(loaderData->netDev),
loaderData->essid, WIFI_PROTECTION_UNPROTECTED, NULL,
loaderData->ipinfo_set, loaderData->ipv4, loaderData->gateway,
- loaderData->dns);
+ loaderData->dns, loaderData->netmask);

if (rc == WIFI_ACTIVATION_OK) {
loaderData->netDev_set = 1;
@@ -2228,18 +2228,18 @@ add_cb(NMClient *client,
if (error) logMessage(ERROR, "Error adding wifi connection: %s", error->message);
}

-guint32 ip_str_to_nbo(char* ip) {
+gint64 ip_str_to_nbo(char* ip) {
//get NBO representation of ip address
struct in_addr tmp_addr = { 0 };

if (inet_pton(AF_INET, ip, &tmp_addr) == 1) return tmp_addr.s_addr;
- else return 0;
+ else return -1;
}


int add_and_activate_wifi_connection(char **iface, char *ssid,
int protection, char *password, int ip_method_manual, char *address,
- char *gateway, char *dns) {
+ char *gateway, char *dns, char *netmask) {

NMClient *client = NULL;
NMDeviceWifi *device = NULL;
@@ -2362,14 +2362,21 @@ int add_and_activate_wifi_connection(char **iface, char *ssid,
GArray *address_array = g_array_new(FALSE, FALSE, sizeof(guint32));
guint32 nbo_ip = ip_str_to_nbo(address);
guint32 nbo_gw = 0;
- guint32 nbo_mask = 24;
guint32 nbo_dns = 0;
+ gint64 nbo_netmask = -1;
+ guint32 nbo_prefix = 0;
char *dns_addr = NULL;

if (gateway) nbo_gw = ip_str_to_nbo(gateway);
+ if (netmask) {
+ nbo_netmask = ip_str_to_nbo(netmask);
+ }
+ nbo_prefix = nbo_netmask >= 0 ?
+ nm_utils_ip4_netmask_to_prefix((guint32) nbo_netmask) :
+ nm_utils_ip4_get_default_prefix(nbo_ip);

g_array_append_val(address_array, nbo_ip);
- g_array_append_val(address_array, nbo_mask);
+ g_array_append_val(address_array, nbo_prefix);
g_array_append_val(address_array, nbo_gw);

g_ptr_array_add(addresses, address_array);
diff --git a/loader/net.h b/loader/net.h
index 068f995..4a133d6 100644
--- a/loader/net.h
+++ b/loader/net.h
@@ -85,7 +85,8 @@ int isValidIPv4Address(const char *address);
int add_and_activate_wifi_connection (char **iface, char *ssid,
int protection, char *password,
int ip_method_manual, char *address,
- char *gateway, char *dns);
+ char *gateway, char *dns,
+ char *netmask);
#ifdef ENABLE_IPV6
int isValidIPv6Address(const char *address);
#endif
--
1.7.4.4

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 05:28 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org