summaryrefslogtreecommitdiffstats
path: root/network/connection.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2007-05-17 17:05:47 +0000
committerLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2007-05-17 17:05:47 +0000
commitdf7260b7a01d10f92849ca9a862a2a2d6ffac865 (patch)
treecf8e317702e4e76c55b40fe1f9ff3b2ce627d617 /network/connection.c
parent8bd6348b59d94d40ad4e85e3561cbbf2b7a02cdd (diff)
Add LastConnection, DefaultConnection and ChangeDefaultConnection API methods and some minor fixes.
Diffstat (limited to 'network/connection.c')
-rw-r--r--network/connection.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/network/connection.c b/network/connection.c
index 68c53b7b..18bba87c 100644
--- a/network/connection.c
+++ b/network/connection.c
@@ -675,7 +675,8 @@ int connection_register(DBusConnection *conn, const char *path, bdaddr_t *src,
return 0;
}
-int connection_store(DBusConnection *conn, const char *path)
+int connection_store(DBusConnection *conn, const char *path,
+ gboolean default_path)
{
struct network_conn *nc;
const char *role;
@@ -696,17 +697,19 @@ int connection_store(DBusConnection *conn, const char *path)
role = bnep_name(nc->id);
snprintf(key, 32, "%s#%s", dst_addr, role);
- len = strlen(nc->name) + strlen(nc->desc) + 2;
- value = g_malloc0(len);
- snprintf(value, len, "%s:%s", nc->name, nc->desc);
-
ba2str(&nc->src, src_addr);
create_name(filename, PATH_MAX, STORAGEDIR, src_addr, "network");
create_file(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
- err = textfile_put(filename, key, value);
-
- g_free(value);
+ if (default_path)
+ err = textfile_put(filename, "default", key);
+ else {
+ len = strlen(nc->name) + strlen(nc->desc) + 2;
+ value = g_malloc0(len);
+ snprintf(value, len, "%s:%s", nc->name, nc->desc);
+ err = textfile_put(filename, key, value);
+ g_free(value);
+ }
return err;
}
@@ -774,3 +777,13 @@ int connection_remove_stored(DBusConnection *conn, const char *path)
return err;
}
+
+gboolean connection_is_connected(DBusConnection *conn, const char *path)
+{
+ struct network_conn *nc;
+
+ if (!dbus_connection_get_object_user_data(conn, path, (void *) &nc))
+ return FALSE;
+
+ return (nc->state == CONNECTED);
+}