I have verified that there is a bug on the plugin. it will not work if the origin server is returning gzip content.
I setup a test trafficserver with remap.config to connect to your origin server - ori.servotic.com This will not work. curl --compress -v -H 'Host: www.servotic.com' "http://10.212.114.36/esi/esi.html" But this will curl -v -H 'Host: www.servotic.com' "http://10.212.114.36/esi/esi.html" I will try to fix this once i get back home and will update TS 1249 accordingly https://issues.apache.org/jira/browse/TS-1249 Thanks. Kit On Fri, May 18, 2012 at 11:34 PM, Kit Chan <chanshu...@gmail.com> wrote: > Sorry that i have to go through this multiple times. I am on vacation now and > can't fire a session to debug it myself. I can only guess why it does not > work from traffic.out > > It looks like esi/esi.html is requested and the response is of 126 bytes in > size (gzipped). It looks like the parser does not do well with these 126 > bytes and return empty string after parsing. So you must be not getting any > response body. > > There may be bug in the gunzip of the origin server response. So u can try to > use curl instead of using browser to access the url. This should make the > request/response to not use gzip encoding. > > curl -v -H "Host: www.servotic.com" > "http://your-staging-ts-server/esi/esi.html" > > If the above works, then thats indeed a problem in the plugin. i think i can > take a look and try to fix it once i get back home around 10 days later. > > Thanks > > Kit > > Sent from my iPhone > > On May 18, 2012, at 1:03 PM, Jorge Román Novalbos <jro...@linux-it.es> wrote: > >> I have tried writing the whole url in src: >> >> <HTML> >> <BODY> >> The time is: <esi:include src="http://www.servotic.com/date.php"/> >> at this very moment. >> </BODY> >> </HTML> >> >> >> TRaffic.out: >> >> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >> [isInterceptRequest] Skipping external request >> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >> [globalHookHandler] handling read request header event... >> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >> [globalHookHandler] Not setting up intercept >> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >> [isInterceptRequest] Skipping external request >> [May 18 12:56:20.002] Server {47736083166976} DIAG: (plugin_esi) >> [globalHookHandler] handling cache lookup complete event... >> [May 18 12:56:20.002] Server {47736083166976} DIAG: (plugin_esi) >> [isCacheObjTransformable] cache object's status is 0; not transformable >> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >> [isInterceptRequest] Skipping external request >> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >> [globalHookHandler] handling read response header event... >> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >> [isCacheObjTransformable] cache object's status is 0; not transformable >> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >> [getClientState] Got request URL [http://ori.servotic.com/esi/esi.html?ppppp] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept-Encoding] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >> [getClientState] Client accepts gzip encoding; will compress output >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept-Encoding] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Connection] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Pragma] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: >> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Cache-Control] >> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >> [getServerState] Not retaining 'vary: accept-encoding' header >> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >> [getServerState] Not retaining 'content-encoding: gzip' header >> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >> [getServerState] Not retaining 'X-Esi' header >> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >> [getServerState] Not retaining 'Content-length' header >> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >> [addTransform] Added transformation (0x0x2372890) >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [init] Set input data type to [GZIPPED_ESI] >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformHandler] initialized continuation data >> [May 18 12:56:20.315] Server {47736084219648} DIAG: >> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 1 not within fetch >> event id range [10000, 10000) >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformHandler] handling TS_EVENT_IMMEDIATE... >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] upstream VC has 126 bytes available to read >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] Added chunk of 126 bytes starting with [] to parse list >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] Consumed 126 bytes from upstream VC >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] Completed reading input... >> [May 18 12:56:20.315] Server {47736084219648} DIAG: >> (plugin_esi_processor_0x2372890) [completeParse] Implicit call to start() >> [May 18 12:56:20.315] Server {47736084219648} DIAG: >> (plugin_esi_parser_0x2372890) [_setup] Returning true for empty data >> [May 18 12:56:20.315] Server {47736084219648} DIAG: >> (plugin_esi_parser_0x2372890) [_completeParse] No data to parse! >> [May 18 12:56:20.315] Server {47736084219648} DIAG: >> (plugin_esi_processor_0x2372890) [_handleParseComplete] Parsed ESI document >> with 0 nodes >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] data ready; going to process doc >> [May 18 12:56:20.315] Server {47736084219648} DIAG: >> (plugin_esi_processor_0x2372890) [process] ESI processed document of size 0 >> starting with [(null)] >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] ESI processor output document of size 0 starting with >> [(null)] >> [May 18 12:56:20.315] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformData] Compressed document from size 0 to 20 bytes >> [May 18 12:56:20.315] Server {47736080008960} DIAG: >> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 1 not within fetch >> event id range [10000, 10000) >> [May 18 12:56:20.316] Server {47736080008960} DIAG: (plugin_esi_0x2372890) >> [transformHandler] handling TS_EVENT_IMMEDIATE... >> [May 18 12:56:20.316] Server {47736080008960} DIAG: (plugin_esi_0x2372890) >> [transformData] input_vio NULL, marking transformation to be terminated >> [May 18 12:56:20.324] Server {47736062606624} DIAG: (plugin_esi) >> [modifyResponseHeader] Removing header with name [Cache-Control] >> [May 18 12:56:20.325] Server {47736062606624} DIAG: (plugin_esi) >> [modifyResponseHeader] Removing header with name [X-Esi] >> [May 18 12:56:20.325] Server {47736062606624} DIAG: (plugin_esi) >> [modifyResponseHeader] Removing header with name [Age] >> [May 18 12:56:20.325] Server {47736062606624} DIAG: (plugin_esi) >> [modifyResponseHeader] Inspected client-bound headers >> [May 18 12:56:20.336] Server {47736082114304} DIAG: >> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 103 not within fetch >> event id range [10000, 10000) >> [May 18 12:56:20.337] Server {47736082114304} DIAG: (plugin_esi_0x2372890) >> [transformHandler] shutting down transformation >> [May 18 12:56:20.348] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [checkXformStatus] Vconn closed >> [May 18 12:56:20.349] Server {47736084219648} DIAG: >> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 1 not within fetch >> event id range [10000, 10000) >> [May 18 12:56:20.349] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformHandler] Transformation closed. Post-processing... >> [May 18 12:56:20.349] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformHandler] Processing is complete, not processing current event 1 >> [May 18 12:56:20.349] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [transformHandler] transformation closed; cleaning up data... >> [May 18 12:56:20.349] Server {47736084219648} DIAG: (plugin_esi_0x2372890) >> [~ContData] Destroying continuation data >> >> >> >> >> quid.blog: >> 1337338580.337 335 10.6.0.6 TCP_MISS/200 296 GET >> http://www.servotic.com/esi/esi.html?ppppp - DIRECT/ori.servotic.com >> text/html Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) >> Gecko/20100101 Firefox/12.0 - >> >> >> The remap_config is like this right now: >> >> map http://www.servotic.com/ http://ori.servotic.com/ >> >> I don't know what is wrong… :( >> >> >> >> >> On 17/05/2012, at 23:28, Kit Chan wrote: >> >>> I am not 100% sure but i think the plugin is not smart enough yet to >>> understand the "../" >>> >>> This may work in esi/esi.html >>> >>> <esi:include src="http://www.servotic.com/date.php"/> >>> >>> If not, can u make sure that conf_remap is not doing anything funny for >>> your request? and pls post the traffic.out & squid.blog/squid.log again >>> after the suggested change. >>> >>> Thanks >>> Kit >>> >>> Sent from my iPhone >>> >>> On May 17, 2012, at 10:39 PM, Jorge Román Novalbos <jro...@linux-it.es> >>> wrote: >>> >>>> First of all, I'm sorry I'm a newbie in esi tags and it's being so >>>> confusing for me…. >>>> >>>> >>>> >>>> On 17/05/2012, at 21:41, Kit Chan wrote: >>>> >>>>> It seems that the plugin is not getting any response body from the first >>>>> request. >>>>> >>>>>> http://ori.servotic.com/esi/esi.php?p >>>>> >>>>> >>>>> So it thinks that there is no esi markup to interpret. >>>> >>>> >>>> This is the content of esi.html: >>>> >>>> <HTML> >>>> <BODY> >>>> The time is: <esi:include src="../date.php"/> >>>> at this very moment. >>>> </BODY> >>>> </HTML> >>>> >>>> and this is the date.php >>>> >>>> <?php >>>> echo date('l jS \of F Y h:i:s A'); >>>> ?> >>>> >>>> In the vhost configuration I add the X-Esi header like this: >>>> >>>> <Directory /DATA/public/site/html/esi> >>>> Header set Cache-control no-cache >>>> Header set X-Esi 1 >>>> </Directory> >>>> >>>> >>>> >>>>> >>>>> Do you have output of squid.blog or squid.log? It should show two >>>>> requests of status 200 if it is all good and successful >>>> >>>> 1337286567.313 347 10.6.0.6 TCP_MISS/200 296 GET >>>> http://www.servotic.com/esi/esi.html - DIRECT/ori.servotic.com text/html >>>> Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20100101 >>>> Firefox/12.0 - >>>> >>>> >>>>> >>>>> Also what is the corresponding line in remap.config? And what is the >>>>> actual url in the esi include? What is the url of the actual request from >>>>> user? Your esi include url in the first request cannot be arbitrary and >>>>> must be handled by one of the lines in remap.config >>>> >>>> In remap.config: >>>> >>>> map http://www.servotic.com/ http://ori.servotic.com/ >>>> @plugin=conf_remap.so >>>> @pparam=/opt/trafficserver/etc/trafficserver/clientes/servotic.conf >>>> >>>> In my plugin.config >>>> >>>> esi.so >>>> >>>> >>>> The url that i asking for is http://www.servotic.com/esi/esi.html but >>>> pointer to my staging enviroment, I mean this request is not working in >>>> the production enviroment. >>>> >>>>> >>>>> Thanks >>>>> Kit >>>>> >>>>> Sent from my iPhone >>>>> >>>>> On May 17, 2012, at 6:12 PM, Jorge Román Novalbos <jro...@linux-it.es> >>>>> wrote: >>>>> >>>>>> You're right that was one of my problem but it still doesn't work. This >>>>>> is the traffic.out output in debug mode while a esi request is >>>>>> processing: >>>>>> >>>>>> >>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [isInterceptRequest] Skipping external request >>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [globalHookHandler] handling read request header event... >>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [globalHookHandler] Not setting up intercept >>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [isInterceptRequest] Skipping external request >>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [globalHookHandler] handling cache lookup complete event... >>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [isCacheObjTransformable] cache object's status is 0; not transformable >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [isInterceptRequest] Skipping external request >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [globalHookHandler] handling read response header event... >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [isCacheObjTransformable] cache object's status is 0; not transformable >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [getClientState] Got request URL [http://ori.servotic.com/esi/esi.php?p] >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept] >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept] >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept] >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept] >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>> [Accept-Encoding] >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [getClientState] Client accepts gzip encoding; will compress output >>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>> [Accept-Encoding] >>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: >>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>> [Connection] >>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [getServerState] Not retaining 'X-Esi' header >>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [getServerState] Not retaining 'vary: accept-encoding' header >>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [getServerState] Not retaining 'content-encoding: gzip' header >>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [getServerState] Not retaining 'Content-length' header >>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>> [addTransform] Added transformation (0x0x2b6c90dcd480) >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [init] Set input data type to [GZIPPED_ESI] >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] initialized continuation >>>>>> data >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 1 not >>>>>> within fetch event id range [10000, 10000) >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] handling >>>>>> TS_EVENT_IMMEDIATE... >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] upstream VC has 126 bytes >>>>>> available to read >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Added chunk of 126 bytes >>>>>> starting with [] to parse list >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Consumed 126 bytes from >>>>>> upstream VC >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Completed reading input... >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_processor_0x2b6c90dcd480) [completeParse] Implicit call to >>>>>> start() >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_parser_0x2b6c90dcd480) [_setup] Returning true for empty data >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_parser_0x2b6c90dcd480) [_completeParse] No data to parse! >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_processor_0x2b6c90dcd480) [_handleParseComplete] Parsed ESI >>>>>> document with 0 nodes >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] data ready; going to process >>>>>> doc >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_processor_0x2b6c90dcd480) [process] ESI processed document >>>>>> of size 0 starting with [(null)] >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] ESI processor output >>>>>> document of size 0 starting with [(null)] >>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Compressed document from >>>>>> size 0 to 20 bytes >>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>> [modifyResponseHeader] Removing header with name [Cache-Control] >>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>> [modifyResponseHeader] Removing header with name [X-Esi] >>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>> [modifyResponseHeader] Removing header with name [Age] >>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>> [modifyResponseHeader] Inspected client-bound headers >>>>>> [May 17 18:10:36.387] Server {47745213183744} DIAG: >>>>>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 103 not >>>>>> within fetch event id range [10000, 10000) >>>>>> [May 17 18:10:36.387] Server {47745213183744} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] shutting down >>>>>> transformation >>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [checkXformStatus] Vconn closed >>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 1 not >>>>>> within fetch event id range [10000, 10000) >>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] Transformation closed. >>>>>> Post-processing... >>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] Processing is complete, >>>>>> not processing current event 1 >>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] transformation closed; >>>>>> cleaning up data... >>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>> (plugin_esi_0x2b6c90dcd480) [~ContData] Destroying continuation data >>>>>> >>>>>> >>>>>> On 17/05/2012, at 17:23, Kit Chan wrote: >>>>>> >>>>>>> Without looking too deep into all info, i think the problem is that u >>>>>>> need to have a response header of >>>>>>> >>>>>>> X-Esi: 1 >>>>>>> >>>>>>> with esi.html >>>>>>> >>>>>>> Sent from my iPhone >>>>>>> >>>>>>> On May 16, 2012, at 6:01 PM, Jorge Román Novalbos <jro...@linux-it.es> >>>>>>> wrote: >>>>>>> >>>>>>>> I have the plugin compiled. >>>>>>>> >>>>>>>> Finally I downloaded the sources from >>>>>>>> https://github.com/shukitchan/trafficserver-plugins/ with the problems >>>>>>>> fixes. >>>>>>>> >>>>>>>> Now I'm trying to test the plugin. >>>>>>>> >>>>>>>> For this test i have created two file: >>>>>>>> >>>>>>>> - esi.html >>>>>>>> >>>>>>>> <HTML> >>>>>>>> <BODY> >>>>>>>> The time is: <esi:include src="http://www.example.com/esi.php"/> >>>>>>>> at this very moment. >>>>>>>> </BODY> >>>>>>>> </HTML> >>>>>>>> >>>>>>>> - esi.php >>>>>>>> >>>>>>>> <?php >>>>>>>> echo date('l jS \of F Y h:i:s A'); >>>>>>>> ?> >>>>>>>> >>>>>>>> >>>>>>>> When i ask for esi.html the date is not displayed, so esi plugin it >>>>>>>> doesn't work. >>>>>>>> >>>>>>>> My question, ¿Do i have to activate the ESI in order to process that >>>>>>>> url? Sorry, but i can't find much documentation about how to implement >>>>>>>> ATS with ESI tags. >>>>>>>> >>>>>>>> P.S: I have activated the plugin in plugin.config >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 16/05/2012, at 12:22, Jorge Román Novalbos wrote: >>>>>>>> >>>>>>>>> I am focusing with compile the pluging using the make command and i >>>>>>>>> have achieved some advances. >>>>>>>>> >>>>>>>>> I have installed some packages (libboost1.42-dev and gcc-4.4-locales) >>>>>>>>> and the error now is: >>>>>>>>> >>>>>>>>> root@ts1:~/ATS-plugins/trafficserver-plugins/esi# make >>>>>>>>> tsxs -v -I lib -I fetcher/ -C plugin.cc serverIntercept.cc lib/*.cc >>>>>>>>> fetcher/*.cc -o esi.so >>>>>>>>> compiling plugin.cc -> plugin.lo >>>>>>>>> g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ -g -pipe >>>>>>>>> -Wall -Werror -O3 -feliminate-unused-debug-symbols >>>>>>>>> -fno-strict-aliasing -Wno-invalid-offsetof -fpic -c plugin.cc -o >>>>>>>>> plugin.lo >>>>>>>>> En el fichero incluído de /usr/include/c++/4.4/ext/hash_map:60, >>>>>>>>> de lib/StringHash.h:29, >>>>>>>>> de lib/EsiProcessor.h:31, >>>>>>>>> de plugin.cc:34: >>>>>>>>> /usr/include/c++/4.4/backward/backward_warning.h:28:2: error: >>>>>>>>> #warning This file includes at least one deprecated or antiquated >>>>>>>>> header which may be removed without further notice at a future date. >>>>>>>>> Please use a non-deprecated interface with equivalent functionality >>>>>>>>> instead. For a listing of replacement headers and interfaces, consult >>>>>>>>> the file backward_warning.h. To disable this warning use >>>>>>>>> -Wno-deprecated. >>>>>>>>> plugin.cc: In function ‘void cacheNodeList(ContData*)’: >>>>>>>>> plugin.cc:453: error: conversión inválida de ‘const sockaddr*’ a >>>>>>>>> ‘unsigned int’ >>>>>>>>> plugin.cc:453: error: conversión inválida de ‘tsapi_cont*’ a ‘int’ >>>>>>>>> plugin.cc:453: error: no se puede convertir ‘TSFetchWakeUpOptions’ a >>>>>>>>> ‘tsapi_cont*’ para el argumento ‘5’ para ‘void TSFetchUrl(const >>>>>>>>> char*, int, unsigned int, int, tsapi_cont*, TSFetchWakeUpOptions, >>>>>>>>> TSFetchEvent)’ >>>>>>>>> Compile failed: g++ -I/opt/trafficserver-3.0.4/include -Ilib >>>>>>>>> -Ifetcher/ -g -pipe -Wall -Werror -O3 >>>>>>>>> -feliminate-unused-debug-symbols -fno-strict-aliasing >>>>>>>>> -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo >>>>>>>>> make: *** [all] Error 1 >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> I'm debuging the make command with strace but I'm not able to fix the >>>>>>>>> problem. Some advices? >>>>>>>>> >>>>>>>>> >>>>>>>>> On 16/05/2012, at 10:51, Jorge Román Novalbos wrote: >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> I'm compiling the ESI plugin in my trafficserver-3.0.4. I downloaded >>>>>>>>>> the plugins from repository and i have followed the next steps: >>>>>>>>>> >>>>>>>>>> 1. cd trafficserver-plugins/esi >>>>>>>>>> 2. /opt/trafficserver/bin/tsxs -o esi.so -c serverIntercept.cc >>>>>>>>>> 3 /opt/trafficserver/bin/tsxs -o esi.so -i >>>>>>>>>> 4 edit /opt/trafficserver/etc/trafficserver/plugin.config an add >>>>>>>>>> esi.so >>>>>>>>>> 5. Restart trafficserver daemon. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> The traffic_server process never start because can't load the esi >>>>>>>>>> plugin. The traffic.out show these lines: >>>>>>>>>> >>>>>>>>>> [May 16 10:31:49.263] Server {47992987118880} ERROR: unable to find >>>>>>>>>> TSPluginInit function >>>>>>>>>> '/opt/trafficserver-3.0.4/libexec/trafficserver/esi.so': >>>>>>>>>> /opt/trafficserver-3.0.4/libexec/trafficserver/esi.so: undefined >>>>>>>>>> symbol: TSPluginInit >>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: >>>>>>>>>> [LocalManager::pollMgmtProcessServer] Server Process terminated due >>>>>>>>>> to Sig 6: Aborted >>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: (last system >>>>>>>>>> error 2: No such file or directory) >>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: >>>>>>>>>> [Alarms::signalAlarm] Server Process was reset >>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: (last system >>>>>>>>>> error 2: No such file or director y) >>>>>>>>>> >>>>>>>>>> Obviously something is wrong in esi pluging but I don't know if i am >>>>>>>>>> doing some step wrong. >>>>>>>>>> >>>>>>>>>> I have tried to use the Makefile file in esi source but never >>>>>>>>>> compile. This is the error: >>>>>>>>>> >>>>>>>>>> root@ts1:~/ATS-plugins/trafficserver-plugins/esi# make >>>>>>>>>> tsxs -v -I lib -I fetcher/ -C plugin.cc serverIntercept.cc lib/*.cc >>>>>>>>>> fetcher/*.cc -o esi.so >>>>>>>>>> compiling plugin.cc -> plugin.lo >>>>>>>>>> g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ -g -pipe >>>>>>>>>> -Wall -Werror -O3 -feliminate-unused-debug-symbols >>>>>>>>>> -fno-strict-aliasing -Wno-invalid-offsetof -fpic -c plugin.cc -o >>>>>>>>>> plugin.lo >>>>>>>>>> In file included from /usr/include/c++/4.4/ext/hash_map:60, >>>>>>>>>> from lib/StringHash.h:29, >>>>>>>>>> from lib/EsiProcessor.h:31, >>>>>>>>>> from plugin.cc:34: >>>>>>>>>> /usr/include/c++/4.4/backward/backward_warning.h:28:2: error: >>>>>>>>>> #warning This file includes at least one deprecated or antiquated >>>>>>>>>> header which may be removed without further notice at a future date. >>>>>>>>>> Please use a non-deprecated interface with equivalent functionality >>>>>>>>>> instead. For a listing of replacement headers and interfaces, >>>>>>>>>> consult the file backward_warning.h. To disable this warning use >>>>>>>>>> -Wno-deprecated. >>>>>>>>>> In file included from lib/EsiProcessor.h:35, >>>>>>>>>> from plugin.cc:34: >>>>>>>>>> lib/Variables.h:29:33: error: boost/noncopyable.hpp: No existe el >>>>>>>>>> fichero o el directorio >>>>>>>>>> In file included from lib/EsiProcessor.h:35, >>>>>>>>>> from plugin.cc:34: >>>>>>>>>> lib/Variables.h:38: error: ‘boost’ has not been declared >>>>>>>>>> lib/Variables.h:38: error: expected ‘{’ before ‘noncopyable’ >>>>>>>>>> lib/Variables.h:38: error: invalid type in declaration before ‘{’ >>>>>>>>>> token >>>>>>>>>> cc1plus: warnings being treated as errors >>>>>>>>>> lib/Variables.h:38: error: extended initializer lists only available >>>>>>>>>> with -std=c++0x or -std=gnu++0x >>>>>>>>>> lib/Variables.h:40: error: expected primary-expression before >>>>>>>>>> ‘public’ >>>>>>>>>> lib/Variables.h:40: error: expected ‘}’ before ‘public’ >>>>>>>>>> lib/Variables.h:40: error: expected ‘,’ or ‘;’ before ‘public’ >>>>>>>>>> lib/Variables.h: In function ‘void EsiLib::populate(const char*, >>>>>>>>>> int)’: >>>>>>>>>> lib/Variables.h:60: error: ‘_query_string_parsed’ was not declared >>>>>>>>>> in this scope >>>>>>>>>> lib/Variables.h:61: error: ‘_parseQueryString’ was not declared in >>>>>>>>>> this scope >>>>>>>>>> lib/Variables.h:63: error: ‘_query_string’ was not declared in this >>>>>>>>>> scope >>>>>>>>>> lib/Variables.h: At global scope: >>>>>>>>>> lib/Variables.h:70: error: non-member function ‘const std::string& >>>>>>>>>> EsiLib::getValue(const std::string&)’ cannot have cv-qualifier >>>>>>>>>> lib/Variables.h:73: error: non-member function ‘const std::string& >>>>>>>>>> EsiLib::getValue(const char*, int)’ cannot have cv-qualifier >>>>>>>>>> lib/Variables.h: In function ‘const std::string& >>>>>>>>>> EsiLib::getValue(const char*, int)’: >>>>>>>>>> lib/Variables.h:75: error: ‘EMPTY_STRING’ was not declared in this >>>>>>>>>> scope >>>>>>>>>> lib/Variables.h: At global scope: >>>>>>>>>> lib/Variables.h:88: error: declaration of ‘~EsiLib::Variables’ as >>>>>>>>>> non-member >>>>>>>>>> lib/Variables.h:90: error: expected unqualified-id before ‘private’ >>>>>>>>>> lib/Variables.h:99: error: storage size of ‘EsiLib::SIMPLE_HEADERS’ >>>>>>>>>> isn't known >>>>>>>>>> lib/Variables.h:102: error: storage size of >>>>>>>>>> ‘EsiLib::SPECIAL_HEADERS’ isn't known >>>>>>>>>> lib/Variables.h:105: error: storage size of >>>>>>>>>> ‘EsiLib::NORM_SIMPLE_HEADERS’ isn't known >>>>>>>>>> lib/Variables.h:106: error: storage size of >>>>>>>>>> ‘EsiLib::NORM_SPECIAL_HEADERS’ isn't known >>>>>>>>>> lib/Variables.h:114: error: non-member function ‘std::string& >>>>>>>>>> EsiLib::_toUpperCase(std::string&)’ cannot have cv-qualifier >>>>>>>>>> lib/Variables.h:115: error: non-member function ‘int >>>>>>>>>> EsiLib::_searchHeaders(const std::string*, const char*, int)’ cannot >>>>>>>>>> have cv-qualifier >>>>>>>>>> lib/Variables.h:117: error: non-member function ‘bool >>>>>>>>>> EsiLib::_parseDictVariable(const std::string&, const char*&, int&, >>>>>>>>>> const char*&, int&)’ cannot have cv-qualifier >>>>>>>>>> lib/Variables.h:150: error: non-member function ‘const std::string& >>>>>>>>>> EsiLib::_getSubCookieValue(const std::string&, size_t)’ cannot have >>>>>>>>>> cv-qualifier >>>>>>>>>> lib/Variables.h:154: error: expected declaration before ‘}’ token >>>>>>>>>> lib/Variables.h:99: error: ‘EsiLib::SIMPLE_HEADERS’ defined but not >>>>>>>>>> used >>>>>>>>>> lib/Variables.h:102: error: ‘EsiLib::SPECIAL_HEADERS’ defined but >>>>>>>>>> not used >>>>>>>>>> lib/Variables.h:105: error: ‘EsiLib::NORM_SIMPLE_HEADERS’ defined >>>>>>>>>> but not used >>>>>>>>>> lib/Variables.h:106: error: ‘EsiLib::NORM_SPECIAL_HEADERS’ defined >>>>>>>>>> but not used >>>>>>>>>> Compile failed: g++ -I/opt/trafficserver-3.0.4/include -Ilib >>>>>>>>>> -Ifetcher/ -g -pipe -Wall -Werror -O3 >>>>>>>>>> -feliminate-unused-debug-symbols -fno-strict-aliasing >>>>>>>>>> -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo >>>>>>>>>> make: *** [all] Error 1 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> could anybody help me? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks to all developer for this amaizing software. >>>>>>>>> >>>>>>>> >>>>>> >>>> >>