diff options
| -rw-r--r-- | network/manager.c | 4 | ||||
| -rw-r--r-- | network/server.c | 18 | ||||
| -rw-r--r-- | network/server.h | 1 | 
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); | 
