TCP/IP Testing help, Round 2

Michael B. Brutman mbbrutman-cctalk at brutman.com
Mon Jan 1 09:16:25 CST 2007


Found it!  Testing is open again - hammer away at will!

(Hopefully this time I'm just going to sit back with a nice glow and 
monitor it working perfectly.)


The postmortem:

Consistency checking is a good thing.  The runtime of my compier has a 
'heapcheck' function that walks the heap and verifies that everything is 
in order.  I have some code controlled by a #def that is doing this 
checking (along with checking my own data structures) fairly often.  It 
impacts performance, but at least I can get closer the problem.)

There were almost no symptoms for this heap corruption - the machine was 
running fine, sessions were still going, and DOS didn't behave badly 
after I shut the server down.  Nor could I see an obviously bad flow in 
the traces.  So I started diagnostics on the machine, thinking it was a 
fluke.

While I was walking the dog this morning, it occurred to me what 
happened.  Simple buffer overun ..  I allocated only 512 bytes for 
output per session, but tried sending quite a bit more.  Spc exposed my 
crap coding with the 'sockets' command that showed nine sessions ..  The 
last time I tested with 9 simultaneous connections I didn't have the 
consistency checking, so I was probably corrupting heap and not 
realizing it.



Telnet users:

My understanding of telnet is that it is a protocol, not just raw 
characters.  So when you hit Ctrl-C under a typical Telnet client in 
Unix, you are sending the equivalent of a 'process' interrupt.

I see lots of funny characters on my side, but they'll get consumed and 
life goes on.  I suspect that telnet is not so tolerant though, and is 
expecting a proper response back from the telnet server.  I don't have a 
real telnet server here - it's not negotiating options or talking the 
official protocol.

Short story .. don't bother with control chars.  My code doesn't care, 
and I think the normal telnet clients get tied up because my code isn't 
responding right.



Anybody notice the BIOS date and machine ID? That's generated at 
runtime, not a static string. :-)


Thanks again, and party on!

Mike




More information about the cctalk mailing list