summaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-08-14 17:05:34 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-08-15 13:49:46 +0300
commit3db6c5de810977be99cc44941247847147b62d96 (patch)
treebde96816a17f21ee97de501791a688f812b419b7 /src/service.c
parent41516dd2c14e1d3cbd66f92f08d3515a2b5a0680 (diff)
downloadconnman-3db6c5de810977be99cc44941247847147b62d96.tar.gz
connman-3db6c5de810977be99cc44941247847147b62d96.tar.bz2
connman-3db6c5de810977be99cc44941247847147b62d96.zip
service: Remember provider pending dbus message
The provider connect dbus reply message is stored in service until provider is connected.
Diffstat (limited to 'src/service.c')
-rw-r--r--src/service.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c
index c5fe0231..205573a6 100644
--- a/src/service.c
+++ b/src/service.c
@@ -105,6 +105,7 @@ struct connman_service {
char *private_key_passphrase;
char *phase2;
DBusMessage *pending;
+ DBusMessage *provider_pending;
guint timeout;
struct connman_stats stats;
struct connman_stats stats_roaming;
@@ -3468,6 +3469,31 @@ static void reply_pending(struct connman_service *service, int error)
}
}
+connman_bool_t
+__connman_service_is_provider_pending(struct connman_service *service)
+{
+ if (service == NULL)
+ return FALSE;
+
+ if (service->provider_pending != NULL)
+ return TRUE;
+
+ return FALSE;
+}
+
+void __connman_service_set_provider_pending(struct connman_service *service,
+ DBusMessage *msg)
+{
+ if (service->provider_pending != NULL) {
+ DBG("service %p provider pending msg %p already exists",
+ service, service->provider_pending);
+ return;
+ }
+
+ service->provider_pending = msg;
+ return;
+}
+
static void check_pending_msg(struct connman_service *service)
{
if (service->pending == NULL)