diff options
author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2007-03-16 20:44:42 +0000 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2007-03-16 20:44:42 +0000 |
commit | 1055292b83db7b5eb211a07d1d05c3450faaef20 (patch) | |
tree | 024c58d570bf2f5d4c3809e2f41e1364eff1d98c | |
parent | 7ba9c777c7755dc380443f29f41fcd2a61e1b7df (diff) |
Initial implementation of network server interface.
-rw-r--r-- | network/server.c | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/network/server.c b/network/server.c index b8fe0382..8695aeaa 100644 --- a/network/server.c +++ b/network/server.c @@ -25,4 +25,139 @@ #include <config.h> #endif +#include <bluetooth/bluetooth.h> + +#include <glib.h> + +#include "logging.h" +#include "dbus.h" +#include "error.h" + +#define NETWORK_SERVER_INTERFACE "org.bluez.network.Server" + #include "server.h" + +struct network_server { + char *path; +}; + +static DBusHandlerResult get_uuid(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult enable(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult disable(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult set_name(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult get_name(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult set_address_range(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult set_routing(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult set_security(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult get_security(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult server_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *iface, *member; + + iface = dbus_message_get_interface(msg); + member = dbus_message_get_member(msg); + + if (strcmp(NETWORK_SERVER_INTERFACE, iface)) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (strcmp(member, "GetUUID") == 0) + return get_uuid(conn, msg, data); + + if (strcmp(member, "Enable") == 0) + return enable(conn, msg, data); + + if (strcmp(member, "Disable") == 0) + return disable(conn, msg, data); + + if (strcmp(member, "SetName") == 0) + return set_name(conn, msg, data); + + if (strcmp(member, "GetName") == 0) + return get_name(conn, msg, data); + + if (strcmp(member, "SetAddressRange") == 0) + return set_address_range(conn, msg, data); + + if (strcmp(member, "SetRouting") == 0) + return set_routing(conn, msg, data); + + if (strcmp(member, "SetSecurity") == 0) + return set_security(conn, msg, data); + + if (strcmp(member, "GetSecurity") == 0) + return get_security(conn, msg, data); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static void server_free(struct network_server *ns) +{ + if (!ns) + return; + + if (ns->path) + g_free(ns->path); + + g_free(ns); +} + +static void server_unregister(DBusConnection *conn, void *data) +{ + struct network_server *ns = data; + + info("Unregistered server path %s", ns->path); + + server_free(ns); +} + +/* Virtual table to handle server object path hierarchy */ +static const DBusObjectPathVTable server_table = { + .message_function = server_message, + .unregister_function = server_unregister, +}; |