summaryrefslogtreecommitdiffstats
path: root/network
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2007-04-16 13:14:07 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2007-04-16 13:14:07 +0000
commite968bf544679fbf8565b2354cb4beac3641538e4 (patch)
tree22d64726c480e58b3541b194ac07ddbebc9f9d14 /network
parente5ba646776ba7c5c5c9c9d630bbfc8793f1c3b4e (diff)
network: added server_remove_stored function
Diffstat (limited to 'network')
-rw-r--r--network/manager.c4
-rw-r--r--network/server.c18
-rw-r--r--network/server.h1
3 files changed, 21 insertions, 2 deletions
diff --git a/network/manager.c b/network/manager.c
index c546ed0c..f41d395e 100644
--- a/network/manager.c
+++ b/network/manager.c
@@ -168,6 +168,8 @@ static DBusHandlerResult remove_path(DBusConnection *conn,
if (!reply)
return DBUS_HANDLER_RESULT_NEED_MEMORY;
+ /* Remove the nap or gn file from the file system */
+ server_remove_stored(conn, path);
if (!dbus_connection_unregister_object_path(conn, path))
error("Network path unregister failed");
@@ -551,7 +553,6 @@ static DBusHandlerResult create_server(DBusConnection *conn,
static DBusHandlerResult remove_server(DBusConnection *conn,
DBusMessage *msg, void *data)
{
- /* FIXME: Remove from the storage */
return remove_path(conn, msg, &server_paths, "ServerRemoved");
}
@@ -644,7 +645,6 @@ static DBusHandlerResult create_connection(DBusConnection *conn,
static DBusHandlerResult remove_connection(DBusConnection *conn,
DBusMessage *msg, void *data)
{
- /* FIXME: Remove from the storage */
return remove_path(conn, msg, &connection_paths, "ConnectionRemoved");
}
diff --git a/network/server.c b/network/server.c
index 9a7cd4d4..160f8910 100644
--- a/network/server.c
+++ b/network/server.c
@@ -1099,3 +1099,21 @@ int server_store(DBusConnection *conn, const char *path)
return 0;
}
+
+int server_remove_stored(DBusConnection *conn, const char *path)
+{
+ struct network_server *ns;
+ char filename[PATH_MAX + 1];
+ char addr[18];
+
+ if (!dbus_connection_get_object_path_data(conn, path, (void *) &ns))
+ return -ENOENT;
+
+ ba2str(&ns->src, addr);
+ if (ns->id == BNEP_SVC_NAP)
+ create_name(filename, PATH_MAX, STORAGEDIR, addr, "nap");
+ else
+ create_name(filename, PATH_MAX, STORAGEDIR, addr, "gn");
+
+ return remove(filename);
+}
diff --git a/network/server.h b/network/server.h
index e762da9d..30016f3e 100644
--- a/network/server.h
+++ b/network/server.h
@@ -27,3 +27,4 @@ int server_register_from_file(DBusConnection *conn, const char *path,
const bdaddr_t *src, uint16_t id, const char *filename);
int server_store(DBusConnection *conn, const char *path);
+int server_remove_stored(DBusConnection *conn, const char *path);