Apparently MsgWaitForMultipleObjects doesn't always return the
[sgt/putty] / windows / winser.c
index 35a4ed4..21ff9a2 100644 (file)
@@ -217,12 +217,13 @@ static const char *serial_init(void *frontend_handle, void **backend_handle,
     serial = snew(struct serial_backend_data);
     serial->port = NULL;
     serial->out = serial->in = NULL;
+    serial->bufsize = 0;
     *backend_handle = serial;
 
     serial->frontend = frontend_handle;
 
     {
-       char *msg = dupprintf("Opening serial device %s", host);
+       char *msg = dupprintf("Opening serial device %s", cfg->serline);
        logevent(serial->frontend, msg);
     }
 
@@ -240,7 +241,8 @@ static const char *serial_init(void *frontend_handle, void **backend_handle,
                                    HANDLE_FLAG_OVERLAPPED);
     serial->in = handle_input_new(serport, serial_gotdata, serial,
                                  HANDLE_FLAG_OVERLAPPED |
-                                 HANDLE_FLAG_IGNOREEOF);
+                                 HANDLE_FLAG_IGNOREEOF |
+                                 HANDLE_FLAG_UNITBUFFER);
 
     *realhost = dupstr(cfg->serline);