On 28/04/2014 5:35 a.m., Tsantilas Christos wrote:
> Unfortunately this is not build with ecap.
> 
> The ecap uses the HttpMsg::protocol, to describe protocol for both
> requests and responses.
> Looks that HttpReply::protocol was never set (Am I loosing something?).

That is correct. HttpReply::protocol no longer exists.

> 
> Is it a bad idea to replace HttpMsg::protocol with a virtual method,
> which return HttpRequest::url.getScheme() for HttpRequest objects, and
> HttpReply::sline.protocol for HttpReply objects?
> 

Those two protocol details should be kept separate because replies do
not have a URL or Scheme in their first-line. It is possible for the
request URL scheme "protocol" to be anything, but the reply message
syntax/"protocol" should always be one of HTTP 0.9/1.0/1.1 or ICY 1.0 at
present.

What the eCAP field needs to be set to depends on its definition:

* If it is sending the scheme/protocol of the URL *in* the message then
it should be the url.getScheme() string on requests and a value
signifying non-existent on replies

* If it is sending the scheme of the URL which the message was generated
*for* then the reply has a "request" member which can be used to access
the URL details of the request which triggered this reply.

* If it is sending an indicator of what syntax message to parse, then
the http_ver member should be used instead for both requests and replies.

* If it is sending the on-wire protocol used to communicate with the
current client or peer/server. Then we have nothing currently to signal
that. I have one untested patch coming up but for now the best
workaround that can be used is http_ver for both requests and replies.

Amos

Reply via email to