From 57704487a484a6d599f12cee65b63f8daa7ecf8b Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 14 May 2007 12:28:55 +0000 Subject: Add method to retrieve adapter address --- network/connection.c | 29 +++++++++++++++++++++++++---- network/network-api.txt | 48 ++++++++++++++++++++++++++---------------------- 2 files changed, 51 insertions(+), 26 deletions(-) diff --git a/network/connection.c b/network/connection.c index d565fea2..9062c419 100644 --- a/network/connection.c +++ b/network/connection.c @@ -313,15 +313,36 @@ static int l2cap_connect(struct network_conn *nc) return 0; } +static DBusHandlerResult get_adapter(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + struct network_conn *nc = data; + DBusMessage *reply; + char addr[18]; + const char *paddr = addr; + + ba2str(&nc->src, addr); + + reply = dbus_message_new_method_return(msg); + if (!reply) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + dbus_message_append_args(reply, DBUS_TYPE_STRING, &paddr, + DBUS_TYPE_INVALID); + + return send_message_and_unref(conn, reply); +} + static DBusHandlerResult get_address(DBusConnection *conn, DBusMessage *msg, void *data) { struct network_conn *nc = data; DBusMessage *reply; - char raddr[18]; - const char *paddr = raddr; + char addr[18]; + const char *paddr = addr; + + ba2str(&nc->dst, addr); - ba2str(&nc->dst, raddr); reply = dbus_message_new_method_return(msg); if (!reply) return DBUS_HANDLER_RESULT_NEED_MEMORY; @@ -570,6 +591,7 @@ static void connection_unregister(DBusConnection *conn, void *data) } static DBusMethodVTable connection_methods[] = { + { "GetAdapter", get_adapter, "", "s" }, { "GetAddress", get_address, "", "s" }, { "GetUUID", get_uuid, "", "s" }, { "GetName", get_name, "", "s" }, @@ -698,4 +720,3 @@ gboolean connection_has_pending(DBusConnection *conn, const char *path) return (nc->state == CONNECTING); } - diff --git a/network/network-api.txt b/network/network-api.txt index f88679d6..aa562d74 100644 --- a/network/network-api.txt +++ b/network/network-api.txt @@ -14,16 +14,16 @@ Methods string CreateServer(string uuid) Creates a network server object (GN or NAP). - Possible errors:org.bluez.network.Error.AlreadyExists - org.bluez.network.Error.NotSupported - org.bluez.network.Error.ConnectionAttemptFailed - org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.AlreadyExists + org.bluez.network.Error.NotSupported + org.bluez.network.Error.ConnectionAttemptFailed + org.bluez.network.Error.Failed void RemoveServer(string path) Removes the network server object for given path. - Possible errors:org.bluez.network.Error.DoesNotExist - org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.DoesNotExist + org.bluez.network.Error.Failed array{string} ListServers() @@ -34,17 +34,17 @@ Methods string CreateServer(string uuid) Returns server path. - Possible errors:org.bluez.network.Error.DoesNotExist - org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.DoesNotExist + org.bluez.network.Error.Failed string CreateConnection(string address, string uuid) Creates a network connection object(NAP or GN). - Possible errors:org.bluez.network.Error.AlreadyExists - org.bluez.network.Error.NotSupported - org.bluez.network.Error.ConnectionAttemptFailed - org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.AlreadyExists + org.bluez.network.Error.NotSupported + org.bluez.network.Error.ConnectionAttemptFailed + org.bluez.network.Error.Failed void RemoveConnection(string path) @@ -90,14 +90,14 @@ Methods string GetUUID() Enable server and updates service record. - Possible errors:org.bluez.network.Error.AlreadyExists - org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.AlreadyExists + org.bluez.network.Error.Failed void Disable() Disable server and remove service record. - Possible errors:org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.Failed void SetName(string name) @@ -139,7 +139,11 @@ Network Connection hierarchy (experimental) Interface org.bluez.network.Connection Object path /org/bluez/network/connection* -Methods string GetAddress() +Methods string GetAdapter() + + Returns the Bluetooth address of the adapter. + + string GetAddress() Returns the Bluetooth address of the ending point. @@ -152,33 +156,33 @@ Methods string GetAddress() Returns the string representation of connected host. - Possible errors:org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.Failed string GetDescription() Returns the string description of connected host. - Possible errors:org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.Failed string GetInterface() Returns the string network interface. - Possible errors:org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.Failed string Connect() Connects to host and return the network interface created. - Possible errors:org.bluez.network.Error.ConnectionAttemptFailed - org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.ConnectionAttemptFailed + org.bluez.network.Error.Failed void Disconnect() Disconnects to host. - Possible errors:org.bluez.network.Error.Failed + Possible errors: org.bluez.network.Error.Failed bool IsConnected() -- cgit