Re: Can't see the content of HttpBody

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Fri, 24 Jul 2009 14:35:44 -0600

On 07/21/2009 04:51 AM, EliG wrote:

> I am making my firts steps in Squid... and trying to see the content of the
> Html Response.
> In a future I will try to modify that content. The following code only shows
> me the content of the header but no content for the body. Please help.
>
> in clientStream.cc:
> ~~~~~~~~~~~~~~
> ...
> void
> clientStreamCallback(clientStreamNode * thisObject, ClientHttpRequest *
> http,
> HttpReply * rep, StoreIOBuffer replyBuffer)
> {
> clientStreamNode *next;
> assert(thisObject && http && thisObject->node.next);
> next = thisObject->next();
>
> debugs(87, 3, "clientStreamCallback: Calling " << next->callback << "
> with cbdata " <<
> next->data.getRaw() << " from node " << thisObject);
> //MY CODE STARTS HERE
> if (rep)
> {
> if (rep->content_type.pos("text/html"))
> {
> MemBuf *buf = rep->pack();
> debugs(87, 1, "My Code!!! The Header is: " << buf->content());
>
> Packer p;
> MemBuf mb;
> mb.init();
> const HttpBody b = rep->body;
> httpBodyPackInto(&b, &p);
> packerToMemInit(&p, &mb);
>
> debugs(87,1, "My Code!!! The Body is : " << mb.content());
> packerClean(&p);
> mb.clean();
> }
> }
> //MY CODE ENDS HERE
>
> next->callback(next, http, rep, replyBuffer);
> }
>

I would recommend that you use eCAP which was designed for content
adaptation and has much higher-level interface than ClientStreams,
especially if you plan to update HTML later.

Good luck,

Alex.
Received on Fri Jul 24 2009 - 20:36:41 MDT

This archive was generated by hypermail 2.2.0 : Sat Jul 25 2009 - 12:00:08 MDT