On Thu, 2009-05-21 at 09:15 +0200, Pablo Martí Gamboa wrote:
>
>
> 2009/5/21 Dan Williams <
dcbw redhat com>
> On Wed, 2009-05-20 at 10:23 +0200, Pablo Martí Gamboa wrote:
> > Hi all,
> >
> > I've just been bitten by a small bug in src/nm-gsm-device.c
> +443:
> >
> > const char *responses[] = { "+CREG: 0,0", "+CREG: 0,1",
> "+CREG: 0,2",
> > "+CREG: 0,3", "+CREG: 0,5", NULL };
> >
> >
> > If an external implementation has send '+CREG=1' those
> terminators
> > won't work. I think that you should just check the last part
> of the
> > +CREG response.
>
>
> What would the response & terminator look like in that case?
> Not quite
> sure I follow.
>
> Something along the lines of what is done in ModemManager:
> if (g_str_has_prefix (response->str, "+CREG: ")) {
> int unsolicited, stat;
> sscanf (response->str + 7, "%d,%d", &unsolicited, &stat);
> ....
> switch(stat) {
> case 5: break;
> case 4: break;
> ....
> }
> }
Right, but I meant what is the exact response that's screwing up NM here