W3C home > Mailing lists > Public > www-lib@w3.org > October to December 1998

Re: Patch for using libwww to accept incoming connect

From: Henrik Frystyk Nielsen <frystyk@w3.org>
Date: Tue, 15 Dec 1998 21:00:08 -0500
To: www-lib@w3.org
Message-ID: <36771428.7B2CFC36@w3.org>
To: Mikhail Grouchinski <mgrouch@usa.net>


Mikhail Grouchinski wrote:

> In fact, in my case, I always have only one non-HTTP connection and I need not to listen. The file descriptor for this connection comes from outside (via environment).

That's fine - I needed the servier side of libwww for HTTP-NG related
work. 
 
> I've looked at mget.c
> 
> I have more questions to you.
> How can I send HTTP request(s), install callback for replies and within this callback
> get a pointer to the buffer with the reply body.

You can see an example for how to use AFTER filters at

	http://www.w3.org/Library/Examples/range.c

I just use a global variable (cheating) but you can as well use contexts
which can be associated with any request object:

	http://www.w3.org/Library/src/HTReq.html#context

(you don't have to use the request callback mechanism).

> Also within the same callback I have to reply
> via my custom socket to the rest of the my system.

In the range request above, when the terminate filter is called, this is
the last step in handling that request and you are free to start any
other new request you want (you can always start new libwww requests any
time you want).
 
> How can I implement this with LibWWW?
> In mget.c there are no callbacks on replies.

The terminate handler is in fact an AFTER filter - only the request
contexts are not used.
 
> As far as I understand LoadToChunk only sends request and all reading happens in EventLoop.
> When does the chunk get filled?
> How can I detect that?

It starts getting filled up as soon as there is data on the socket. You
can't really peak inside the chunk before the request is done. If you
want to have streamed data at you then you need to use plain libwww
streams instead.

Henrik
Received on Tuesday, 15 December 1998 21:00:17 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 17:59:24 EDT