All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guillaume Zajac <guillaume.zajac@linux.intel.com>
To: ofono@ofono.org
Subject: Re: [PATCH] test-server:Add test of PPP disconnect reason
Date: Thu, 17 Feb 2011 17:37:18 +0100	[thread overview]
Message-ID: <4D5D4EBE.30102@linux.intel.com> (raw)
In-Reply-To: <4D5D4975.1050306@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1990 bytes --]

Hi Denis,

On 17/02/2011 17:14, Denis Kenzior wrote:
> Hi Guillaume,
>
> On 02/17/2011 07:48 AM, Guillaume Zajac wrote:
>> ---
>>   gatchat/test-server.c |    6 ++++++
>>   1 files changed, 6 insertions(+), 0 deletions(-)
>>
>> diff --git a/gatchat/test-server.c b/gatchat/test-server.c
>> index e574d64..c0a5a4d 100644
>> --- a/gatchat/test-server.c
>> +++ b/gatchat/test-server.c
>> @@ -137,6 +137,12 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user)
>>   	g_at_ppp_unref(ppp);
>>   	ppp = NULL;
>>
>> +	if (reason == G_AT_PPP_REASON_NET_FAIL) {
> Don't you mean G_AT_PPP_REASON_LINK_DEAD?
>

In case of test-server, I didn't reproduce the crash with/without the 
fix, I applied it to test server first as we don't have dial_cb for 
emulator yet:

I did ./gsmdial -i localhost -p 12346

At the end of the exchange:
ppp_lcp_down_notify() is called
disconnect reason is G_AT_PPP_REASON_PEER_CLOSED
then the GAtServer is well resumed.

In case of emulator (based on Gustavo/ZhenZhua dial_cb), 
ppp_lcp_down_notify() is called but just after this one, 
ppp_ipcp_up_notify() fails and sets disconnect reason to 
G_AT_PPP_REASON_NET_FAIL.
Then we get a crash after ppp_disconnect because we call the hdlc write 
handler e.g. can_write_data() into gathldc.c although we have unref the 
PPP server.

So I called ofono_emulator_remove() that will call the unref GAtServer 
etc... when we get G_AT_PPP_REASON_NET_FAIL into ppp_disconnect

I don't get G_AT_PPP_REASON_LINK_DEAD disconnect reason when emulator 
crashes.

So should we call ofono_emulator_remove()/GAtServer_unref() in both 
disconnect reason cases?
Or is there a specific action to do when G_AT_PPP_REASON_NET_FAIL?

>> +		g_at_server_unref(server);
>> +		server = NULL;
>> +		return;
>> +	}
>> +
>>   	g_at_server_resume(server);
>>   	g_at_server_set_debug(server, server_debug, "Server");
>>
> Regards,
> -Denis
>

Kind regards,
Guillaume

  reply	other threads:[~2011-02-17 16:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-17 13:48 [PATCH] test-server:Add test of PPP disconnect reason Guillaume Zajac
2011-02-17 16:14 ` Denis Kenzior
2011-02-17 16:37   ` Guillaume Zajac [this message]
2011-02-17 16:50     ` Denis Kenzior
2011-02-17 17:21       ` Guillaume Zajac

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D5D4EBE.30102@linux.intel.com \
    --to=guillaume.zajac@linux.intel.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.