[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2012-01-08 Thread James Peach (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13182343#comment-13182343
 ] 

James Peach commented on TS-1045:
-

Let's WONTFIX this one. The TSFetchUrl API is a bit weird but you can get the 
headers when you use right wakeup events, or have an unmodified ATS tree.

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP
Reporter: James Peach
Assignee: Leif Hedstrom
Priority: Minor
 Fix For: 3.1.2

 Attachments: 0001-Add-new-public-API-TSFetchHdrGet.patch, 
 0007-Add-new-public-API-TSFetchHdrGet.patch, TS-1045-formatting.diff


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2012-01-06 Thread Leif Hedstrom (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13181723#comment-13181723
 ] 

Leif Hedstrom commented on TS-1045:
---

James: Do you want me to review and commit the patch in 
https://issues.apache.org/jira/secure/attachment/12509025/0001-Add-new-public-API-TSFetchHdrGet.patch
 ?

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Assignee: Leif Hedstrom
Priority: Minor
 Fix For: 3.1.2

 Attachments: 0001-Add-new-public-API-TSFetchHdrGet.patch, 
 0007-Add-new-public-API-TSFetchHdrGet.patch, TS-1045-formatting.diff


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2012-01-03 Thread James Peach (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13179304#comment-13179304
 ] 

James Peach commented on TS-1045:
-

Looks like I'm carrying a local patch that breaks TSFetchRespGet(), see TS-1043.

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Assignee: Leif Hedstrom
Priority: Minor
 Fix For: 3.1.2

 Attachments: 0001-Add-new-public-API-TSFetchHdrGet.patch, 
 0007-Add-new-public-API-TSFetchHdrGet.patch, TS-1045-formatting.diff


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2012-01-01 Thread James Peach (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13178266#comment-13178266
 ] 

James Peach commented on TS-1045:
-

TSFetchPageRespGet() takes a HTTPHdr * and returns a TSMBuffer and TSMLoc that 
you can use with the TSHttpHdr*() API. However, there is no way to get the 
HTTPHdr * in the first place. The TSFetch API passes the FetchSM * (cast to a 
HttpTxn) to the plugin callback. AFAICT there's no way to actually use 
TSFetchPageRespGet(); even if you could use it, it looks like it returns the 
HTTPHdr data, since the implementation is almost identical to the proposed 
TSFetchHdrGet().

Googling for TSFetchPageRespGet only turns up this page, so I expect that 
no-one has ever attempted to use it ;)

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Assignee: Leif Hedstrom
Priority: Minor
 Fix For: 3.1.2

 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch, 
 TS-1045-formatting.diff


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2011-12-13 Thread Leif Hedstrom (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13168519#comment-13168519
 ] 

Leif Hedstrom commented on TS-1045:
---

Reading this, and the code, I'm starting to wonder if TSFetchPageRespGet() is a 
broken API ? I mean, the differences between it, and the new TSFetchHdrGet(), 
is simply getting the header from the response. Is there ever a case when we 
need all three of these APIs (TSFetchPageRespGet(), TSFetchRespGet() and 
TSFetchHdrGet() ) ?

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Assignee: Leif Hedstrom
Priority: Minor
 Fix For: 3.1.2

 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2011-12-13 Thread Leif Hedstrom (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13168541#comment-13168541
 ] 

Leif Hedstrom commented on TS-1045:
---

I'm honestly not sure what the intention was here... There seems to be overlap 
for sure. I mean, if TSFetchPageRespGet() returns the full response, then why 
do we need TSFetchRespGet()? That's why I'm wondering that we either

a) Keep only TSFetchPageRespGet(), and expose appropriate APIs to get stuff out 
of it.

or

b) Eliminate TSFetchPageRespGet(), and only keep TSFetchRespGet() and a new 
TSFetchHdrGet()


Or is there ever a case where we'd need all three ?


 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Assignee: Leif Hedstrom
Priority: Minor
 Fix For: 3.1.2

 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2011-12-08 Thread Brian Geffon (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13165434#comment-13165434
 ] 

Brian Geffon commented on TS-1045:
--

Your example is not a TSFetchURL request, it looks like a request from the 
browser for favicon.ico. It should work if it's a TSFetchURL request.

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Priority: Minor
 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2011-12-08 Thread James Peach (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13165819#comment-13165819
 ] 

James Peach commented on TS-1045:
-

Nope, my example is definitely a TSFetchURL() request. The plugin I'm 
experimenting with is a simple proxy, so when I get a browser request, I make a 
corresponding TSFetchURL request.

TSFetchRespGet() returns the response body. If I apply your example code above, 
TSHttpHdrParseResp() returns TS_PARSE_CONT. This is a bogus result, because at 
the time of the call I'm handling the TSFetchURL() success event so I actually 
have all the data. Additionally, I would really expect TSHttpHdrParseResp() to 
return TS_PARSE_ERROR because it's being asked to return the body.

Hacked up code looks like this:

TSHttpParser parser = TSHttpParserCreate();
TSMBuffer buf = TSMBufferCreate();
TSMLoc hdrLoc = TSHttpHdrCreate(buf);

body = TSFetchRespGet(txn, len);
char * start;
char * end;

start = body;
end = body + len;


TSHttpHdrTypeSet(buf, hdrLoc, TS_HTTP_TYPE_RESPONSE);
TSParseResult ret;

ret = TSHttpHdrParseResp(parser, buf, hdrLoc,
(const char **)start, (const char *)end);
debug_protocol(TSHttpHdrParseResp = %d, ret);
if (ret != TS_PARSE_DONE) {
return;
}

And in the debugger, we see:

Breakpoint 1, send_http_txn_result (stream=0x1014069f0, txn=0x1030a50d0) at 
stream.cc:297
297 TSHttpParser parser = TSHttpParserCreate();
(gdb) n
298 TSMBuffer buf = TSMBufferCreate();
(gdb) n
299 TSMLoc hdrLoc = TSHttpHdrCreate(buf);
(gdb) n
301 body = TSFetchRespGet(txn, len);
(gdb) n
305 start = body;
(gdb) p body
$1 = 0x101171460 htmlbodyh1It works!/h1/body/html

The code in FetchSM::process_fetch_read() is a bit confusing to me; I'm not 
very familiar with ATS internals. On TS_EVENT_VCONN_READ_READY, resp_reader 
consumes bytes twice in process_fetch_read() and then again in 
client_response_hdr.parse_resp(). By inspection I would have thought that this 
would over-consume, causing bytes to be skipped but that doesn't seem to 
happen. At any rate, it reliably returns only the response body.

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Priority: Minor
 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2011-12-07 Thread Brian Geffon (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13164974#comment-13164974
 ] 

Brian Geffon commented on TS-1045:
--

You can get headers from a request sent via TSFetchURL using standard ATS APIs, 
I do it all the time:

 const char *dataStart = TSFetchRespGet(txn, dataLen);
 const char *dataEnd = dataStart + dataLen;
 TSHttpParser parser = TSHttpParserCreate();
 TSMBuffer buf = TSMBufferCreate();
 TSMLoc hdrLoc = TSHttpHdrCreate(buf);
 TSHttpHdrTypeSet(buf, hdrLoc, TS_HTTP_TYPE_RESPONSE);
 if (TSHttpHdrParseResp(parser, buf, hdrLoc, dataStart, dataEnd) == 
TS_PARSE_DONE)
 {
   // you can now access hdrLoc like any other TSMLoc to a header

 }

 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Priority: Minor
 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TS-1045) PATCH: add new TSFetchHdrGet API

2011-12-07 Thread James Peach (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13164988#comment-13164988
 ] 

James Peach commented on TS-1045:
-

Thanks Brian, I'll test that out and let you know.

AFAICT from gdb, TSFetchRespGet() returns the request body:

305 body = TSFetchRespGet(txn, len);
(gdb) 
306 if (body) {
(gdb) 
307 debug_http(body %p is %d bytes, body, len);

[Dec  7 20:36:22.064] Server {0x7fff7b5f9960} DIAG: body 0x10115e800 is 288 
bytes

(gdb) p body
$2 = 0x10115e800 !DOCTYPE HTML PUBLIC \-//IETF//DTD HTML 
2.0//EN\\nhtmlhead\ntitle404 Not Found/title\n/headbody\nh1Not 
Found/h1\npThe requested URL /favicon.ico was not found on this 
server./p\nhr\n...


 PATCH: add new TSFetchHdrGet API
 

 Key: TS-1045
 URL: https://issues.apache.org/jira/browse/TS-1045
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP
Reporter: James Peach
Priority: Minor
 Attachments: 0007-Add-new-public-API-TSFetchHdrGet.patch


 TSFetchUrl does not provide any way to get the headers from the result. This 
 patch adds a new API TSFetchHdrGet(), which is analogous to TSFetchRespGet() 
 and returns the headers.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira