Index: source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp
===================================================================
--- source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 5358)
+++ source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 5412)
@@ -217,10 +217,10 @@
 
 	if (sdp_session_ == NULL) {
-		logging_error( "something is wrong with your SDP server, nothing registered" );
+		logging_error( "something is wrong with your SDP server, nothing registered: " << strerror(errno) );
 	} else {
 		int ret = sdp_record_register(sdp_session_, &record, 0);
 
 		if(ret < 0){
-			logging_error("failed registering sdp record");
+			logging_error("failed registering sdp record: " << strerror(errno));
 		}else{
 			logging_debug("sdp record registered using session " << sdp_session_);
@@ -269,5 +269,6 @@
 	sock = hci_open_dev(dev_id);
 	if (dev_id < 0 || sock < 0) {
-		logging_error("opening socket for device " << dev_id << " failed. can not scan for peers");
+		logging_error("opening socket for device "
+				<< dev_id << " failed. can not scan for peers: " << strerror(errno));
 		return;
 	}
@@ -280,5 +281,5 @@
 	num_rsp = hci_inquiry(dev_id, len, max_rsp, NULL, &ii, flags);
 	if (num_rsp < 0)
-		logging_error("hci_inquiry failed with " << num_rsp);
+		logging_error("hci_inquiry failed with " << num_rsp << ": " << strerror(errno));
 
 	for (i = 0; i < num_rsp; i++) {
@@ -289,6 +290,4 @@
 
 		logging_debug("found peer [" << saddress << "] [" << sname << "]");
-
-		// TODO: sdp_search can be very slow, fork it!
 		sdp_search( address, sname );
 	}
@@ -297,5 +296,5 @@
 	close(sock);
 
-	int nextscan = (rand() % 40) + 5;
+	int nextscan = (rand() % 30) + 5;
 	logging_debug("next sdp scan in " << nextscan << " seconds");
 
@@ -328,5 +327,6 @@
 
 	if (session == NULL) {
-		logging_error("failed to connect to SDP server at " << ba2string(&target) <<".");
+		logging_error("failed to connect to SDP server at "
+				<< ba2string(&target) << ": " << strerror(errno));
 		return;
 	}
@@ -373,5 +373,5 @@
 		}
 	} else {
-		logging_error("sdp_service_search_attr_req failed with timeout");
+		logging_error("sdp_service_search_attr_req failed with timeout: " << strerror(errno));
 	}
 
Index: source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h
===================================================================
--- source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h	(revision 5358)
+++ source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h	(revision 5412)
@@ -45,4 +45,5 @@
 #include <string>
 #include <ctime>
+#include <cerrno>
 #include <boost/bind.hpp>
 #include <boost/asio.hpp>
Index: source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp
===================================================================
--- source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp	(revision 5358)
+++ source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp	(revision 5412)
@@ -58,6 +58,6 @@
 
 use_logging_cpp(PeriodicBroadcast);
-const long PeriodicBroadcast::timerinterval = 1000;
-const long PeriodicBroadcast::servicetimeout = 3000;
+const long PeriodicBroadcast::timerinterval = 2000;
+const long PeriodicBroadcast::servicetimeout = 5000;
 const unsigned int PeriodicBroadcast::serverport_v4 = 5634;
 const unsigned int PeriodicBroadcast::serverport_v6 = 5636;
