You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Manish Pandey <ma...@gmail.com> on 2010/12/02 23:11:03 UTC

Re: Printing origin server response / How to inspect body?

I have looked at the examples in the SDK doc, and couldn't see any example
of proxy operation that depends on the content of the body - Any suggestions
on how to obtain the string to inspect the body?
What I have tried does not seem to work ... and will appreciate any help.
Seems like I am missing some functions to obtain the body string from
buffer.

Thanks,
Manish


On Tue, Nov 30, 2010 at 7:14 AM, Manish Pandey <mp...@alumni.cmu.edu>wrote:

> Hi Eric,
>
> Thanks for the pointers.
>
> >1. With a transformation plugin you could 'print' the full response -- but
> where do you want to print it?
>
> I'd like to print it as a debug message to stdio/stderr on the window in
> which the program is running, and check on the transformations that are
> applied to it.
>
> 2. The null-transform plugin can be the basis of the plugin I want to
> develop, but a couple of questions. Here is the code snippet which seems to
> do the actual copying. How do I access the actual string or char*
> representing the body here?  The data seems to be hidden below a few levels
> of buffers and abstractions:
>
> if (towrite > 0) {
>       /* Copy the data from the read buffer to the output buffer. */
>       if (TSIOBufferCopy(TSVIOBufferGet(data->output_vio), TSVIOReaderGet(input_vio), towrite, 0) == TS_ERROR) {
>         TSError("[null-plugin] unable to copy IO buffers\n");
>         goto Lerror;
>       }
>
>
> Thanks,
> Manish
>
> On Sun, Nov 28, 2010 at 10:47 PM, Eric Balsa <er...@apache.org> wrote:
>
>> Hi Manish,
>>
>> 1. With a transformation plugin you could 'print' the full response --
>> but where do you want to print it?
>>
>> 2. There is no HTML parsing inside TrafficServer. TS does not care
>> about content; it proxies/caches *anything* as long as it's served
>> over HTTP/HTTPS.
>>
>> To solve your problem, you would need to develop a transformation
>> plugin (
>> http://trafficserver.apache.org/docs/v2/sdk/HTTPTransformationPlugins.html
>> )
>> and do some simple string parsing on the buffer.
>>
>> There are a few plugin examples available to get you started at:
>>
>> http://svn.apache.org/repos/asf/trafficserver/traffic/trunk/example/null-transform/
>>
>> http://svn.apache.org/repos/asf/trafficserver/traffic/trunk/example/bnull-transform/
>>
>> http://svn.apache.org/repos/asf/trafficserver/traffic/trunk/example/append-transform/
>>
>> Regards,
>> --Eric
>>
>> On Sun, Nov 28, 2010 at 9:05 PM, Manish Pandey <ma...@gmail.com>
>> wrote:
>> > Hi folks,
>> >
>> > I am developing a trafficserver plugin, and would like to find out
>> > 1. How can I print a origin server response sent to the trafficserver,
>> e.g.,
>> > the html document with embedded javascript etc.
>> > 2. Also, how can I detect specific strings in the response to do
>> response
>> > filtering? Is there any html parser that is available
>> >   in TS that I can use for this?
>> >
>> > Any pointers will be appreciated.
>> >
>> > Thanks,
>> > Manish
>> >
>>
>
>