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

Reply via email to