summaryrefslogtreecommitdiffstats
path: root/dundee
diff options
context:
space:
mode:
Diffstat (limited to 'dundee')
-rw-r--r--dundee/device.c14
-rw-r--r--dundee/dundee.h3
2 files changed, 14 insertions, 3 deletions
diff --git a/dundee/device.c b/dundee/device.c
index e5f64247..2d84aaa9 100644
--- a/dundee/device.c
+++ b/dundee/device.c
@@ -270,11 +270,13 @@ err:
device->pending = NULL;
}
-static void disconnect_callback(const struct dundee_error *error, void *data)
+void dundee_device_disconnect(const struct dundee_error *error,
+ struct dundee_device *device)
{
- struct dundee_device *device = data;
+ if (device == NULL)
+ return;
- DBG("%p", device);
+ DBG("%s", device->path);
g_at_chat_unref(device->chat);
device->chat = NULL;
@@ -295,6 +297,12 @@ out:
device->pending = NULL;
}
+static void disconnect_callback(const struct dundee_error *error, void *data)
+{
+ struct dundee_device *device = data;
+ dundee_device_disconnect(error, device);
+}
+
static gboolean ppp_connect_timeout(gpointer user_data)
{
struct dundee_device *device = user_data;
diff --git a/dundee/dundee.h b/dundee/dundee.h
index daf78a54..1889d84a 100644
--- a/dundee/dundee.h
+++ b/dundee/dundee.h
@@ -130,6 +130,9 @@ struct dundee_device *dundee_device_create(struct dundee_device_driver *d);
int dundee_device_register(struct dundee_device *device);
void dundee_device_unregister(struct dundee_device *device);
+void dundee_device_disconnect(const struct dundee_error *error,
+ struct dundee_device *device);
+
void dundee_device_set_data(struct dundee_device *device, void *data);
void *dundee_device_get_data(struct dundee_device *device);