diff mbox series

[BlueZ,1/2] main.conf: Introduce option to limit A2DP channels

Message ID 20241107220121.97417-2-VAnPushkarev@salutedevices.com
State New
Headers show
Series Introduce option to limit A2DP channels | expand

Commit Message

Victor Pushkarev Nov. 7, 2024, 10:01 p.m. UTC
This introduces 'Channels' which can be used to
limit the number of A2DP channels.

For new option this also adds a new group A2DP to config.

---
 src/btd.h     |  6 ++++++
 src/main.c    | 15 +++++++++++++++
 src/main.conf |  5 +++++
 3 files changed, 26 insertions(+)

Comments

bluez.test.bot@gmail.com Nov. 8, 2024, 12:09 a.m. UTC | #1
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=907547

---Test result---

Test Summary:
CheckPatch                    FAIL      1.02 seconds
GitLint                       PASS      0.63 seconds
BuildEll                      PASS      25.51 seconds
BluezMake                     PASS      1739.17 seconds
MakeCheck                     PASS      12.98 seconds
MakeDistcheck                 PASS      178.52 seconds
CheckValgrind                 PASS      252.44 seconds
CheckSmatch                   PASS      356.62 seconds
bluezmakeextell               PASS      122.75 seconds
IncrementalBuild              PASS      3101.50 seconds
ScanBuild                     WARNING   1008.31 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[BlueZ,1/2] main.conf: Introduce option to limit A2DP channels
WARNING:STATIC_CONST_CHAR_ARRAY: static const char * array should probably be static const char * const
#140: FILE: src/main.c:173:
+static const char *a2dp_options[] = {

/github/workspace/src/src/13867230.patch total: 0 errors, 1 warnings, 74 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13867230.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.


[BlueZ,2/2] a2dp: Reject incoming connection when channel limit is exceeded
WARNING:BLOCK_COMMENT_STYLE: Block comments should align the * on each line
#116: FILE: profiles/audio/a2dp.c:721:
+			/* Reject connection from SEP
+			* and clear configuration.

WARNING:LONG_LINE: line length of 95 exceeds 80 columns
#118: FILE: profiles/audio/a2dp.c:723:
+			DBG("Reject connection from %s", device_get_path(setup->chan->device));

WARNING:LONG_LINE: line length of 95 exceeds 80 columns
#119: FILE: profiles/audio/a2dp.c:724:
+			a2dp_sep->endpoint->clear_configuration(a2dp_sep, a2dp_sep->user_data);

/github/workspace/src/src/13867231.patch total: 0 errors, 3 warnings, 50 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13867231.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: ScanBuild - WARNING
Desc: Run Scan Build
Output:
profiles/audio/media.c:1059:7: warning: Use of memory after it is freed
                if (req->cb != pac_select_cb) {
                    ^~~~~~~
1 warning generated.



---
Regards,
Linux Bluetooth
diff mbox series

Patch

diff --git a/src/btd.h b/src/btd.h
index 07205aa69..c2b6a456e 100644
--- a/src/btd.h
+++ b/src/btd.h
@@ -109,6 +109,10 @@  struct btd_avrcp_opts {
 	bool		volume_category;
 };
 
+struct btd_a2dp_opts {
+	uint8_t  channels;
+};
+
 struct btd_advmon_opts {
 	uint8_t		rssi_sampling_period;
 };
@@ -152,6 +156,8 @@  struct btd_opts {
 	struct btd_avdtp_opts avdtp;
 	struct btd_avrcp_opts avrcp;
 
+	struct btd_a2dp_opts a2dp;
+
 	uint8_t		key_size;
 
 	enum jw_repairing_t jw_repairing;
diff --git a/src/main.c b/src/main.c
index 41c3271a7..2c583e611 100644
--- a/src/main.c
+++ b/src/main.c
@@ -168,6 +168,10 @@  static const char *avdtp_options[] = {
 static const char *avrcp_options[] = {
 	"VolumeWithoutTarget",
 	"VolumeCategory",
+};
+
+static const char *a2dp_options[] = {
+	"Channels",
 	NULL
 };
 
@@ -188,6 +192,7 @@  static const struct group_table {
 	{ "CSIS",	csip_options },
 	{ "AVDTP",	avdtp_options },
 	{ "AVRCP",	avrcp_options },
+	{ "A2DP",	a2dp_options },
 	{ "AdvMon",	advmon_options },
 	{ }
 };
@@ -1157,6 +1162,13 @@  static void parse_avrcp(GKeyFile *config)
 		&btd_opts.avrcp.volume_category);
 }
 
+static void parse_a2dp(GKeyFile *config)
+{
+	parse_config_u8(config, "A2DP", "Channels",
+				&btd_opts.a2dp.channels,
+				0, UINT8_MAX);
+}
+
 static void parse_advmon(GKeyFile *config)
 {
 	parse_config_u8(config, "AdvMon", "RSSISamplingPeriod",
@@ -1181,6 +1193,7 @@  static void parse_config(GKeyFile *config)
 	parse_csis(config);
 	parse_avdtp(config);
 	parse_avrcp(config);
+	parse_a2dp(config);
 	parse_advmon(config);
 }
 
@@ -1226,6 +1239,8 @@  static void init_defaults(void)
 	btd_opts.avrcp.volume_without_target = false;
 	btd_opts.avrcp.volume_category = true;
 
+	btd_opts.a2dp.channels = 0;
+
 	btd_opts.advmon.rssi_sampling_period = 0xFF;
 	btd_opts.csis.encrypt = true;
 }
diff --git a/src/main.conf b/src/main.conf
index fff13ed2f..323a2fbbe 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -316,6 +316,11 @@ 
 # notifications.
 #VolumeCategory = true
 
+[A2DP]
+# Maximum number of A2DP channels
+# Defaults to 0 (unlimited)
+#Channels = 0
+
 [Policy]
 #
 # The ReconnectUUIDs defines the set of remote services that should try