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

Reply via email to