]> sigrok.org Git - libserialport.git/commitdiff
Windows: clear errors after port open.
authorMartin Ling <redacted>
Tue, 17 Dec 2013 17:19:55 +0000 (17:19 +0000)
committerMartin Ling <redacted>
Tue, 17 Dec 2013 17:19:55 +0000 (17:19 +0000)
serialport.c

index db7708091e7342ce0f634c4e6674e3d7bc2375fc..e935464013e2fb82db3f3bdb7955225ed70e8220 100644 (file)
@@ -608,8 +608,9 @@ enum sp_return sp_open(struct sp_port *port, enum sp_mode flags)
        DEBUG("Opening port %s", port->name);
 
 #ifdef _WIN32
-       DWORD desired_access = 0, flags_and_attributes = 0;
+       DWORD desired_access = 0, flags_and_attributes = 0, errors;
        char *escaped_port_name;
+       COMSTAT status;
 
        /* Prefix port name with '\\.\' to work with ports above COM9. */
        if (!(escaped_port_name = malloc(strlen(port->name + 5))))
@@ -727,6 +728,10 @@ enum sp_return sp_open(struct sp_port *port, enum sp_mode flags)
        data.term.c_cflag |= (CLOCAL | CREAD | HUPCL);
 #endif
 
+#ifdef _WIN32
+       ClearCommError(port->hdl, &errors, &status);
+#endif
+
        ret = set_config(port, &data, &config);
 
        if (ret < 0) {