diff options
| author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-05-07 18:08:13 +0000 | 
|---|---|---|
| committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-05-07 18:08:13 +0000 | 
| commit | 7026c4f01e50040d2539a6ca7f80cb533210e8dd (patch) | |
| tree | 7824f2dfefdc9587d6a267665665bc7897410329 | |
| parent | 500a7637d7eae204fbb74a6602afa3f08a040d17 (diff) | |
serial: get the default adapter address
| -rw-r--r-- | serial/manager.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/serial/manager.c b/serial/manager.c index 30380d9d..36711c1a 100644 --- a/serial/manager.c +++ b/serial/manager.c @@ -32,6 +32,10 @@  #include <string.h>  #include <glib.h> +#include <bluetooth/bluetooth.h> +#include <bluetooth/hci.h> +#include <bluetooth/hci_lib.h> +  #include "dbus.h"  #include "logging.h" @@ -54,13 +58,23 @@ static DBusHandlerResult err_invalid_args(DBusConnection *conn,  				SERIAL_ERROR_INTERFACE ".InvalidArguments", str));  } +static DBusHandlerResult err_failed(DBusConnection *conn, +				DBusMessage *msg, const char *str) +{ +	return send_message_and_unref(conn, +			dbus_message_new_error(msg, +				SERIAL_ERROR_INTERFACE ".Failed", str)); +} +  static DBusHandlerResult connect_service(DBusConnection *conn,  					DBusMessage *msg, void *data)  {  	DBusError derr; +	bdaddr_t src;  	const char *addr, *pattern;  	char *endptr;  	long val; +	int dev_id;  	/* FIXME: Check if it already exist or if there is pending connect */ @@ -74,6 +88,10 @@ static DBusHandlerResult connect_service(DBusConnection *conn,  		return DBUS_HANDLER_RESULT_HANDLED;  	} +	dev_id = hci_get_route(NULL); +	if ((dev_id < 0) ||  (hci_devba(dev_id, &src) < 0)) +		return err_failed(conn, msg, "Adapter not available"); +  	/* UUID 128*/  	if (strlen(pattern) == 36) {  		char tmp[37]; | 
