+ if rdfs.IsSet(reader.(exposeFd).Fd()) {
+ size, err := reader.Read(buff)
+
+ if err != nil {
+ Log.Debugf("Read error %v; err %v", size, err)
+ if err == io.EOF {
+ // CTRL-D exited scanner, so send it explicitly
+ err := IOSkClient.Emit(xaapiv1.TerminalInEvent, "\x04\n")
+
+ if err != nil {
+ terminal.Restore(int(os.Stdin.Fd()), oldState)
+ exitChan <- exitResult{err, 4}
+ return
+ }
+ time.Sleep(time.Millisecond * 100)
+ continue
+ } else {
+ terminal.Restore(int(os.Stdin.Fd()), oldState)
+ exitChan <- exitResult{err, 5}
+ return
+ }
+ }