-----BEGIN PGP SIGNED MESSAGE----- Hal said:
This sounds very good if it already is almost working. The TCP connection which is opened would have to be to a server on the local machine, so it would be important that the software support that. Also, the local SOCKS relay would of course not want its winsock calls to be intercepted and translated in this way, so there would need to be some alternative way to access "vanilla" winsock. Can you give any more information on the NEC work?
This should be fairly straightforward: take the existing winsock.dll or winsock32.dll and rename it. Install the NEC DLL with the old winsock's name, then have the NEC DLL do a LoadLibrary() to attach the original version.
I have written a simple dummy relay for winsock and it requires a pretty different programming style than for Unix. Netscape has a habit of firing off a bunch of requests at once, so it has to be extremely asynchronous. For Windows this means you get a windows message every time a packet arrives and use non-blocking I/O. In Unix this is usually handled by forking a new process to handle each independent connection. Non-blocking I/O can be used in Unix but I don't think there is a non-blocking connect as there is in Windows. Maybe Windows 95 will allow a more Unix-style communication model, though. Should the proxy require Windows 95, or will Windows 3 still be in widespread use for another year or two?
Asynchronous requests are the best way to implement I/O under Windows (3.1, '95, and NT.) Any app that's threaded (Free Agent and Netscape come to mind) will benefit, as will any user who's using a multiprocessor machine. If you're willing to assume the existence of Win95 or WinNT, you can always spawn a new thread for each connection. - -Paul - -- Paul Robichaux, KD4JZG | Do you support free speech? Even when perobich@ingr.com | you don't like what's being said? Be a cryptography user. Ask me how. -----BEGIN PGP SIGNATURE----- Version: 2.6.2 iQCVAwUBMBZVcafb4pLe9tolAQHrHwQAhBAtIAZnaL2gh1BhZeE6WWQ1UQK7ffB2 XRZReUNzAVpCyvllKPDiN5TgUSuit8XeB4BzHOStXkNMJGlLE0vqTr5j5y2S0Fzo nisi5Ve5+8XWJ8wFrshldfFcLyFuOK3LeL9cAKXQQrQ2GdxluusqBzqYHFM8koPP zWI2YiF0VHM= =yzFt -----END PGP SIGNATURE-----