$NetBSD: patch-ak,v 1.2 2006/07/24 17:07:15 xtraeme Exp $

--- apps/obexftp_sdp.c.orig	2006-03-08 00:34:15.000000000 +0100
+++ apps/obexftp_sdp.c
@@ -25,6 +25,8 @@
 #include <config.h>
 #endif
 
+#ifdef HAVE_BLUETOOTH
+
 #include <stdio.h>
 #include <errno.h>
 #include <unistd.h>
@@ -34,6 +36,53 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 
+#ifdef __NetBSD__
+#include <bluetooth.h>
+#include <sdp.h>
+
+#include "obexftp_sdp.h"
+
+#define OBEXFTP_RFCOMM_CHANNEL	10
+
+static void *session;
+
+void
+obexftp_sdp_unregister(void)
+{
+	sdp_close(session);
+}
+
+int
+obexftp_sdp_register(void)
+{
+	sdp_ftrn_profile_t ftrn;
+	bdaddr_t bdaddr;
+
+	memset(&ftrn, 0, sizeof(ftrn));
+	ftrn.server_channel = OBEXFTP_RFCOMM_CHANNEL;
+
+	bdaddr_copy(&bdaddr, BDADDR_ANY);
+
+	session = sdp_open_local(NULL);
+	if (session == NULL || (errno = sdp_error(session))) {
+		syslog(LOG_ERR, "Failed to connect to the local SDP server. %s(%d)", 
+				strerror(errno), errno);
+
+		return -1;
+	}
+
+	if (sdp_register_service(session, SDP_SERVICE_CLASS_OBEX_FILE_TRANSFER,
+			&bdaddr, (uint8_t *)&ftrn, sizeof(ftrn), NULL) != 0) {
+		errno = sdp_error(session);
+		syslog(LOG_ERR, "SDP registration failed. %s(%d)",
+				strerror(errno), errno);
+		sdp_close(session);
+		return -1;
+	}
+
+	return 0;
+}
+#else /* __NetBSD__ */
 #include <bluetooth/bluetooth.h>
 #include <bluetooth/sdp.h>
 #include <bluetooth/sdp_lib.h>
@@ -173,3 +222,5 @@ int obexftp_sdp_search(bdaddr_t *src, bd
 	return 0;
 }
 */
+#endif /* !__NetBSD__ */
+#endif /* HAVE_BLUETOOTH */
