diff mbox series

sap: Improve error messages

Message ID 20200604232433.4951-1-pali@kernel.org
State New
Headers show
Series sap: Improve error messages | expand

Commit Message

Pali Rohár June 4, 2020, 11:24 p.m. UTC
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(-)

Comments

Pali Rohár July 16, 2020, 2:40 p.m. UTC | #1
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

> 

>
Pali Rohár Sept. 29, 2020, 9:36 p.m. UTC | #2
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 mbox series

Patch

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);