mirror of git://git.sysmocom.de/ofono
gatppp: Add API for setting suspend callback
In situations where the PPP stream can be suspended by the peer, e.g. in the server role using '+++'
This commit is contained in:
parent
d48c309151
commit
f1cbb783fc
|
@ -76,6 +76,8 @@ struct _GAtPPP {
|
|||
gpointer debug_data;
|
||||
gboolean sta_pending;
|
||||
guint ppp_dead_source;
|
||||
GAtSuspendFunc suspend_func;
|
||||
gpointer suspend_data;
|
||||
};
|
||||
|
||||
void ppp_debug(GAtPPP *ppp, const char *str)
|
||||
|
@ -467,6 +469,28 @@ void g_at_ppp_set_debug(GAtPPP *ppp, GAtDebugFunc func, gpointer user_data)
|
|||
ppp->debug_data = user_data;
|
||||
}
|
||||
|
||||
static void ppp_proxy_suspend_net_interface(gpointer user_data)
|
||||
{
|
||||
GAtPPP *ppp = user_data;
|
||||
|
||||
ppp_net_suspend_interface(ppp->net);
|
||||
|
||||
if (ppp->suspend_func)
|
||||
ppp->suspend_func(ppp->suspend_data);
|
||||
}
|
||||
|
||||
void g_at_ppp_set_suspend_function(GAtPPP *ppp, GAtSuspendFunc func,
|
||||
gpointer user_data)
|
||||
{
|
||||
if (ppp == NULL)
|
||||
return;
|
||||
|
||||
ppp->suspend_func = func;
|
||||
ppp->suspend_data = user_data;
|
||||
g_at_hdlc_set_suspend_function(ppp->hdlc,
|
||||
ppp_proxy_suspend_net_interface, ppp);
|
||||
}
|
||||
|
||||
void g_at_ppp_shutdown(GAtPPP *ppp)
|
||||
{
|
||||
if (ppp->phase == PPP_PHASE_DEAD || ppp->phase == PPP_PHASE_TERMINATION)
|
||||
|
|
|
@ -60,6 +60,8 @@ void g_at_ppp_set_connect_function(GAtPPP *ppp, GAtPPPConnectFunc callback,
|
|||
gpointer user_data);
|
||||
void g_at_ppp_set_disconnect_function(GAtPPP *ppp, GAtPPPDisconnectFunc func,
|
||||
gpointer user_data);
|
||||
void g_at_ppp_set_suspend_function(GAtPPP *ppp, GAtSuspendFunc func,
|
||||
gpointer user_data);
|
||||
void g_at_ppp_set_debug(GAtPPP *ppp, GAtDebugFunc func, gpointer user_data);
|
||||
void g_at_ppp_shutdown(GAtPPP *ppp);
|
||||
void g_at_ppp_ref(GAtPPP *ppp);
|
||||
|
|
Loading…
Reference in New Issue