HTTPServ/HTServHTTP not accept'ing?

Hello,
I'm attempting to create a simple server application using libwww 5.2.8.
In order to get started, I've tried to change the listen.c example to
use HTTPServ instead of HTSocket.
The relevant code (from my modified listen.c) is:

/*<snip>*/
HTProtocol_add("http", "tcp", ms->port, NO, NULL, HTServeHTTP);

        /* Set up the request */
        ms->request = HTRequest_new();
        HTRequest_setOutputFormat(ms->request, DEFAULT_FORMAT);
        HTRequest_setOutputStream(ms->request,
                                  HTFWriter_new(ms->request, OUTPUT,
YES));

        /* Start listening on the socket */
        HTPrint("Listening on port %d\n", ms->port);
        if ((status = HTServeAbsolute("http://localhost", ms->request))
== NO) {
/*<snip>*/

The changes from the original listen.c code is in the first and the last
lines.
The problem is that this code does not result in any accept call. The
HTLoadSocket function calls SocketEvent, which does HTHostAccept, but
HTServeHTTP does not lead to any accept being done, as far as I can see.
(`netstat -anf inet` does not show anything listening on port 80, as
would be expected) 
Now, by looking at older versions of HTTPServe.c in the CVS repository,
I've found that prior to revision 2.18 of HTTPServ.c, there was a call
to HTDoAccept in HTServeHTTP. I can't find any explanation why it's been
removed anywhere.

Does anyone know the reason for the lack (or removal) of an accept'ing
function call in HTTPServ?
Could it be that the thought is that one should set up and handle server
TCP connections in the application?

Any feedback would be greatly appreciated.
Best Regards
Niklas Wiberg

Received on Tuesday, 21 December 1999 08:31:44 UTC