OSDN Git Service

core: Start SDP server only for BR/EDR or dual mode operation
authorMarcel Holtmann <marcel@holtmann.org>
Sun, 8 Nov 2015 07:53:35 +0000 (08:53 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 8 Nov 2015 08:01:00 +0000 (09:01 +0100)
src/main.c
src/sdpd-server.c

index 4c94a69..9124dc5 100644 (file)
@@ -616,14 +616,18 @@ int main(int argc, char *argv[])
        btd_agent_init();
        btd_profile_init();
 
-       if (option_compat == TRUE)
-               sdp_flags |= SDP_SERVER_COMPAT;
+       if (main_opts.mode != BT_MODE_LE) {
+               if (option_compat == TRUE)
+                       sdp_flags |= SDP_SERVER_COMPAT;
 
-       start_sdp_server(sdp_mtu, sdp_flags);
+               start_sdp_server(sdp_mtu, sdp_flags);
 
-       if (main_opts.did_source > 0)
-               register_device_id(main_opts.did_source, main_opts.did_vendor,
-                               main_opts.did_product, main_opts.did_version);
+               if (main_opts.did_source > 0)
+                       register_device_id(main_opts.did_source,
+                                               main_opts.did_vendor,
+                                               main_opts.did_product,
+                                               main_opts.did_version);
+       }
 
        if (mps != MPS_OFF)
                register_mps(mps == MPS_MULTIPLE);
@@ -674,7 +678,8 @@ int main(int argc, char *argv[])
 
        rfkill_exit();
 
-       stop_sdp_server();
+       if (main_opts.mode != BT_MODE_LE)
+               stop_sdp_server();
 
        g_main_loop_unref(event_loop);
 
index e6b611a..c863508 100644 (file)
@@ -46,8 +46,7 @@
 #include "sdpd.h"
 
 static guint l2cap_id = 0, unix_id = 0;
-
-static int l2cap_sock, unix_sock;
+static int l2cap_sock = -1, unix_sock = -1;
 
 /*
  * SDP server initialization on startup includes creating the