Hi Kristen, > On Mon, 10 May 2010 12:23:04 -0500 > > Denis Kenzior <[email protected]> wrote: > > Hi Kristen, > > > > > On Mon, 10 May 2010 09:11:52 -0500 > > > > > > Denis Kenzior <[email protected]> wrote: > > > > Hi Kristen, > > > > > > > > > If no read_handler specified, leave data alone in case someone > > > > > else wants to read it. > > > > > --- > > > > > gatchat/gatio.c | 4 ++++ > > > > > gatchat/gsmdial.c | 12 ++++-------- > > > > > 2 files changed, 8 insertions(+), 8 deletions(-) > > > > > > > > > > diff --git a/gatchat/gatio.c b/gatchat/gatio.c > > > > > index 61b0260..b4a3806 100644 > > > > > --- a/gatchat/gatio.c > > > > > +++ b/gatchat/gatio.c > > > > > @@ -91,6 +91,10 @@ static gboolean received_data(GIOChannel > > > > > *channel, GIOCondition cond, if (cond & G_IO_NVAL) > > > > > return FALSE; > > > > > > > > > > + /* if nobody wants this data, leave it alone */ > > > > > + if (io->read_handler == NULL) > > > > > + return TRUE; > > > > > + > > > > > > > > This is a really bad idea, we should never have cases where the read > > > > handler is unset, and if we do we should end up closing the socket > > > > when the buffer is full. > > > > > > In your implementation of g_at_chat_suspend, you set the read handler > > > to NULL. > > > > Correct, with the intent that someone else sets the read handler (e.g. > > g_at_ppp) > > What if you receive data after the read handler is set to NULL, but before > someone else sets the read handler? shouldn't we safe guard against that? >
We do safe guard, once the buffer runs out of space we close the GAtIO. However, letting GAtIO enter the event-loop (since only then the io watch will fire) without a read handler is a user error. Having an active GAtIO without a read handler is useless... Regards, -Denis _______________________________________________ ofono mailing list [email protected] http://lists.ofono.org/listinfo/ofono
