1. Fix configure.ac tcp.h header and keepalive constant checks and report during ./configure the keepalive support that was detected (none, basic or full).
2. #include the correct tcp.h header in hstdinc.h
3. Issue warning message at build time (during make) when full keepalive support is missing or partial.
4. Report partial or missing keepalive build support via version.c "With" and "Without" messages.
5. Issue error or warning in both impl.c as well as in 'conkpalv' command/statement processing function when keepalive support is either missing or only partially supported. Same for the 2703 device 'ka=' option too.
6. Enhance set_socket_keepalive function to let the caller know not only about failures but also about partial-only successes (so they can be reported).
7. Fix the bad setsockopt call in the Linux version of the set_socket_keepalive function that was using the wrong value, which was at the heart of the problem. (Note: setsockopt was returning "success" anyway even though it had actually failed! [to accomplish anything].)
8. Introduce new get_socket_keepalive function to allow retrieval and reporting of current keepalive settings for a given socket.
9. Manually maintain socket keepalive values for Windows builds so it too can support retrieval of current values via new get_socket_keepalive function. (see comments in w32util.c "get_socket_keepalive" function!)
10. Minor HTML documentation edits.
Completely disable (for the time being) all Shared Device Server code (since it's causing problems) until we can determine how to properly integrate it into our existing more accurate (architecturally correct) channel subsystem code.
Device type CTCE permits channel-to-channel communications across a TCP/IP link between two Hercules systems. Unlike CTCT, CTCE is designed for general purpose payloads and is not restricted to IP traffic.
Original CRW code was committed May 2011 (dc04e4858f) but was accidentally backed out by Jan sometime later. Mark's recent "Channel cleanup (Phase I)" commits (May 2013) re-introduced MOST of the May 2011 code, but itself accidentally missed some of it. This is the part that Mark missed re-adding such that the original May 2011 correction to our CRW handling is once again complete.
Open questions: named vs unnamed structures
what field go in device specfic structures vs general structure
use of malloc vs static
naming convention
git-svn-id: file:///home/jj/hercules.svn/trunk@7702 956126f8-22a0-4046-8f4a-272fa8102e63