From d5a97358c92fb7ee209e06acff01b119b37c3bf5 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Fri, 23 Nov 2012 13:51:47 +0200 Subject: [PATCH] test: Add auto-trust and auto-connect to simple-agent --- test/simple-agent | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/simple-agent b/test/simple-agent index 092dbe287..465857b83 100755 --- a/test/simple-agent +++ b/test/simple-agent @@ -10,7 +10,9 @@ import dbus.service import dbus.mainloop.glib from optparse import OptionParser +bus = None device_obj = None +dev_path = None def ask(prompt): try: @@ -18,6 +20,16 @@ def ask(prompt): except: return input(prompt) +def set_trusted(path): + props = dbus.Interface(bus.get_object("org.bluez", path), + "org.freedesktop.DBus.Properties") + props.Set("org.bluez.Device", "Trusted", True) + +def dev_connect(path): + dev = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device") + dev.Connect() + class Rejected(dbus.DBusException): _dbus_error_name = "org.bluez.Error.Rejected" @@ -47,12 +59,14 @@ class Agent(dbus.service.Object): in_signature="o", out_signature="s") def RequestPinCode(self, device): print("RequestPinCode (%s)" % (device)) + set_trusted(device) return ask("Enter PIN Code: ") @dbus.service.method("org.bluez.Agent", in_signature="o", out_signature="u") def RequestPasskey(self, device): print("RequestPasskey (%s)" % (device)) + set_trusted(device) passkey = ask("Enter passkey: ") return dbus.UInt32(passkey) @@ -73,6 +87,7 @@ class Agent(dbus.service.Object): print("RequestConfirmation (%s, %06d)" % (device, passkey)) confirm = ask("Confirm passkey (yes/no): ") if (confirm == "yes"): + set_trusted(device) return raise Rejected("Passkey doesn't match") @@ -92,6 +107,8 @@ class Agent(dbus.service.Object): def pair_reply(): print("Device paired") + set_trusted(dev_path) + dev_connect(dev_path) mainloop.quit() def pair_error(error): -- 2.47.3