summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-01-16 06:59:22 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-01-16 06:59:22 +0100
commit199daf70bac7eb1d2d7fdafc66b2a1baba188bdc (patch)
tree03a67bdfd2fef8286ed5a043c570c9dc24c5d599
parentb6af353282ffb3a90f9cce4aa408ac2347117f11 (diff)
downloadconnman-199daf70bac7eb1d2d7fdafc66b2a1baba188bdc.tar.gz
connman-199daf70bac7eb1d2d7fdafc66b2a1baba188bdc.tar.bz2
connman-199daf70bac7eb1d2d7fdafc66b2a1baba188bdc.zip
Include signal strength for reported networks
-rw-r--r--include/iface.h3
-rw-r--r--plugins/80211.c6
-rw-r--r--src/iface.c7
3 files changed, 11 insertions, 5 deletions
diff --git a/include/iface.h b/include/iface.h
index 57a4d72e..6a80178a 100644
--- a/include/iface.h
+++ b/include/iface.h
@@ -153,6 +153,9 @@ extern void connman_iface_indicate_carrier_on(struct connman_iface *iface);
extern void connman_iface_indicate_carrier_off(struct connman_iface *iface);
extern void connman_iface_indicate_configured(struct connman_iface *iface);
+extern void connman_iface_indicate_station(struct connman_iface *iface,
+ const char *name, int strength);
+
extern int connman_iface_get_ipv4(struct connman_iface *iface,
struct connman_ipv4 *ipv4);
extern int connman_iface_set_ipv4(struct connman_iface *iface,
diff --git a/plugins/80211.c b/plugins/80211.c
index a94551dd..53b36b60 100644
--- a/plugins/80211.c
+++ b/plugins/80211.c
@@ -70,8 +70,10 @@ static void report_station(struct connman_iface *iface,
if (station == NULL)
return;
- if (station->name)
- connman_iface_indicate_station(iface, station->name);
+ if (station->name == NULL)
+ return;
+
+ connman_iface_indicate_station(iface, station->name, station->qual);
}
static struct station_data *create_station(struct iface_data *iface,
diff --git a/src/iface.c b/src/iface.c
index 1662fb7a..a412dab4 100644
--- a/src/iface.c
+++ b/src/iface.c
@@ -289,7 +289,7 @@ void connman_iface_indicate_configured(struct connman_iface *iface)
}
}
-static void append_station(DBusMessage *reply, const char *name)
+static void append_station(DBusMessage *reply, const char *name, int signal)
{
DBusMessageIter array, dict;
@@ -301,12 +301,13 @@ static void append_station(DBusMessage *reply, const char *name)
DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);
append_entry(&dict, "ESSID", DBUS_TYPE_STRING, &name);
+ append_entry(&dict, "Signal", DBUS_TYPE_UINT16, &signal);
dbus_message_iter_close_container(&array, &dict);
}
void connman_iface_indicate_station(struct connman_iface *iface,
- const char *name)
+ const char *name, int strength)
{
DBusMessage *signal;
@@ -317,7 +318,7 @@ void connman_iface_indicate_station(struct connman_iface *iface,
if (signal == NULL)
return;
- append_station(signal, name);
+ append_station(signal, name, strength);
dbus_connection_send(connection, signal, NULL);
dbus_message_unref(signal);