2014-10-09 10:17:43

by Andrei Emeltchenko

[permalink] [raw]
Subject: [PATCH] bnep: Add extra debug information for bnep_up

From: Andrei Emeltchenko <[email protected]>

Adding extra debug information helps to investigate failing cases
---
profiles/network/bnep.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
index 136709d..a6b8728 100644
--- a/profiles/network/bnep.c
+++ b/profiles/network/bnep.c
@@ -210,7 +210,8 @@ static int bnep_if_up(const char *devname)
close(sk);

if (err < 0) {
- error("Could not bring up %s", devname);
+ error("Could not bring up %s: %s(%d)", devname, strerror(errno),
+ errno);
return err;
}

--
1.9.1



2014-10-10 07:18:45

by Andrei Emeltchenko

[permalink] [raw]
Subject: [PATCHv2] bnep: Add extra debug information for bnep_up

From: Andrei Emeltchenko <[email protected]>

Adding extra debug information helps to investigate failing cases
Return meaningful error code.
---
profiles/network/bnep.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
index 136709d..070c22e 100644
--- a/profiles/network/bnep.c
+++ b/profiles/network/bnep.c
@@ -195,7 +195,7 @@ static int bnep_connadd(int sk, uint16_t role, char *dev)
static int bnep_if_up(const char *devname)
{
struct ifreq ifr;
- int sk, err;
+ int sk, err = 0;

sk = socket(AF_INET, SOCK_DGRAM, 0);

@@ -205,16 +205,15 @@ static int bnep_if_up(const char *devname)
ifr.ifr_flags |= IFF_UP;
ifr.ifr_flags |= IFF_MULTICAST;

- err = ioctl(sk, SIOCSIFFLAGS, (void *) &ifr);
+ if (ioctl(sk, SIOCSIFFLAGS, (void *) &ifr) < 0) {
+ err = -errno;
+ error("Could not bring up %s: %s(%d)", devname, strerror(-err),
+ -err);
+ }

close(sk);

- if (err < 0) {
- error("Could not bring up %s", devname);
- return err;
- }
-
- return 0;
+ return err;
}

static int bnep_if_down(const char *devname)
--
1.9.1


2014-10-09 12:48:04

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH] bnep: Add extra debug information for bnep_up

On Thursday 09 of October 2014 13:30:44 Szymon Janc wrote:
> Hi Andrei,
>
> On Thursday 09 of October 2014 13:17:43 Andrei Emeltchenko wrote:
> > From: Andrei Emeltchenko <[email protected]>
> >
> > Adding extra debug information helps to investigate failing cases
> > ---
> > profiles/network/bnep.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
> > index 136709d..a6b8728 100644
> > --- a/profiles/network/bnep.c
> > +++ b/profiles/network/bnep.c
> > @@ -210,7 +210,8 @@ static int bnep_if_up(const char *devname)
> > close(sk);
> >
> > if (err < 0) {
> > - error("Could not bring up %s", devname);
> > + error("Could not bring up %s: %s(%d)", devname, strerror(errno),
> > + errno);
> > return err;
> > }
>
> You should use -err no errno here. Errno might be already overwritten by call
> to close().

Well, not exactly, errno should be also stored to err before calling close().

--
Best regards,
Szymon Janc

2014-10-09 11:30:44

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH] bnep: Add extra debug information for bnep_up

Hi Andrei,

On Thursday 09 of October 2014 13:17:43 Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <[email protected]>
>
> Adding extra debug information helps to investigate failing cases
> ---
> profiles/network/bnep.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
> index 136709d..a6b8728 100644
> --- a/profiles/network/bnep.c
> +++ b/profiles/network/bnep.c
> @@ -210,7 +210,8 @@ static int bnep_if_up(const char *devname)
> close(sk);
>
> if (err < 0) {
> - error("Could not bring up %s", devname);
> + error("Could not bring up %s: %s(%d)", devname, strerror(errno),
> + errno);
> return err;
> }

You should use -err no errno here. Errno might be already overwritten by call
to close().


--
Best regards,
Szymon Janc