I've been going through my available network-capable devices, and can't reproduce this particular packet behaviour myself, so I'm kinda dependent on other testers to let me know if this patch fixes anything.
It doesn't seem to harm modem behaviour on my devices, but I'd rather have at least one report of it fixing behaviour before I apply it. Thanks, - Chris On Fri, Sep 04, 2009 at 10:06:21PM -0400, Chris Frey wrote: > On Wed, Aug 19, 2009 at 06:37:41AM -0600, Loren A. Linden Levy wrote: > > > The device actually disappears here... you might check the lsusb output > > > to see if it's really gone. You might also watch the device to see if it > > > reboots for some reason. > > > > I am not sure if it reboots but the screen foes blank and then turns > > white and goes back to the normal phone state. I'm not positive but > > this does not look like a complete reboot to me. Actually I just > > looked again and it does appear to reboot. Is this something i need to > > fix with the blackberry itself? > > Similar problems have been reported before, and I went back through the > mailing list archives, and found a possible fix reported by Rick Scott. > > I don't have a modem-capable device handy at the moment, so could you > give the following patch a test run? If it hangs for a long time for you, > remove the additional BulkRead() and try again. > > Thanks, > - Chris > > > diff --git a/src/m_ipmodem.cc b/src/m_ipmodem.cc > index 6e56a78..b37abb0 100644 > --- a/src/m_ipmodem.cc > +++ b/src/m_ipmodem.cc > @@ -270,6 +270,20 @@ void IpModem::Open(const char *password) > ddout("IPModem: Start Response Packet:\n" << data); > } > > + // After start response packet, check if handshake is needed... > + // this may avoid some of the reboots that some devices are seeing. > + if( data.GetSize() >= 4 && data.GetData()[0] == 0x04 && > + memcmp(data.GetData() + data.GetSize() - 4, special_flag, > sizeof(special_flag)) ) { > + unsigned char startHandshake[] = { 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, > + 0x00, 0xc2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12 }; > + ddout("IPModem: sending start handshake:\n"); > + m_dev.BulkWrite(write_ep, startHandshake, > sizeof(startHandshake)); > + m_dev.BulkRead(read_ep, data); > + ddout("IPModem: received start handshake response:\n" << data); > + } > + > // send packet with the session_key > unsigned char response_header[] = { 0x00, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, > 0, 0, 0xc2, 1, 0 }; > memcpy(&response[0], response_header, sizeof(response_header)); > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Barry-devel mailing list > Barry-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/barry-devel ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Barry-devel mailing list Barry-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/barry-devel