From e968bf544679fbf8565b2354cb4beac3641538e4 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Mon, 16 Apr 2007 13:14:07 +0000 Subject: network: added server_remove_stored function --- network/manager.c | 4 ++-- network/server.c | 18 ++++++++++++++++++ network/server.h | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) (limited to 'network') 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); -- cgit