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:
- patch [download] added by nobody on 2003-10-08 07:10:02. [details]