[go: up one dir, main page]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Networking is broken on Windows NT 3.10 #162

Open
Tracked by #164
davidrg opened this issue Feb 6, 2023 · 0 comments
Open
Tracked by #164

Networking is broken on Windows NT 3.10 #162

davidrg opened this issue Feb 6, 2023 · 0 comments
Labels
Milestone

Comments

@davidrg
Copy link
Owner
davidrg commented Feb 6, 2023

The issue appears to be in ckcnet.c, function netinc. The select call (guarded by #ifdef BSDSELECT) isn't working properly on Windows NT 3.1 for some unknown reason. It always appears to report ttyfd isn't ready to read (rc == 0 && !FD_ISSET(ttyfd, &rfds)) even when ttchk() (and its call to socket_ioctl(ttyfd,FIONBIO,&y)) reports there being bytes waiting to be read.

Given the FIONBIO ioctl has said there are bytes waiting to be read, the select() call should be saying ttyfd is read to be read but it isn't. This is only an issue on Windows NT 3.1 - this exact same code built with the same compiler works fine on other all other Windows versions. And if netinc is adjusted to ignore the select() result and instead try to read if ttchk() says there is data to be read, the problem goes away (and is replaced with another one - FIONBIO isn't very fast and apparently has the potential to be buggy).

I assume select() isn't outright broken on NT 3.1, its possible C-Kermit is just doing something that Windows NT 3.1 doesn't like. Just what that could be I have no idea at this time. Perhaps SO_OOBINLINE? Only out-of-band selects seem to be working - perhaps that's related. Or maybe some threading or timing issue? It doesn't always die at the exact same place so its not a matter of it breaking after receiving x bytes - sometimes it breaks immediately, sometimes it breaks after receiving a few screenfuls of data.

@davidrg davidrg added the bug label Feb 6, 2023
@davidrg davidrg mentioned this issue Feb 6, 2023
4 tasks
@davidrg davidrg added this to the Final Release milestone Jul 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant