[comp.protocols.tcp-ip.ibmpc] CMU pc ip for 3com 500 Ethernet Card

wlee@ICS.UCI.EDU (Wai-Hung David Lee) (08/11/90)

I am trying to modify the CMU pc ip package to build a smtp server
that keeps on looping and accept one connection at a time.
The problem I run into is that I execute the client program 4 times
and the server responds correctly.  On the 5th execution of the
client program (therefore, 5th pass in the smtp server loop), the
server machine seems to fail to get the 2nd packet from the client
(the ACK packet ack'ing the server's SYN & ACK packet during the
3-way handshake), but the client does send it.  According to the
run-time trace, et_demux() is not awaken by the interrupt handler
et_int() and hence et_demux(), the function associated with the
task ETDemux, remains block on tk_block() and no upcall is made.
I don't understand why et_demux() is awaken properly for the
first 4 sessions and also for the 1st packet in the 5th session but
it fails afterwards.  On each pass, I reuse the packet-related
structures (opbi, ophp, ...) and has only allocated them once and
I reinitialize the strutures.

The code is running on a 386 with a 3com 500 Ethernet card.

Any hint or suggestion is greatly apppreciated!  Thanks in advance!

wlee