summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/adapter.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/adapter.c b/src/adapter.c
index e62f38b..a6d4631 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -109,9 +109,41 @@ static DBusMessage *set_property(DBusConnection *conn,
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
+static DBusMessage *start_poll(DBusConnection *conn,
+ DBusMessage *msg, void *data)
+{
+ struct near_adapter *adapter = data;
+ int err;
+
+ DBG("conn %p", conn);
+
+ err = __near_netlink_start_poll(adapter->idx, adapter->protocols);
+ if (err < 0)
+ return __near_error_failed(msg, -err);
+
+ return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+}
+
+static DBusMessage *stop_poll(DBusConnection *conn,
+ DBusMessage *msg, void *data)
+{
+ struct near_adapter *adapter = data;
+ int err;
+
+ DBG("conn %p", conn);
+
+ err = __near_netlink_stop_poll(adapter->idx);
+ if (err < 0)
+ return __near_error_failed(msg, -err);
+
+ return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+}
+
static GDBusMethodTable adapter_methods[] = {
{ "GetProperties", "", "a{sv}", get_properties },
{ "SetProperty", "sv", "", set_property },
+ { "StartPoll", "", "", start_poll },
+ { "StopPoll", "", "", stop_poll },
{ },
};