diff --git a/obexd/src/bluetooth.c b/obexd/src/bluetooth.c
index 48e7936..bc7836a 100644
--- a/obexd/src/bluetooth.c
+++ b/obexd/src/bluetooth.c
g_free(server);
}
-static gint server_register(guint16 service, const gchar *name,
- guint8 channel, const gchar *folder, gboolean auto_accept)
+static gint server_register(guint16 service, const gchar *name, guint8 channel,
+ const gchar *folder, gboolean secure, gboolean auto_accept)
{
struct sockaddr_rc laddr;
GIOChannel *io;
- gint err, sk, arg;
struct server *server;
uint32_t *handle;
+ gint err, sk, arg, lm = RFCOMM_LM_SECURE;
sk = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
if (sk < 0) {
goto failed;
}
+ if (setsockopt(sk, SOL_RFCOMM, RFCOMM_LM, &lm, sizeof(lm)) < 0) {
+ err = errno;
+ goto failed;
+ }
+
memset(&laddr, 0, sizeof(laddr));
laddr.rc_family = AF_BLUETOOTH;
bacpy(&laddr.rc_bdaddr, BDADDR_ANY);
}
gint bluetooth_init(guint service, const gchar *name, const gchar *folder,
- guint8 channel, gboolean auto_accept)
+ guint8 channel, gboolean secure, gboolean auto_accept)
{
if (!session) {
session = sdp_connect(BDADDR_ANY, BDADDR_LOCAL, SDP_RETRY_IF_BUSY);
}
}
- return server_register(service, name, channel, folder, auto_accept);
+ return server_register(service, name, channel,
+ folder, secure, auto_accept);
}
static void unregister_record(gpointer rec_handle, gpointer user_data)
diff --git a/obexd/src/bluetooth.h b/obexd/src/bluetooth.h
index 9e7973b..dec0b14 100644
--- a/obexd/src/bluetooth.h
+++ b/obexd/src/bluetooth.h
#endif
gint bluetooth_init(guint service, const gchar *name, const gchar *folder,
- guint8 channel, gboolean auto_accept);
+ guint8 channel, gboolean secure, gboolean auto_accept);
void bluetooth_exit(void);
diff --git a/obexd/src/main.c b/obexd/src/main.c
index 1ff0a0c..7cea104 100644
--- a/obexd/src/main.c
+++ b/obexd/src/main.c
switch (service) {
case OBEX_OPUSH:
bluetooth_init(OBEX_OPUSH, "OBEX OPUSH server",
- root_path, OPUSH_CHANNEL, auto_accept);
+ root_path, OPUSH_CHANNEL, FALSE, auto_accept);
break;
case OBEX_FTP:
bluetooth_init(OBEX_FTP, "OBEX FTP server",
- root_path, FTP_CHANNEL, auto_accept);
+ root_path, FTP_CHANNEL, TRUE, auto_accept);
break;
default:
return -EINVAL;