From f76a86d2b0947fd0f7928423ddbaca412612ed58 Mon Sep 17 00:00:00 2001 From: Andrew Zaborowski Date: Tue, 26 Jul 2016 14:42:21 +0200 Subject: [PATCH] netdev: Add a NETDEV_RESULT_ABORTED To be used so that the callback passed to netdev_connect can still be called when the connection attempt is being aborted. --- src/device.c | 13 ++++++++++--- src/netdev.h | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/device.c b/src/device.c index 3ce676ea..80a463bf 100644 --- a/src/device.c +++ b/src/device.c @@ -580,9 +580,16 @@ static void device_connect_cb(struct netdev *netdev, enum netdev_result result, struct device *device = user_data; if (result != NETDEV_RESULT_OK) { - if (device->connect_pending) - dbus_pending_reply(&device->connect_pending, - dbus_error_failed(device->connect_pending)); + struct l_dbus_message *reply; + + if (device->connect_pending) { + if (result == NETDEV_RESULT_ABORTED) + reply = dbus_error_aborted(device->connect_pending); + else + reply = dbus_error_failed(device->connect_pending); + + dbus_pending_reply(&device->connect_pending, reply); + } if (device->state == DEVICE_STATE_CONNECTING) device_disassociated(device); diff --git a/src/netdev.h b/src/netdev.h index a447b6a9..1a810405 100644 --- a/src/netdev.h +++ b/src/netdev.h @@ -32,6 +32,7 @@ enum netdev_result { NETDEV_RESULT_ASSOCIATION_FAILED, NETDEV_RESULT_HANDSHAKE_FAILED, NETDEV_RESULT_KEY_SETTING_FAILED, + NETDEV_RESULT_ABORTED, }; enum netdev_event {