* [PATCH BlueZ] emulator: btvirt: support debug for -s socket server
@ 2026-06-13 15:20 Pauli Virtanen
2026-06-13 17:04 ` [BlueZ] " bluez.test.bot
0 siblings, 1 reply; 2+ messages in thread
From: Pauli Virtanen @ 2026-06-13 15:20 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen
Support btdev debug -d when using socket server -s.
$ btvirt -d -s
...
bredrle: host10: > 01 13 0c f8 00 00 00 00 00 00 00 00 00 00 00 00 ................
bredrle: host10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
...
---
emulator/main.c | 16 ++++++++++++++++
emulator/server.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
emulator/server.h | 5 +++++
3 files changed, 66 insertions(+)
diff --git a/emulator/main.c b/emulator/main.c
index 09d6e9adb..c21640adc 100644
--- a/emulator/main.c
+++ b/emulator/main.c
@@ -80,6 +80,13 @@ static void vhci_debug(const char *str, void *user_data)
printf("vhci%u: %s\n", i, str);
}
+static void server_debug(const char *str, void *user_data)
+{
+ const char *name = user_data;
+
+ printf("%s: %s\n", name, str);
+}
+
int main(int argc, char *argv[])
{
struct server *server1;
@@ -231,6 +238,15 @@ int main(int argc, char *argv[])
server5 = server_open_unix(SERVER_TYPE_MONITOR, path);
if (!server5)
fprintf(stderr, "Failed to open monitor server\n");
+
+ if (debug_enabled) {
+ server_set_debug(server1, server_debug, "bredrle",
+ NULL);
+ server_set_debug(server2, server_debug, "bredr", NULL);
+ server_set_debug(server3, server_debug, "amp", NULL);
+ server_set_debug(server4, server_debug, "le", NULL);
+ server_set_debug(server5, server_debug, "mon", NULL);
+ }
}
if (tcp_port) {
diff --git a/emulator/server.c b/emulator/server.c
index 7790867b7..4538e8f04 100644
--- a/emulator/server.c
+++ b/emulator/server.c
@@ -39,10 +39,14 @@ struct server {
enum server_type type;
uint16_t id;
int fd;
+ server_debug_func_t debug_callback;
+ server_destroy_func_t debug_destroy;
+ void *debug_data;
};
struct client {
int fd;
+ struct server *server;
struct btdev *btdev;
uint8_t *pkt_data;
uint8_t pkt_type;
@@ -223,6 +227,18 @@ static int accept_client(int fd)
return nfd;
}
+static void dev_debug(const char *str, void *user_data)
+{
+ struct client *client = user_data;
+ struct server *server = client->server;
+ char buf[512];
+
+ if (server->debug_callback) {
+ snprintf(buf, sizeof(buf), "host%d: %s", client->fd, str);
+ server->debug_callback(buf, server->debug_data);
+ }
+}
+
static void server_accept_callback(int fd, uint32_t events, void *user_data)
{
struct server *server = user_data;
@@ -240,6 +256,8 @@ static void server_accept_callback(int fd, uint32_t events, void *user_data)
memset(client, 0, sizeof(*client));
+ client->server = server;
+
client->fd = accept_client(server->fd);
if (client->fd < 0) {
free(client);
@@ -271,6 +289,7 @@ static void server_accept_callback(int fd, uint32_t events, void *user_data)
}
btdev_set_send_handler(client->btdev, client_write_callback, client);
+ btdev_set_debug(client->btdev, dev_debug, client, NULL);
done:
if (mainloop_add_fd(client->fd, EPOLLIN, client_read_callback,
@@ -413,4 +432,30 @@ void server_close(struct server *server)
return;
mainloop_remove_fd(server->fd);
+
+ if (server->debug_destroy)
+ server->debug_destroy(server->debug_data);
+
+ server->debug_callback = NULL;
+ server->debug_destroy = NULL;
+ server->debug_data = NULL;
+
+ free(server);
}
+
+bool server_set_debug(struct server *server, server_debug_func_t callback,
+ void *user_data, server_destroy_func_t destroy)
+{
+ if (!server)
+ return false;
+
+ if (server->debug_destroy)
+ server->debug_destroy(server->debug_data);
+
+ server->debug_callback = callback;
+ server->debug_destroy = destroy;
+ server->debug_data = user_data;
+
+ return true;
+}
+
diff --git a/emulator/server.h b/emulator/server.h
index 7d6b7be74..1844a9871 100644
--- a/emulator/server.h
+++ b/emulator/server.h
@@ -24,3 +24,8 @@ struct server;
struct server *server_open_unix(enum server_type type, const char *path);
struct server *server_open_tcp(enum server_type type, uint16_t port);
void server_close(struct server *server);
+
+typedef void (*server_debug_func_t)(const char *str, void *user_data);
+typedef void (*server_destroy_func_t)(void *user_data);
+bool server_set_debug(struct server *server, server_debug_func_t callback,
+ void *user_data, server_destroy_func_t destroy);
--
2.54.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* RE: [BlueZ] emulator: btvirt: support debug for -s socket server
2026-06-13 15:20 [PATCH BlueZ] emulator: btvirt: support debug for -s socket server Pauli Virtanen
@ 2026-06-13 17:04 ` bluez.test.bot
0 siblings, 0 replies; 2+ messages in thread
From: bluez.test.bot @ 2026-06-13 17:04 UTC (permalink / raw)
To: linux-bluetooth, pav
[-- Attachment #1: Type: text/plain, Size: 2186 bytes --]
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=1111062
---Test result---
Test Summary:
CheckPatch FAIL 0.36 seconds
GitLint FAIL 0.22 seconds
BuildEll PASS 20.09 seconds
BluezMake PASS 678.74 seconds
CheckSmatch PASS 354.26 seconds
bluezmakeextell PASS 184.28 seconds
IncrementalBuild PASS 674.12 seconds
ScanBuild PASS 1058.31 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[BlueZ] emulator: btvirt: support debug for -s socket server
WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#85:
bredrle: host10: > 01 13 0c f8 00 00 00 00 00 00 00 00 00 00 00 00 ................
/github/workspace/src/patch/14627485.patch total: 0 errors, 1 warnings, 113 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/patch/14627485.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: GitLint - FAIL
Desc: Run gitlint
Output:
[BlueZ] emulator: btvirt: support debug for -s socket server
7: B1 Line exceeds max length (84>80): "bredrle: host10: > 01 13 0c f8 00 00 00 00 00 00 00 00 00 00 00 00 ................"
8: B1 Line exceeds max length (84>80): "bredrle: host10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................"
https://github.com/bluez/bluez/pull/2227
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-13 17:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-13 15:20 [PATCH BlueZ] emulator: btvirt: support debug for -s socket server Pauli Virtanen
2026-06-13 17:04 ` [BlueZ] " bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox