Index: /source/ariba/Node.cpp
===================================================================
--- /source/ariba/Node.cpp	(revision 5410)
+++ /source/ariba/Node.cpp	(revision 5412)
@@ -75,5 +75,5 @@
 
 	// join against further nodes
-	if( ep != NULL && *ep != EndpointDescriptor::UNSPECIFIED )
+	if( ep != NULL && ep->isUnspecified() == false )
 		base_overlay->joinSpoVNet( spovnetId, *ep);
 }
Index: /source/ariba/communication/EndpointDescriptor.h
===================================================================
--- /source/ariba/communication/EndpointDescriptor.h	(revision 5410)
+++ /source/ariba/communication/EndpointDescriptor.h	(revision 5412)
@@ -111,10 +111,12 @@
 	bool operator==(const EndpointDescriptor& rh) const {
 		if (rh.isUnspecified() && isUnspecified()) return true;
+		if (rh.isUnspecified() ^  isUnspecified()) return false;
+
+		assert( (!rh.isUnspecified()) && (!isUnspecified()) );
 		return endpoints == rh.endpoints;
 	}
 
 	bool operator!=(const EndpointDescriptor& rh) const {
-		if (!rh.isUnspecified() && !isUnspecified()) return true;
-		return endpoints != rh.endpoints;
+		return ( !operator==(rh) );
 	}
 
Index: /source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- /source/ariba/overlay/BaseOverlay.cpp	(revision 5410)
+++ /source/ariba/overlay/BaseOverlay.cpp	(revision 5412)
@@ -60,7 +60,4 @@
 namespace overlay {
 
-#define logging_force(x) std::cout << x << std::endl;
-#define logging_force1(x) std::cout << x << std::endl;
-
 LinkDescriptor* BaseOverlay::getDescriptor( const LinkID& link, bool communication ) {
 	BOOST_FOREACH( LinkDescriptor* lp, links )
@@ -127,5 +124,5 @@
 		// get descriptor of first hop
 		rld = getDescriptor(rlid);
-		logging_force1( rld );
+		logging_force( rld );
 
 		// is first hop a relay path? yes-> try to find real link!
@@ -136,10 +133,10 @@
 		else relayNode = rld->remoteNode;
 	}
-	logging_force1( "Potential relay node " << relayNode.toString() );
+	logging_force( "Potential relay node " << relayNode.toString() );
 	// do not return myself or use the node as relay node
 	if (relayNode == nodeId)
 		return NodeID::UNSPECIFIED;
 	else {
-		logging_force1( "Returning relay node " << relayNode.toString() );
+		logging_force( "Returning relay node " << relayNode.toString() );
 		return relayNode;
 	}
@@ -310,5 +307,5 @@
 			" with nodeid " << nodeId.toString());
 
-	if(bootstrapEp == EndpointDescriptor::UNSPECIFIED && state == BaseOverlayStateInvalid){
+	if(bootstrapEp.isUnspecified() && state == BaseOverlayStateInvalid){
 
 		// bootstrap against ourselfs
Index: /source/ariba/overlay/OverlayBootstrap.cpp
===================================================================
--- /source/ariba/overlay/OverlayBootstrap.cpp	(revision 5410)
+++ /source/ariba/overlay/OverlayBootstrap.cpp	(revision 5412)
@@ -65,5 +65,5 @@
 	manager.registerCallback( this );
 	manager.registerModule( BootstrapManager::BootstrapTypePeriodicBroadcast );
-	//manager.registerModule( BootstrapManager::BootstrapTypeBluetoothSdp );
+	manager.registerModule( BootstrapManager::BootstrapTypeBluetoothSdp );
 }
 
@@ -77,5 +77,5 @@
 	manager.unregisterCallback( this );
 	manager.unregisterModule( BootstrapManager::BootstrapTypePeriodicBroadcast );
-	//manager.unregisterModule( BootstrapManager::BootstrapTypeBluetoothSdp );
+	manager.unregisterModule( BootstrapManager::BootstrapTypeBluetoothSdp );
 }
 
Index: /source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp
===================================================================
--- /source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 5410)
+++ /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 5410)
+++ /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 5410)
+++ /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;
Index: /source/ariba/utility/logging/Logging.h
===================================================================
--- /source/ariba/utility/logging/Logging.h	(revision 5410)
+++ /source/ariba/utility/logging/Logging.h	(revision 5412)
@@ -76,4 +76,5 @@
   #define logging_warn(x)   {colorWarn;  LOG4CXX_WARN(logger,x);  colorDefault;           }
   #define logging_error(x)  {colorError; LOG4CXX_ERROR(logger,x); colorDefault;           }
+  #define logging_force(x)  {colorInfo;  LOG4CXX_INFO(logger,x);  colorDefault;           }
   #define logging_fatal(x)  {colorError; LOG4CXX_FATAL(logger,x); colorDefault; exit(-1); }
 
@@ -85,4 +86,5 @@
   #define logging_warn(x)   {colorWarn;  LOG4CXX_WARN(logger,x);  colorDefault;           }
   #define logging_error(x)  {colorError; LOG4CXX_ERROR(logger,x); colorDefault;           }
+  #define logging_force(x)  {colorInfo;  LOG4CXX_INFO(logger,x);  colorDefault;           }
   #define logging_fatal(x)  {colorError; LOG4CXX_FATAL(logger,x); colorDefault; exit(-1); }
 
Index: /source/ariba/utility/measurement/PathloadMeasurement.cpp
===================================================================
--- /source/ariba/utility/measurement/PathloadMeasurement.cpp	(revision 5410)
+++ /source/ariba/utility/measurement/PathloadMeasurement.cpp	(revision 5412)
@@ -108,5 +108,5 @@
 	// get the endpoint for this node
 	const EndpointDescriptor& endp = baseoverlay->getEndpointDescriptor( resultNode );
-	if( endp == EndpointDescriptor::UNSPECIFIED ){
+	if( endp.isUnspecified() ){
 		logging_warn( "can not measure node " << resultNode.toString() << ": can't resolve endpoint" );
 		return;
Index: /source/ariba/utility/system/StartupWrapper.cpp
===================================================================
--- /source/ariba/utility/system/StartupWrapper.cpp	(revision 5410)
+++ /source/ariba/utility/system/StartupWrapper.cpp	(revision 5412)
@@ -98,5 +98,5 @@
 	{
 		log4cxx::LoggerPtr logger(log4cxx::Logger::getRootLogger());
-		logger->setLevel(log4cxx::Level::getWarn());
+		logger->setLevel(log4cxx::Level::getDebug());
 	}
 
@@ -123,5 +123,5 @@
 			logger->setLevel(log4cxx::Level::getDebug());
 	}
-*/
+	 */
 
 	//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
