Index: source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp
===================================================================
--- source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 4934)
+++ source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.cpp	(revision 4970)
@@ -62,8 +62,5 @@
 namespace ariba {
 namespace utility {
-use_logging_cpp(BluetoothSdp)
-;
-
-//TODO: figure out this compiler flag stuff
+use_logging_cpp(BluetoothSdp);
 
 BluetoothSdp::BluetoothSdp(BootstrapInformationCallback* _callback) :
@@ -71,7 +68,7 @@
 #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
 
-	// TODO: think about this!
-	channel_ = 7;
-	// TODO: what about the callback?
+	// This can be ignored, as the channel we really be saved in one
+	// of the info strings (as an attribute)
+	channel_ = 1;
 
 #endif // HAVE_BLUETOOTH_BLUETOOTH_H
@@ -149,5 +146,5 @@
 
 	// prepare the info attribute buffers
-	string namebuf, info1buf, info2buf, info3buf;
+	//string namebuf, info1buf, info2buf, info3buf;
 	uint8_t namelen, info1len, info2len, info3len;
 
@@ -162,5 +159,6 @@
 	}
 
-	// we need to save the string len for sdp
+	// we need to save the string len for sdp; do we?
+	/*
 	namebuf = (char)namelen;
 	namebuf.append(name);
@@ -171,4 +169,5 @@
 	info3buf = (char)info3len;
 	info3buf.append(info3);
+	*/
 
 	// set the general service ID
@@ -212,14 +211,14 @@
 	// add the spovnet attributes
 	sdp_attr_add_new(&record, SDP_ATTR_SPOVNET_NAME, SDP_TEXT_STR8,
-			namebuf.data());
+			name.data());
 
 	sdp_attr_add_new(&record, SDP_ATTR_SPOVNET_INFO1, SDP_TEXT_STR8,
-			info1buf.data());
+			info1.data());
 
 	sdp_attr_add_new(&record, SDP_ATTR_SPOVNET_INFO2, SDP_TEXT_STR8,
-			info2buf.data());
+			info2.data());
 
 	sdp_attr_add_new(&record, SDP_ATTR_SPOVNET_INFO3, SDP_TEXT_STR8,
-			info3buf.data());
+			info3.data());
 
 	// connect to the local SDP server, register the service record,
@@ -271,8 +270,4 @@
 	int i;
 
-	/*
-	 char addr[19] = { 0 };
-	 char name[248] = { 0 };
-	 */
 	bdaddr_t address;
 	uint8_t channel;
@@ -306,5 +301,5 @@
 		address = (ii + i)->bdaddr;
 
-		logging_info("Peer found.")
+		logging_info("Found peer " << ba2string(&address) << ", querying SDP.")
 
 		// TODO: sdp_search can be very slow, fork it!
@@ -343,6 +338,5 @@
 
 	if (session == 0) {
-		// TODO: put the remote's address here
-		logging_error("Failed to connect to remote SDP server.");
+		logging_error("Failed to connect to SDP server at " << ba2string(&target) <<".");
 		return;
 	}
@@ -382,5 +376,8 @@
 				logging_info("Remote peer info2 is: " << info2);
 				logging_info("Remote peer info3 is: " << info3);
-				//TODO: callback here + extract info's and stuff
+
+				// Callback
+				callback->onBootstrapServiceFound(name, info1, info2, info3);
+
 			}
 			sdp_record_free(rec);
@@ -394,4 +391,14 @@
 }
 
+string BluetoothSdp::ba2string(bdaddr_t *ba) {
+	/*
+	 * Returns a string holding the bt adress in human readable form.
+	 */
+	char *str;
+	ba2str(ba, str);
+	string result = str;
+	return result;
+}
+
 #endif // HAVE_BLUETOOTH_BLUETOOTH_H
 
Index: source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h
===================================================================
--- source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h	(revision 4934)
+++ source/ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h	(revision 4970)
@@ -85,4 +85,5 @@
 	void bt_scan();
 	void sdp_search(bdaddr_t target);
+	string ba2string(bdaddr_t *ba);
 
 	sdp_session_t *sdp_session_;
