Message ID | 20200604232433.4951-1-pali@kernel.org |
---|---|
State | New |
Headers | show |
Series | sap: Improve error messages | expand |
On Monday 15 June 2020 11:48:20 Szymon Janc wrote: > Hi, > > On Friday, 5 June 2020 01:24:33 CEST Pali Rohár wrote: > > When bluetoohd daemon is starting, it prints following error messages: > > > > bluetoothd[19117]: profiles/sap/server.c:sap_server_register() Sap driver > > initialization failed. bluetoothd[19117]: sap-server: Operation not > > permitted (1) > > > > Initialization is failing because sap server is enabled only when > > bluetoothd daemon is started with --experimental option. > > > > And "Operation not permitted" is result of returning error code -1. > > > > This patch improves error messages. When --experimental option is not used > > then bluetoothd prints more explaining error message. And in case function > > sap_init() fails then -EOPNOTSUPP "Operation not supported" is returned > > instead of -EPERM (-1). > > --- > > profiles/sap/server.c | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/profiles/sap/server.c b/profiles/sap/server.c > > index 5de682a33..99ff80297 100644 > > --- a/profiles/sap/server.c > > +++ b/profiles/sap/server.c > > @@ -1353,9 +1353,14 @@ int sap_server_register(struct btd_adapter *adapter) > > GIOChannel *io; > > struct sap_server *server; > > > > + if (!(g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL)) { > > + error("Sap driver is disabled without --experimental > option"); > > + return -EOPNOTSUPP; > > + } > > + > > Maybe just make sap_init() fail if experimental is not enabled in sap-dummy.c? I guess this is what is already happening. But failure of sap_init() means that bluetoothd daemon prints error message that initialization failed as I wrote in commit message. Therefore I added another check for experimental flag with printing different error message which contains information why it failed. > This driver is usable only for profile qualification tests and nothing more. > And TBH I'm not sure why distros are enabling SAP in first place... > > > if (sap_init() < 0) { > > error("Sap driver initialization failed."); > > - return -1; > > + return -EOPNOTSUPP; > > } > > > > record = create_sap_record(SAP_SERVER_CHANNEL); > > > -- > pozdrawiam > Szymon Janc > >
On Thursday 16 July 2020 16:40:08 Pali Rohár wrote: > On Monday 15 June 2020 11:48:20 Szymon Janc wrote: > > Hi, > > > > On Friday, 5 June 2020 01:24:33 CEST Pali Rohár wrote: > > > When bluetoohd daemon is starting, it prints following error messages: > > > > > > bluetoothd[19117]: profiles/sap/server.c:sap_server_register() Sap driver > > > initialization failed. bluetoothd[19117]: sap-server: Operation not > > > permitted (1) > > > > > > Initialization is failing because sap server is enabled only when > > > bluetoothd daemon is started with --experimental option. > > > > > > And "Operation not permitted" is result of returning error code -1. > > > > > > This patch improves error messages. When --experimental option is not used > > > then bluetoothd prints more explaining error message. And in case function > > > sap_init() fails then -EOPNOTSUPP "Operation not supported" is returned > > > instead of -EPERM (-1). > > > --- > > > profiles/sap/server.c | 7 ++++++- > > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > > > diff --git a/profiles/sap/server.c b/profiles/sap/server.c > > > index 5de682a33..99ff80297 100644 > > > --- a/profiles/sap/server.c > > > +++ b/profiles/sap/server.c > > > @@ -1353,9 +1353,14 @@ int sap_server_register(struct btd_adapter *adapter) > > > GIOChannel *io; > > > struct sap_server *server; > > > > > > + if (!(g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL)) { > > > + error("Sap driver is disabled without --experimental > > option"); > > > + return -EOPNOTSUPP; > > > + } > > > + > > > > Maybe just make sap_init() fail if experimental is not enabled in sap-dummy.c? > > I guess this is what is already happening. But failure of sap_init() > means that bluetoothd daemon prints error message that initialization > failed as I wrote in commit message. > > Therefore I added another check for experimental flag with printing > different error message which contains information why it failed. Szymon, do you need something more? > > This driver is usable only for profile qualification tests and nothing more. > > And TBH I'm not sure why distros are enabling SAP in first place... > > > > > if (sap_init() < 0) { > > > error("Sap driver initialization failed."); > > > - return -1; > > > + return -EOPNOTSUPP; > > > } > > > > > > record = create_sap_record(SAP_SERVER_CHANNEL); > > > > > > -- > > pozdrawiam > > Szymon Janc > > > >
diff --git a/profiles/sap/server.c b/profiles/sap/server.c index 5de682a33..99ff80297 100644 --- a/profiles/sap/server.c +++ b/profiles/sap/server.c @@ -1353,9 +1353,14 @@ int sap_server_register(struct btd_adapter *adapter) GIOChannel *io; struct sap_server *server; + if (!(g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL)) { + error("Sap driver is disabled without --experimental option"); + return -EOPNOTSUPP; + } + if (sap_init() < 0) { error("Sap driver initialization failed."); - return -1; + return -EOPNOTSUPP; } record = create_sap_record(SAP_SERVER_CHANNEL);