~mdz/network-manager/ubuntu.0.7

« back to all changes in this revision

Viewing changes to libnm-glib/nm-device-802-11-wireless.c

  • Committer: tambeti
  • Date: 2007-02-12 09:23:43 UTC
  • Revision ID: vcs-imports@canonical.com-20070212092343-96d46863e2821ee2
2007-02-12  Tambet Ingo  <tambet@ximian.com>

        Totally break NetworkManager. Please use 0.6 branch until futher notice.

        * src/:
                - Remove old low-level dbus interface implementations and replace them
                  with dbus-glib one.

        * configure.in:
                - Require dbus-glib >= 0.72.
                - Plug in new sources to build.

        * libnm-glib/:
                - Implement GObject wrappers on top of DBUS glib auto-generated bindings
                  to make it more convenient to use from GObject based programs.

        * introspection/:
                - Implement DBUS XML introspection files, used by both NM and libnm-glib.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "nm-device-802-11-wireless.h"
 
2
#include "nm-device-private.h"
 
3
 
 
4
#include "nm-device-802-11-wireless-bindings.h"
 
5
 
 
6
G_DEFINE_TYPE (NMDevice80211Wireless, nm_device_802_11_wireless, NM_TYPE_DEVICE)
 
7
 
 
8
static void
 
9
nm_device_802_11_wireless_init (NMDevice80211Wireless *device)
 
10
{
 
11
}
 
12
 
 
13
static void
 
14
nm_device_802_11_wireless_class_init (NMDevice80211WirelessClass *device_class)
 
15
{
 
16
}
 
17
 
 
18
NMDevice80211Wireless *
 
19
nm_device_802_11_wireless_new (DBusGConnection *connection, const char *path)
 
20
{
 
21
        g_return_val_if_fail (connection != NULL, NULL);
 
22
        g_return_val_if_fail (path != NULL, NULL);
 
23
 
 
24
        return (NMDevice80211Wireless *) g_object_new (NM_TYPE_DEVICE_802_11_WIRELESS,
 
25
                                                                                                   "name", NM_DBUS_SERVICE,
 
26
                                                                                                   "path", path, 
 
27
                                                                                                   "interface", NM_DBUS_INTERFACE_DEVICE_WIRELESS,
 
28
                                                                                                   "connection", connection,
 
29
                                                                                                   NULL);
 
30
}
 
31
 
 
32
char *
 
33
nm_device_802_11_wireless_get_address (NMDevice80211Wireless *device)
 
34
{
 
35
        GValue value = {0,};
 
36
        char *address = NULL;
 
37
 
 
38
        g_return_val_if_fail (NM_IS_DEVICE_802_11_WIRELESS (device), NULL);
 
39
 
 
40
        if (nm_dbus_get_property (DBUS_G_PROXY (device),
 
41
                                                          NM_DBUS_INTERFACE_DEVICE_WIRELESS,
 
42
                                                          "Address",
 
43
                                                          &value))
 
44
                address = g_strdup (g_value_get_string (&value));
 
45
 
 
46
        return address;
 
47
}
 
48
 
 
49
int
 
50
nm_device_802_11_wireless_get_mode (NMDevice80211Wireless *device)
 
51
{
 
52
        GValue value = {0,};
 
53
        int mode = 0;
 
54
 
 
55
        g_return_val_if_fail (NM_IS_DEVICE_802_11_WIRELESS (device), 0);
 
56
 
 
57
        if (nm_dbus_get_property (DBUS_G_PROXY (device),
 
58
                                                          NM_DBUS_INTERFACE_DEVICE_WIRELESS,
 
59
                                                          "Node",
 
60
                                                          &value))
 
61
                mode = g_value_get_int (&value);
 
62
 
 
63
        return mode;
 
64
}
 
65
 
 
66
NMAccessPoint *
 
67
nm_device_802_11_wireless_get_active_network (NMDevice80211Wireless *device)
 
68
{
 
69
        GValue value = {0,};
 
70
        NMAccessPoint *ap = NULL;
 
71
 
 
72
        g_return_val_if_fail (NM_IS_DEVICE_802_11_WIRELESS (device), NULL);
 
73
 
 
74
        if (nm_dbus_get_property (DBUS_G_PROXY (device),
 
75
                                                          NM_DBUS_INTERFACE_DEVICE_WIRELESS,
 
76
                                                          "ActiveNetwork",
 
77
                                                          &value)) {
 
78
                DBusGConnection *connection = NULL;
 
79
 
 
80
                g_object_get (device, "connection", &connection, NULL);
 
81
                ap = nm_access_point_new (connection, g_value_get_string (&value));
 
82
        }
 
83
 
 
84
        return ap;
 
85
}
 
86
 
 
87
GSList *
 
88
nm_device_802_11_wireless_get_networks (NMDevice80211Wireless *device)
 
89
{
 
90
        GSList *list = NULL;
 
91
        GPtrArray *array = NULL;
 
92
        GError *err = NULL;
 
93
 
 
94
        g_return_val_if_fail (NM_IS_DEVICE_802_11_WIRELESS (device), NULL);
 
95
 
 
96
        if (!org_freedesktop_NetworkManager_Device_Wireless_get_active_networks (DBUS_G_PROXY (device), &array, &err)) {
 
97
                g_warning ("Error in get_networks: %s", err->message);
 
98
                g_error_free (err);
 
99
        } else {
 
100
                DBusGConnection *connection = NULL;
 
101
                int i;
 
102
 
 
103
                g_object_get (device, "connection", &connection, NULL);
 
104
                for (i = 0; i < array->len; i++) {
 
105
                        NMAccessPoint *ap = nm_access_point_new (connection, g_ptr_array_index (array, i));
 
106
                        list = g_slist_prepend (list, ap);
 
107
                }
 
108
 
 
109
                list = g_slist_reverse (list);
 
110
                g_ptr_array_free (array, TRUE);
 
111
        }
 
112
 
 
113
        return list;
 
114
}
 
115
 
 
116
void
 
117
nm_device_802_11_wireless_activate (NMDevice80211Wireless *device,
 
118
                                                                        NMAccessPoint *ap,
 
119
                                                                        gboolean user_requested)
 
120
{
 
121
        GError *err = NULL;
 
122
 
 
123
        g_return_if_fail (NM_IS_DEVICE_802_11_WIRELESS (device));
 
124
        g_return_if_fail (NM_IS_ACCESS_POINT (ap));
 
125
 
 
126
        if (!org_freedesktop_NetworkManager_Device_Wireless_activate (DBUS_G_PROXY (device),
 
127
                                                                                                                                  dbus_g_proxy_get_path (DBUS_G_PROXY (ap)),
 
128
                                                                                                                                  user_requested,
 
129
                                                                                                                                  &err)) {
 
130
                g_warning ("Error in wireless_activate: %s", err->message);
 
131
                g_error_free (err);
 
132
        }
 
133
}