Tcl Source Code

View Ticket
Login
Ticket UUID: 819667
Title: misidentified windows com port
Type: Patch Version: None
Submitter: nobody Created on: 2003-10-08 00:10:02
Subsystem: 25. Channel System Assigned To: hobbs
Priority: 8 Severity:
Status: Closed Last Modified: 2006-08-31 04:56:14
Resolution: Fixed Closed By: hobbs
    Closed on: 2006-08-30 21:56:14
Description:
The Windows GetFileType() command incorrectly returns
FILE_TYPE_UNKNOWN for a com port when using a "KeySpan
high speed USB serial port" device.  As a result, the
channel logic doesn't realize that the port is in fact
a serial port. 

The attached patch adds a new condition when
determining the file type, where GetFileType() returns
FILE_TYPE_UNKNOWN, but there is no error, the handle is
checked against a serial port and console anyways. 
(It's not clear if the console would ever fall into
this case, but it doesn't hurt).  With this change, the
USB serial port is correctly identified as a COM port
and the serial port-only fconfigure options work as
expected.

In addition to the above fix, this logic was duplicated
in two places, TclpOpenFileChannel() and
Tcl_MakeFileChannel().  The logic was extracted from
both places and combined into a new file static
function FileGetType().
User Comments: hobbs added on 2006-08-31 04:56:14:
Logged In: YES 
user_id=72656

Added to 8.4.14 and 8.5a4

hobbs added on 2006-05-12 07:34:16:
Logged In: YES 
user_id=72656

mark for 8.4.14

billygoto added on 2004-12-29 05:14:26:
Logged In: YES 
user_id=848625

I'm a user who now needs this patch.
It's over a year old, and doesn't appear to have been
committed as of 8.4.9.

Please, I don't want to throw out my drawer full of
Keyspan adapters.. :(

If I have to, I'll apply it myself and use a homemade Tcl
on all of our machines, but that's going to be really annoying.
Just posting to make sure this patch isn't forgotten.

andreas_kupries added on 2004-07-17 03:26:35:
Logged In: YES 
user_id=75003

David, any news on this one ?
Maybe some to give to Rolf Schroedter as the serial guy ?

nobody added on 2004-05-11 03:22:59:
Logged In: NO 

According to the documentation for GetCommState() , it
should return zero if it fails (the handle can't be opened
as a COM device.)  This is checked.  Shouldn't this catch
the case of an invalid handle and not return it as a COM
port?  Is there another case in which an invalid handle
could be misidentified?

GetCommState() docs - 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/getcommstate.asp

davygrvy added on 2004-01-12 04:42:07:
Logged In: YES 
user_id=7549

For FILE_TYPE_UNKNOWN, we need to make sure an invalid 
handle isn't improperly trapped as a comm port.

davygrvy added on 2004-01-12 04:33:53:
Logged In: YES 
user_id=7549

This is really a bug in the USB driver.

davygrvy added on 2004-01-12 04:12:27:
Logged In: YES 
user_id=7549

I think this patch is interesting.  A console handle type is 
rather native and shouldn't be something that a custom file 
system driver would get associated to, I think..

I'll play around with this.

nobody added on 2003-10-08 07:10:02:

File Added - 63725: patch

Attachments: