summaryrefslogtreecommitdiffstats
path: root/network/server.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2007-04-13 20:21:11 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2007-04-13 20:21:11 +0000
commit235f0862a242772d8e3e51cd4f4dd8277939bbe5 (patch)
tree8acedbc98a54383537afb67c84cb59c8d4183105 /network/server.c
parent4706fa6e70ea2e19c7892ade0323a35d4f0b5a47 (diff)
network: added register_nap_from_file
Diffstat (limited to 'network/server.c')
-rw-r--r--network/server.c45
1 files changed, 42 insertions, 3 deletions
diff --git a/network/server.c b/network/server.c
index c6215b8a..be6316a1 100644
--- a/network/server.c
+++ b/network/server.c
@@ -44,6 +44,7 @@
#include "logging.h"
#include "dbus.h"
#include "error.h"
+#include "textfile.h"
#define NETWORK_SERVER_INTERFACE "org.bluez.network.Server"
@@ -64,6 +65,7 @@ struct network_server {
bdaddr_t src; /* Bluetooth Local Address */
char *iface; /* Routing interface */
char *name; /* Server service name */
+ char *range; /* IP Address range */
char *path; /* D-Bus path */
dbus_bool_t secure;
uint32_t record_id; /* Service record id */
@@ -947,6 +949,9 @@ static void server_free(struct network_server *ns)
if (ns->name)
g_free(ns->name);
+ if (ns->range)
+ g_free(ns->range);
+
if (ns->path)
g_free(ns->path);
@@ -1015,13 +1020,47 @@ fail:
return -1;
}
-int register_nap_from_file(const bdaddr_t *src, const char *filename)
+int register_nap_from_file(DBusConnection *conn, const char *path,
+ const bdaddr_t *src, const char *filename)
{
- /* FIXME: extract name, description, secure, enabled, address range, routing ...*/
+ struct network_server *ns;
+ char *str;
+
+ ns = g_new0(struct network_server, 1);
+
+ ns->id = BNEP_SVC_NAP;
+ ns->name = textfile_get(filename, "name");
+ if (ns->name) {
+ /* Name is mandatory */
+ server_free(ns);
+ return -1;
+ }
+ ns->secure = FALSE;
+ str = textfile_get(filename, "secure");
+ if (str) {
+ if (strcmp("1", str) == 0)
+ ns->secure = TRUE;
+ g_free(str);
+ }
+
+ ns->range = textfile_get(filename, "address_range");
+ ns->iface = textfile_get(filename, "routing");
+
+ /* Register path */
+ if (!dbus_connection_register_object_path(conn, path,
+ &server_table, ns)) {
+ error("D-Bus failed to register %s path", path);
+ server_free(ns);
+ return -1;
+ }
+
+ /* FIXME: Missing enabled the server(if applied) */
+
return 0;
}
-int register_gn_from_file(const bdaddr_t *src, const char *filename)
+int register_gn_from_file(DBusConnection *conn, const char *path,
+ const bdaddr_t *src, const char *filename)
{
/* FIXME: extract name, description, secure, enabled, address range ...*/
return 0;