Repository: incubator-mynewt-newt
Updated Branches:
  refs/heads/develop 32e6d1990 -> 3c0d218dc


This closes #10.

Better handle timeouts

Timeouts result in the scanner getting an EOF.  A scanner can't be used
after getting an EOF.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/3c0d218d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/3c0d218d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/3c0d218d

Branch: refs/heads/develop
Commit: 3c0d218dc7e68f220683b63382e05bcda506406d
Parents: 32e6d19
Author: spoonofpower <[email protected]>
Authored: Tue May 24 21:16:49 2016 -0700
Committer: Marko Kiiskila <[email protected]>
Committed: Fri May 27 13:32:12 2016 -0700

----------------------------------------------------------------------
 newtmgr/transport/connserial.go | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/3c0d218d/newtmgr/transport/connserial.go
----------------------------------------------------------------------
diff --git a/newtmgr/transport/connserial.go b/newtmgr/transport/connserial.go
index 405d7ec..8e230ce 100644
--- a/newtmgr/transport/connserial.go
+++ b/newtmgr/transport/connserial.go
@@ -123,7 +123,14 @@ func (cs *ConnSerial) ReadPacket() (*Packet, error) {
                }
        }
 
-       return nil, util.NewNewtError("Scanning incoming data failed")
+       err := scanner.Err()
+       if err == nil {
+               // Scanner hit EOF, so we'll need to create a new one.  This 
only
+               // happens on timeouts.
+               err = util.NewNewtError("Timeout reading from serial 
connection")
+               cs.scanner = bufio.NewScanner(cs.serialChannel)
+       }
+       return nil, err
 }
 
 func (cs *ConnSerial) writeData(bytes []byte) {

Reply via email to