All right then,
Thanks for the encouragement. Thanks to Mulix for wanting to host it. If anyone else wants this, please let me know. I will release the software real soon, probably either this evening or tomorrow. I want to make some minor cleanups (such as removing the hard-coding of my user name inside the code ;-)). The code is mainly based on reverse-engineering. I used the wonderful USB sniffer written by Benoit Papillault http://benoit.papillault.free.fr/usbsnoop/index.en.php, using the modem under Windows. Then going through zillions of RFCs, 3 ITU recommendations (luckily this is the maximum number of recommendations that can be downloaded for free), the USB spec, and the pppd manpage I succeeded to hack this driver and make it work (well, at least partially, as I explained). Playing with mtu/mru does not seem to affect the behavior too much. Ok, for those interested I attach the dump of tcpdump (actually I belong to the coward crowd that uses ethereal, so it's ethereal dumps ;-) which shows the problem. lynx_hp shows an attempt to connect to www.hp.com using lynx on my modem, while lynx_hp_ok shows the same thing when the modem runs on Windows and my computer is connected via ethernet to the Windows computer. My IP address at actcom is 192.117.103.188 (this is when I connect via the modem), while when I am connected via Windows acting as a router + DHCP + DNS proxy, my IP address was 192.168.0.128. Ah, and one more question. I used some code from RFC 1662 for computing the checksum for PPP frames. The code is copied almostly verbatim from there (I just changed the K&R declarations to ANSI prototypes). Can this code be used in GPL'ed programs? (I believe the answer is yes, but I'm not sure). Emil
lynx_hp.gz
Description: Binary data
lynx_hp_ok.gz
Description: Binary data