2005-12-07 Dan Williams <dcbw@redhat.com>

* Convert NETWORK_MODE_* constants to IW_MODE_*
	* Make all the get_mode/set_mode functions take and return 'int'
	* Convert D-BUS calls that pass mode to DBUS_TYPE_INT32 rather than UINT32


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1142 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams
2005-12-07 17:40:37 +00:00
parent a4cab32122
commit eff693f386
12 changed files with 77 additions and 105 deletions

View File

@@ -1,3 +1,9 @@
2005-12-07 Dan Williams <dcbw@redhat.com>
* Convert NETWORK_MODE_* constants to IW_MODE_*
* Make all the get_mode/set_mode functions take and return 'int'
* Convert D-BUS calls that pass mode to DBUS_TYPE_INT32 rather than UINT32
2005-12-07 Robert Love <rml@novell.com>
* src/NetworkManagerDevice.c: strncpy() buffer check.

View File

@@ -486,7 +486,7 @@ static void nmwa_dbus_net_properties_cb (DBusPendingCall *pcall, void *user_data
double freq = 0;
dbus_int32_t rate = 0;
dbus_bool_t enc = FALSE;
dbus_uint32_t mode = 0;
dbus_int32_t mode = -1;
g_return_if_fail (pcall != NULL);
g_return_if_fail (cb_data != NULL);
@@ -511,7 +511,7 @@ static void nmwa_dbus_net_properties_cb (DBusPendingCall *pcall, void *user_data
DBUS_TYPE_DOUBLE, &freq,
DBUS_TYPE_INT32, &rate,
DBUS_TYPE_BOOLEAN,&enc,
DBUS_TYPE_UINT32, &mode,
DBUS_TYPE_INT32, &mode,
DBUS_TYPE_INVALID))
{
NetworkDevice * dev;
@@ -671,7 +671,7 @@ static void nmwa_dbus_device_properties_cb (DBusPendingCall *pcall, void *user_d
const char * route = NULL;
const char * primary_dns = NULL;
const char * secondary_dns = NULL;
dbus_uint32_t mode = 0;
dbus_int32_t mode = -1;
dbus_int32_t strength = -1;
char * active_network_path = NULL;
dbus_bool_t link_active = FALSE;
@@ -705,7 +705,7 @@ static void nmwa_dbus_device_properties_cb (DBusPendingCall *pcall, void *user_d
DBUS_TYPE_STRING, &route,
DBUS_TYPE_STRING, &primary_dns,
DBUS_TYPE_STRING, &secondary_dns,
DBUS_TYPE_UINT32, &mode,
DBUS_TYPE_INT32, &mode,
DBUS_TYPE_INT32, &strength,
DBUS_TYPE_BOOLEAN,&link_active,
DBUS_TYPE_UINT32, &caps,

View File

@@ -103,17 +103,6 @@ typedef enum NMEncKeyType
#define NM_DEVICE_CAP_WIRELESS_SCAN 0x0004
/*
* Wireless network modes
*/
typedef enum NMNetworkMode
{
NETWORK_MODE_UNKNOWN = 0,
NETWORK_MODE_INFRA,
NETWORK_MODE_ADHOC
} NMNetworkMode;
/*
* Wireless network update types
*/

View File

@@ -23,6 +23,7 @@
#include "NetworkManagerUtils.h"
#include "nm-utils.h"
#include "NetworkManagerWireless.h"
#include <wireless.h>
/*
@@ -33,7 +34,7 @@ struct NMAccessPoint
guint refcount;
char * essid;
struct ether_addr * address;
NMNetworkMode mode;
int mode; /* from IW_MODE_* in wireless.h */
gint8 strength;
double freq;
guint16 rate;
@@ -89,7 +90,7 @@ NMAccessPoint * nm_ap_new (void)
return (NULL);
}
ap->mode = NETWORK_MODE_INFRA;
ap->mode = IW_MODE_INFRA;
ap->auth_method = NM_DEVICE_AUTH_METHOD_UNKNOWN;
ap->refcount = 1;
@@ -357,16 +358,17 @@ void nm_ap_set_address (NMAccessPoint *ap, const struct ether_addr * addr)
* Get/set functions for mode (ie Ad-Hoc, Infrastructure, etc)
*
*/
NMNetworkMode nm_ap_get_mode (const NMAccessPoint *ap)
int nm_ap_get_mode (const NMAccessPoint *ap)
{
g_return_val_if_fail (ap != NULL, NETWORK_MODE_UNKNOWN);
g_return_val_if_fail (ap != NULL, -1);
return (ap->mode);
return ap->mode;
}
void nm_ap_set_mode (NMAccessPoint *ap, const NMNetworkMode mode)
void nm_ap_set_mode (NMAccessPoint *ap, const int mode)
{
g_return_if_fail (ap != NULL);
g_return_if_fail ((mode == IW_MODE_ADHOC) || (mode == IW_MODE_INFRA));
ap->mode = mode;
}

View File

@@ -57,8 +57,8 @@ void nm_ap_set_encrypted (NMAccessPoint *ap, gboolean encrypted);
const struct ether_addr * nm_ap_get_address (const NMAccessPoint *ap);
void nm_ap_set_address (NMAccessPoint *ap, const struct ether_addr *addr);
NMNetworkMode nm_ap_get_mode (const NMAccessPoint *ap);
void nm_ap_set_mode (NMAccessPoint *ap, const NMNetworkMode mode);
int nm_ap_get_mode (const NMAccessPoint *ap);
void nm_ap_set_mode (NMAccessPoint *ap, const int mode);
gint8 nm_ap_get_strength (const NMAccessPoint *ap);
void nm_ap_set_strength (NMAccessPoint *ap, gint8 strength);

View File

@@ -348,7 +348,7 @@ static gboolean nm_device_wireless_init (NMDevice *dev)
nm_register_mutex_desc (opts->scan_mutex, "Scan Mutex");
nm_wireless_set_scan_interval (dev->app_data, dev, NM_WIRELESS_SCAN_INTERVAL_ACTIVE);
nm_device_set_mode (dev, NETWORK_MODE_INFRA);
nm_device_set_mode (dev, IW_MODE_INFRA);
/* Non-scanning devices show the entire allowed AP list as their
* available networks.
@@ -1923,13 +1923,13 @@ static gboolean nm_device_bring_down_wait (NMDevice *dev, gboolean cancelable)
* Get managed/infrastructure/adhoc mode on a device (currently wireless only)
*
*/
NMNetworkMode nm_device_get_mode (NMDevice *dev)
int nm_device_get_mode (NMDevice *dev)
{
NMSock *sk;
NMNetworkMode mode = NETWORK_MODE_UNKNOWN;
NMSock * sk;
int mode = -1;
g_return_val_if_fail (dev != NULL, NETWORK_MODE_UNKNOWN);
g_return_val_if_fail (nm_device_is_802_11_wireless (dev), NETWORK_MODE_UNKNOWN);
g_return_val_if_fail (dev != NULL, -1);
g_return_val_if_fail (nm_device_is_802_11_wireless (dev), -1);
/* Force the card into Managed/Infrastructure mode */
if ((sk = nm_dev_sock_open (dev, DEV_WIRELESS, __FUNCTION__, NULL)))
@@ -1942,24 +1942,15 @@ NMNetworkMode nm_device_get_mode (NMDevice *dev)
#endif
if (iw_get_ext (nm_dev_sock_get_fd (sk), nm_device_get_iface (dev), SIOCGIWMODE, &wrq) == 0)
{
switch (wrq.u.mode)
{
case IW_MODE_INFRA:
mode = NETWORK_MODE_INFRA;
break;
case IW_MODE_ADHOC:
mode = NETWORK_MODE_ADHOC;
break;
default:
break;
}
if ((mode == IW_MODE_ADHOC) || (mode == IW_MODE_INFRA))
mode = wrq.u.mode;
}
else
nm_warning ("nm_device_get_mode (%s): error getting card mode. errno = %d", nm_device_get_iface (dev), errno);
nm_dev_sock_close (sk);
}
return (mode);
return mode;
}
@@ -1969,14 +1960,14 @@ NMNetworkMode nm_device_get_mode (NMDevice *dev)
* Set managed/infrastructure/adhoc mode on a device (currently wireless only)
*
*/
gboolean nm_device_set_mode (NMDevice *dev, const NMNetworkMode mode)
gboolean nm_device_set_mode (NMDevice *dev, const int mode)
{
NMSock *sk;
gboolean success = FALSE;
g_return_val_if_fail (dev != NULL, FALSE);
g_return_val_if_fail (nm_device_is_802_11_wireless (dev), FALSE);
g_return_val_if_fail ((mode == NETWORK_MODE_INFRA) || (mode == NETWORK_MODE_ADHOC), FALSE);
g_return_val_if_fail ((mode == IW_MODE_INFRA) || (mode == IW_MODE_ADHOC), FALSE);
if (nm_device_get_mode (dev) == mode)
return TRUE;
@@ -1985,27 +1976,11 @@ gboolean nm_device_set_mode (NMDevice *dev, const NMNetworkMode mode)
if ((sk = nm_dev_sock_open (dev, DEV_WIRELESS, __FUNCTION__, NULL)))
{
struct iwreq wreq;
gboolean mode_good = FALSE;
switch (mode)
{
case NETWORK_MODE_INFRA:
wreq.u.mode = IW_MODE_INFRA;
mode_good = TRUE;
break;
case NETWORK_MODE_ADHOC:
wreq.u.mode = IW_MODE_ADHOC;
mode_good = TRUE;
break;
default:
mode_good = FALSE;
break;
}
if (mode_good)
{
#ifdef IOCTL_DEBUG
nm_info ("%s: About to SET IWMODE.", nm_device_get_iface (dev));
#endif
wreq.u.mode = mode;
if (iw_set_ext (nm_dev_sock_get_fd (sk), nm_device_get_iface (dev), SIOCSIWMODE, &wreq) == 0)
success = TRUE;
else
@@ -2013,14 +1988,13 @@ gboolean nm_device_set_mode (NMDevice *dev, const NMNetworkMode mode)
if (errno != ENODEV)
nm_warning ("nm_device_set_mode (%s): error setting card to %s mode. errno = %d",
nm_device_get_iface (dev),
mode == NETWORK_MODE_INFRA ? "Infrastructure" : (mode == NETWORK_MODE_ADHOC ? "adhoc" : "unknown"),
mode == IW_MODE_INFRA ? "Infrastructure" : (mode == IW_MODE_ADHOC ? "Ad-Hoc" : "unknown"),
errno);
}
}
nm_dev_sock_close (sk);
}
return (success);
return success;
}
@@ -2307,7 +2281,7 @@ static gboolean nm_device_set_wireless_config (NMDevice *dev, NMAccessPoint *ap)
nm_device_bring_down_wait (dev, 0);
nm_device_bring_up_wait (dev, 0);
nm_device_set_mode (dev, NETWORK_MODE_INFRA);
nm_device_set_mode (dev, IW_MODE_INFRA);
essid = nm_ap_get_essid (ap);
auth = nm_ap_get_auth_method (ap);
@@ -2315,7 +2289,7 @@ static gboolean nm_device_set_wireless_config (NMDevice *dev, NMAccessPoint *ap)
nm_device_set_mode (dev, nm_ap_get_mode (ap));
nm_device_set_bitrate (dev, 0);
if (nm_ap_get_user_created (ap) || (nm_ap_get_freq (ap) && (nm_ap_get_mode (ap) == NETWORK_MODE_ADHOC)))
if (nm_ap_get_user_created (ap) || (nm_ap_get_freq (ap) && (nm_ap_get_mode (ap) == IW_MODE_ADHOC)))
nm_device_set_frequency (dev, nm_ap_get_freq (ap));
else
nm_device_set_frequency (dev, 0); /* auto */
@@ -2354,7 +2328,7 @@ static gboolean nm_device_set_wireless_config (NMDevice *dev, NMAccessPoint *ap)
* on them. (Netgear WG511T/Atheros 5212 with madwifi drivers). Until we can get rate information
* from scanned access points out of iwlib, clamp bitrate for these cards at 11Mbps.
*/
if ((nm_ap_get_mode (ap) == NETWORK_MODE_ADHOC) && (nm_device_get_bitrate (dev) <= 0))
if ((nm_ap_get_mode (ap) == IW_MODE_ADHOC) && (nm_device_get_bitrate (dev) <= 0))
nm_device_set_bitrate (dev, 11000); /* In Kbps */
return TRUE;
@@ -3427,7 +3401,7 @@ gboolean nm_device_deactivate (NMDevice *dev)
{
nm_device_set_essid (dev, "");
nm_device_set_enc_key (dev, NULL, NM_DEVICE_AUTH_METHOD_NONE);
nm_device_set_mode (dev, NETWORK_MODE_INFRA);
nm_device_set_mode (dev, IW_MODE_INFRA);
nm_wireless_set_scan_interval (dev->app_data, dev, NM_WIRELESS_SCAN_INTERVAL_ACTIVE);
}
@@ -4110,14 +4084,14 @@ static gboolean nm_device_wireless_scan (gpointer user_data)
if ((sk = nm_dev_sock_open (dev, DEV_WIRELESS, __FUNCTION__, NULL)))
{
int err;
NMNetworkMode orig_mode = NETWORK_MODE_INFRA;
int orig_mode = IW_MODE_INFRA;
double orig_freq = 0;
int orig_rate = 0;
const int interval = 20;
struct iwreq wrq;
orig_mode = nm_device_get_mode (dev);
if (orig_mode == NETWORK_MODE_ADHOC)
if (orig_mode == IW_MODE_ADHOC)
{
orig_freq = nm_device_get_frequency (dev);
orig_rate = nm_device_get_bitrate (dev);
@@ -4126,7 +4100,7 @@ static gboolean nm_device_wireless_scan (gpointer user_data)
/* Must be in infrastructure mode during scan, otherwise we don't get a full
* list of scan results. Scanning doesn't work well in Ad-Hoc mode :(
*/
nm_device_set_mode (dev, NETWORK_MODE_INFRA);
nm_device_set_mode (dev, IW_MODE_INFRA);
nm_device_set_frequency (dev, 0);
wrq.u.data.pointer = NULL;
@@ -4159,7 +4133,7 @@ static gboolean nm_device_wireless_scan (gpointer user_data)
nm_device_set_mode (dev, orig_mode);
/* Only set frequency if ad-hoc mode */
if (orig_mode == NETWORK_MODE_ADHOC)
if (orig_mode == IW_MODE_ADHOC)
{
nm_device_set_frequency (dev, orig_freq);
nm_device_set_bitrate (dev, orig_rate);
@@ -4621,17 +4595,17 @@ static gboolean process_scan_results (NMDevice *dev, const guint8 *res_buf, guin
ap = nm_ap_new ();
nm_ap_set_address (ap, (const struct ether_addr *)(iwe->u.ap_addr.sa_data));
nm_ap_set_auth_method (ap, NM_DEVICE_AUTH_METHOD_NONE);
nm_ap_set_mode (ap, NETWORK_MODE_INFRA);
nm_ap_set_mode (ap, IW_MODE_INFRA);
break;
case SIOCGIWMODE:
switch (iwe->u.mode)
{
case IW_MODE_ADHOC:
nm_ap_set_mode (ap, NETWORK_MODE_ADHOC);
nm_ap_set_mode (ap, IW_MODE_ADHOC);
break;
case IW_MODE_MASTER:
case IW_MODE_INFRA:
nm_ap_set_mode (ap, NETWORK_MODE_INFRA);
nm_ap_set_mode (ap, IW_MODE_INFRA);
break;
default:
break;

View File

@@ -77,7 +77,8 @@ void nm_device_set_essid (NMDevice *dev, const char *essid);
void nm_device_get_ap_address (NMDevice *dev, struct ether_addr *addr);
NMNetworkMode nm_device_get_mode (NMDevice *dev);
int nm_device_get_mode (NMDevice *dev);
gboolean nm_device_set_mode (NMDevice *dev, const int mode);
guint32 nm_device_get_ip4_address (NMDevice *dev);
void nm_device_update_ip4_address (NMDevice *dev);
@@ -91,8 +92,6 @@ gboolean nm_device_get_supports_wireless_scan (NMDevice *dev);
gboolean nm_device_get_supports_carrier_detect (NMDevice *dev);
gboolean nm_device_set_mode (NMDevice *dev, const NMNetworkMode mode);
gint8 nm_device_get_signal_strength (NMDevice *dev);
void nm_device_update_signal_strength (NMDevice *dev);

View File

@@ -76,7 +76,7 @@ static gboolean nm_policy_activation_finish (NMActRequest *req)
nm_ap_set_address (ap, &addr);
/* Don't store MAC addresses for non-infrastructure networks */
if ((nm_ap_get_mode (ap) == NETWORK_MODE_INFRA) && nm_ethernet_address_is_valid (&addr))
if ((nm_ap_get_mode (ap) == IW_MODE_INFRA) && nm_ethernet_address_is_valid (&addr))
nm_dbus_add_network_address (data->dbus_connection, NETWORK_TYPE_ALLOWED, nm_ap_get_essid (ap), &addr);
}

View File

@@ -136,10 +136,10 @@ static DBusMessage *nm_dbus_device_get_mode (DBusConnection *connection, DBusMes
g_return_val_if_fail (data && data->data && data->dev && connection && message, NULL);
dev = data->dev;
if ((reply = dbus_message_new_method_return (message))) {
dbus_uint32_t mode;
mode = nm_device_get_mode (dev);
dbus_message_append_args (reply, DBUS_TYPE_UINT32, &mode, DBUS_TYPE_INVALID);
if ((reply = dbus_message_new_method_return (message)))
{
dbus_int32_t mode = (dbus_int32_t) nm_device_get_mode (dev);
dbus_message_append_args (reply, DBUS_TYPE_INT32, &mode, DBUS_TYPE_INVALID);
}
return reply;
@@ -335,7 +335,7 @@ static DBusMessage *nm_dbus_device_get_properties (DBusConnection *connection, D
struct ether_addr hw_addr;
char hw_addr_buf[20];
char * hw_addr_buf_ptr = &hw_addr_buf[0];
dbus_uint32_t mode = 0;
dbus_int32_t mode = -1;
dbus_int32_t strength = -1;
char * active_network_path = NULL;
dbus_bool_t link_active = (dbus_bool_t) nm_device_has_active_link (dev);
@@ -385,7 +385,7 @@ static DBusMessage *nm_dbus_device_get_properties (DBusConnection *connection, D
NMAPListIter * iter;
strength = (dbus_int32_t) nm_device_get_signal_strength (dev);
mode = (dbus_uint32_t) nm_device_get_mode (dev);
mode = (dbus_int32_t) nm_device_get_mode (dev);
if (req && (ap = nm_act_request_get_ap (req)))
{
@@ -432,7 +432,7 @@ static DBusMessage *nm_dbus_device_get_properties (DBusConnection *connection, D
DBUS_TYPE_STRING, &route,
DBUS_TYPE_STRING, &primary_dns,
DBUS_TYPE_STRING, &secondary_dns,
DBUS_TYPE_UINT32, &mode,
DBUS_TYPE_INT32, &mode,
DBUS_TYPE_INT32, &strength,
DBUS_TYPE_BOOLEAN,&link_active,
DBUS_TYPE_UINT32, &capabilities,

View File

@@ -218,10 +218,10 @@ static DBusMessage *nm_dbus_net_get_mode (DBusConnection *connection, DBusMessag
g_return_val_if_fail (data && data->data && data->dev && data->ap && connection && message, NULL);
if ((reply = dbus_message_new_method_return (message))) {
dbus_uint32_t mode;
mode = nm_ap_get_mode (data->ap);
dbus_message_append_args (reply, DBUS_TYPE_UINT32, &mode, DBUS_TYPE_INVALID);
if ((reply = dbus_message_new_method_return (message)))
{
dbus_int32_t mode = (dbus_int32_t) nm_ap_get_mode (data->ap);
dbus_message_append_args (reply, DBUS_TYPE_INT32, &mode, DBUS_TYPE_INVALID);
}
return reply;
@@ -244,7 +244,7 @@ static DBusMessage *nm_dbus_net_get_properties (DBusConnection *connection, DBus
double freq = nm_ap_get_freq (data->ap);
dbus_int32_t rate = nm_ap_get_rate (data->ap);
dbus_bool_t enc = nm_ap_get_encrypted (data->ap);
dbus_uint32_t mode = nm_ap_get_mode (data->ap);
dbus_int32_t mode = (dbus_int32_t) nm_ap_get_mode (data->ap);
memset (&hw_addr_buf[0], 0, 20);
if (nm_ap_get_address (data->ap))
@@ -257,7 +257,7 @@ static DBusMessage *nm_dbus_net_get_properties (DBusConnection *connection, DBus
DBUS_TYPE_DOUBLE, &freq,
DBUS_TYPE_INT32, &rate,
DBUS_TYPE_BOOLEAN,&enc,
DBUS_TYPE_UINT32, &mode,
DBUS_TYPE_INT32, &mode,
DBUS_TYPE_INVALID);
g_free (op);
}

View File

@@ -305,7 +305,7 @@ static DBusMessage *nm_dbus_nm_create_wireless_network (DBusConnection *connecti
nm_ap_set_enc_key_source (new_ap, key, (NMEncKeyType)key_type);
nm_ap_set_auth_method (new_ap, NM_DEVICE_AUTH_METHOD_OPEN_SYSTEM);
}
nm_ap_set_mode (new_ap, NETWORK_MODE_ADHOC);
nm_ap_set_mode (new_ap, IW_MODE_ADHOC);
nm_ap_set_user_created (new_ap, TRUE);
nm_policy_schedule_device_activation (nm_act_request_new (data->data, dev, new_ap, TRUE));

View File

@@ -26,6 +26,8 @@
#include <string.h>
#include <stdlib.h>
#include <iwlib.h>
#include "NetworkManager.h"
#include "nm-utils.h"
@@ -153,7 +155,7 @@ static void detail_network (DBusConnection *connection, const char *path, const
float flt_freq = freq / 1000000000;
gboolean active = (active_path && !strcmp (active_path, path)) ? TRUE : FALSE;
temp = g_strdup_printf ("%s Mode, Freq %.3f MHz, Strength %d%%%s", (mode == NETWORK_MODE_INFRA) ? "Infrastructure" : "Ad-Hoc",
temp = g_strdup_printf ("%s Mode, Freq %.3f MHz, Strength %d%%%s", (mode == IW_MODE_INFRA) ? "Infrastructure" : "Ad-Hoc",
flt_freq, strength, enc ? ", Encrypted" : "");
temp_essid = g_strdup_printf (" %s%s", active ? "*" : "", essid);
print_string (temp_essid, temp);
@@ -264,9 +266,9 @@ static void detail_device (DBusConnection *connection, const char *path)
/*
fprintf (stdout, "\n Wireless Settings\n");
if (mode == NETWORK_MODE_INFRA)
if (mode == IW_MODE_INFRA)
print_string (" Mode", "Infrastructure");
else if (mode == NETWORK_MODE_ADHOC)
else if (mode == IW_MODE_ADHOC)
print_string (" Mode", "Ad-Hoc");
str_strength = g_strdup_printf ("%d%%", strength);
print_string (" Strength", str_strength);