I have mixed some stuff concerning GIOChannels...
On 19/05/2011 12:13, Guillaume Zajac wrote:
I noticed that when I send +++ -> ATH0 during a PPP session the ppp
server is well unregistered.
However when the physical layer is removed (bluetooht or TCP), the
associated emulator is not unregistered.
As we used in gatutil.c set_close_on_unref(TRUE), it means there is
still on reference on the GIOChannel.
The set_close_on_unref() from gatutil.c is done for ppp_net interface
It has nothing to do with the physical layer.
However, we do also:
- set_close_on_unref(TRUE) into example/emulator.c
- set_close_on_unref(FALSE) into plugins/dun_gw.c
So after the client send ATH0, the connection is removed and emulator
should be unregistered and removed but it is not the case.
In the case the PPP session is ended normally, we call
ppp_ipcp_down_notify() to free the ppp_net interface.
Then the physical layer is removed and we got the emulator well
That's why I assume unregistration of the emulator is bound to the way
PPP session is ended e.g.
normally ---> ppp_ipcpdown_notify()
forced ---> ATH0
Do you have any idea about what is happening there?
Maybe I forgot to do something into dun_ath_cb().