[PATCH] Add DisableNameResolving option to main.conf

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

This patch adds new option to main.conf - DisableNameResolving. If DisableNameResolving=true then we don't ask remote devices for their names after inquiry. Default value is false. That's all :)



diff --git a/src/adapter.c b/src/adapter.c
index 500f82f..02c6d9e 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1076,7 +1076,7 @@ static int start_inquiry(struct btd_adapter *adapter)

    hci_close_dev(dd);

-    adapter->state |= RESOLVE_NAME;
+    adapter->state |= main_opts.disable_nameres;

    return 0;
}
@@ -1126,7 +1126,7 @@ static int start_periodic_inquiry(struct btd_adapter *adapter)

    hci_close_dev(dd);

-    adapter->state |= RESOLVE_NAME;
+    adapter->state |= main_opts.disable_nameres;

    return 0;
}
@@ -2446,7 +2446,7 @@ struct btd_adapter *adapter_create(DBusConnection *conn, int id,
    }

    adapter->dev_id = id;
-    adapter->state |= RESOLVE_NAME;
+    adapter->state |= main_opts.disable_nameres;
    adapter->path = g_strdup(path);
    adapter->already_up = devup;

diff --git a/src/dbus-hci.c b/src/dbus-hci.c
index e52b4f6..014360b 100644
--- a/src/dbus-hci.c
+++ b/src/dbus-hci.c
@@ -458,7 +458,7 @@ void hcid_dbus_inquiry_start(bdaddr_t *local)
    /* Disable name resolution for non D-Bus clients */
    if (!adapter_has_discov_sessions(adapter)) {
        state = adapter_get_state(adapter);
-        state &= ~RESOLVE_NAME;
+        state &= ~main_opts.disable_nameres;
        adapter_set_state(adapter, state);
    }
}
@@ -687,7 +687,7 @@ void hcid_dbus_inquiry_result(bdaddr_t *local, bdaddr_t *peer, uint32_t class,
    }

    /* the inquiry result can be triggered by NON D-Bus client */
-    if (adapter_get_state(adapter) & RESOLVE_NAME)
+    if (adapter_get_state(adapter) & main_opts.disable_nameres)
        name_status = NAME_REQUIRED;
    else
        name_status = NAME_NOT_REQUIRED;
diff --git a/src/hcid.h b/src/hcid.h
index ae356d3..efefa6c 100644
--- a/src/hcid.h
+++ b/src/hcid.h
@@ -59,6 +59,7 @@ struct main_opts {
    uint16_t    link_policy;
    gboolean    remember_powered;
    gboolean    reverse_sdp;
+    int        disable_nameres;

    uint8_t        scan;
    uint8_t        mode;
diff --git a/src/main.c b/src/main.c
index 08bef4a..5358db1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -187,6 +187,18 @@ static void parse_config(GKeyFile *config)
    } else
        main_opts.reverse_sdp = boolean;

+    boolean = g_key_file_get_boolean(config, "General",
+                        "DisableNameResolving", &err);
+    if (err) {
+        debug("%s", err->message);
+        g_clear_error(&err);
+ } else { + if (boolean)
+            main_opts.disable_nameres = 0x00;
+        else
+            main_opts.disable_nameres = 0x10;
+    }
+
    main_opts.link_mode = HCI_LM_ACCEPT;

    main_opts.link_policy = HCI_LP_RSWITCH | HCI_LP_SNIFF |
diff --git a/src/main.conf b/src/main.conf
index c736e49..7dad783 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -46,3 +46,7 @@ RememberPowered = true
# doesn't like us doing reverse SDP for some test cases (though there could in
# theory be other useful purposes for this too). Defaults to true.
ReverseServiceDiscovery = true
+
+# Disable name resolving after inquiry. Set it to 'true' if you don't need remote
+# devices name and want shorter discovery cycle
+DisableNameRevolving = false
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux