mirror of git://git.sysmocom.de/ofono
ppp: Keep track when read watcher dies
This commit is contained in:
parent
79d81af431
commit
36d15b4366
|
@ -321,7 +321,8 @@ static void ppp_record(GAtPPP *ppp, gboolean in, guint8 *data, guint16 length)
|
||||||
err = write(ppp->record_fd, data, length);
|
err = write(ppp->record_fd, data, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean ppp_cb(GIOChannel *channel, GIOCondition cond, gpointer data)
|
static gboolean ppp_read_cb(GIOChannel *channel, GIOCondition cond,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
GAtPPP *ppp = data;
|
GAtPPP *ppp = data;
|
||||||
GIOStatus status;
|
GIOStatus status;
|
||||||
|
@ -443,6 +444,11 @@ void ppp_generate_event(GAtPPP *ppp, enum ppp_event event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void read_watcher_destroy_notify(GAtPPP *ppp)
|
||||||
|
{
|
||||||
|
ppp->read_watch = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void ppp_set_auth(GAtPPP *ppp, const guint8* auth_data)
|
void ppp_set_auth(GAtPPP *ppp, const guint8* auth_data)
|
||||||
{
|
{
|
||||||
guint16 proto = get_host_short(auth_data);
|
guint16 proto = get_host_short(auth_data);
|
||||||
|
@ -615,9 +621,10 @@ GAtPPP *g_at_ppp_new(GIOChannel *modem)
|
||||||
ppp->net = ppp_net_new(ppp);
|
ppp->net = ppp_net_new(ppp);
|
||||||
|
|
||||||
/* start listening for packets from the modem */
|
/* start listening for packets from the modem */
|
||||||
ppp->read_watch = g_io_add_watch(modem,
|
ppp->read_watch = g_io_add_watch_full(modem, G_PRIORITY_DEFAULT,
|
||||||
G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
|
G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
|
||||||
ppp_cb, ppp);
|
ppp_read_cb, ppp,
|
||||||
|
(GDestroyNotify)read_watcher_destroy_notify);
|
||||||
|
|
||||||
ppp->record_fd = -1;
|
ppp->record_fd = -1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue