Diff between 28c1a744528ca9ce321960088eb18a6bc989a754 and 58345dec54466d5de52d0afd9ed835940d027ee8

Changed Files

File Additions Deletions Status
test/simple-agent +15 -2 modified

Full Patch

diff --git a/test/simple-agent b/test/simple-agent
index 1a5b4a6..092dbe2 100755
--- a/test/simple-agent
+++ b/test/simple-agent
@@ -10,6 +10,8 @@ import dbus.service
 import dbus.mainloop.glib
 from optparse import OptionParser
 
+device_obj = None
+
 def ask(prompt):
 	try:
 		return raw_input(prompt)
@@ -93,7 +95,14 @@ def pair_reply():
 	mainloop.quit()
 
 def pair_error(error):
-	print("Creating device failed: %s" % (error))
+	err_name = error.get_dbus_name()
+	if err_name == "org.freedesktop.DBus.Error.NoReply" and device_obj:
+		print("Timed out. Cancelling pairing")
+		device_obj.CancelPairing()
+	else:
+		print("Creating device failed: %s" % (error))
+
+
 	mainloop.quit()
 
 if __name__ == '__main__':
@@ -108,6 +117,9 @@ if __name__ == '__main__':
 	parser = OptionParser()
 	parser.add_option("-c", "--capability", action="store",
 					type="string", dest="capability")
+	parser.add_option("-t", "--timeout", action="store",
+					type="int", dest="timeout",
+					default=60000)
 	(options, args) = parser.parse_args()
 	if options.capability:
 		capability  = options.capability
@@ -131,9 +143,10 @@ if __name__ == '__main__':
 						"org.bluez.Device")
 
 		agent.set_exit_on_release(False)
-		device.Pair(path, capability, timeout=60000,
+		device.Pair(path, capability, timeout=options.timeout,
 					reply_handler=pair_reply,
 					error_handler=pair_error)
+		device_obj = device
 	else:
 		adapter.RegisterAgent(path, capability)
 		print("Agent registered")