diff options
-rw-r--r-- | network/manager.c | 2 | ||||
-rw-r--r-- | network/server.c | 28 | ||||
-rw-r--r-- | network/server.h | 2 |
3 files changed, 31 insertions, 1 deletions
diff --git a/network/manager.c b/network/manager.c index ed793592..86dc26dc 100644 --- a/network/manager.c +++ b/network/manager.c @@ -397,7 +397,7 @@ static void get_address_reply(DBusPendingCall *call, void *data) goto fail; } - network_store_info(&src, pr->id, FALSE); + server_store(pr->conn, pr->path); server_paths = g_slist_append(server_paths, g_strdup(pr->path)); diff --git a/network/server.c b/network/server.c index 053c2517..9a7cd4d4 100644 --- a/network/server.c +++ b/network/server.c @@ -1071,3 +1071,31 @@ int server_register_from_file(DBusConnection *conn, const char *path, return 0; } + +int server_store(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"); + + textfile_put(filename, "name", ns->name); + + if (ns->iface) + textfile_put(filename, "routing", ns->iface); + + if (ns->range) + textfile_put(filename, "range", ns->range); + + textfile_put(filename, "secure", ns->secure ? "1": "0"); + + return 0; +} diff --git a/network/server.h b/network/server.h index 92d82f2f..e762da9d 100644 --- a/network/server.h +++ b/network/server.h @@ -25,3 +25,5 @@ int server_register(DBusConnection *conn, const char *path, bdaddr_t *src, uint16_t id); 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); |