diff options
| author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-04-16 19:32:49 +0000 | 
|---|---|---|
| committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-04-16 19:32:49 +0000 | 
| commit | d2692a02cf86935b4c96198eff694a01c3001890 (patch) | |
| tree | 4668fe995768aa44dbb98b48d8649d9b0ebf8b3e /network/server.c | |
| parent | 6745ef8707548a27267184c29dd126945da4b19e (diff) | |
network: fixed default adapter
Diffstat (limited to 'network/server.c')
| -rw-r--r-- | network/server.c | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/network/server.c b/network/server.c index 754a37dc..e47c06ac 100644 --- a/network/server.c +++ b/network/server.c @@ -31,9 +31,12 @@  #include <errno.h>  #include <sys/socket.h>  #include <sys/ioctl.h> +#include <sys/stat.h>  #include <net/if.h>  #include <bluetooth/bluetooth.h> +#include <bluetooth/hci.h> +#include <bluetooth/hci_lib.h>  #include <bluetooth/bnep.h>  #include <bluetooth/l2cap.h>  #include <bluetooth/sdp.h> @@ -723,6 +726,17 @@ static DBusHandlerResult enable(DBusConnection *conn,  	if (ns->io)  		return err_already_exists(conn, msg, "Server already enabled"); +	if (bacmp(&ns->src, BDADDR_ANY) == 0) { +		int dev_id; + +		dev_id = hci_get_route(NULL); +		if ((dev_id < 0) || (hci_devba(dev_id, &ns->src) < 0)) +			return err_failed(conn, msg, "Adapter not available"); + +		/* Store the server info */ +		server_store(conn, ns->path); +	} +  	reply = dbus_message_new_method_return(msg);  	if (!reply)  		return DBUS_HANDLER_RESULT_NEED_MEMORY; @@ -1114,6 +1128,8 @@ int server_store(DBusConnection *conn, const char *path)  	else  		create_name(filename, PATH_MAX, STORAGEDIR, addr, "gn"); +	create_file(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); +  	textfile_put(filename, "name", ns->name);  	if (ns->iface) | 
