[
https://issues.apache.org/jira/browse/HTTPCORE-107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roland Weber updated HTTPCORE-107:
----------------------------------
Attachment: 2k7-09-01-sip-1.txt
Here's step 1 towards SIP tolerance. (I don't have time for a complete patch
today.)
HttpVersion gets a new base class ProtocolVersion which has the protocol name
in addition to the version. There are some dirty details that prevent
ProtocolVersion from being a Comparable, but it does have version comparison
methods.
The other changes in the patch replace checks for (>= HTTP/1.1) with !(<=
HTTP/1.0). That's because SIP/2.0 is neither, and the default for an
uncomparable protocol version should be the HTTP/1.1 behavior.
What's missing from the patch is the dirty work:
- replace getHttpVersion with getProtocolVersion in RequestLine, StatusLine (or
just getVersion?)
- replace HttpVersion with ProtocolVersion in LineParser, LineFormatter
then fix all the dependent classes.
I think it's worth the effort, and I'd take care of it.
cheers,
Roland
> tolerate SIP or other like-HTTP message formats
> -----------------------------------------------
>
> Key: HTTPCORE-107
> URL: https://issues.apache.org/jira/browse/HTTPCORE-107
> Project: HttpComponents Core
> Issue Type: Improvement
> Affects Versions: 4.0-alpha5
> Reporter: Roland Weber
> Assignee: Roland Weber
> Fix For: 4.0-alpha6
>
> Attachments: 2k7-09-01-sip-1.txt
>
>
> The Session Initiation Protocol in RFC 3261 defines a message format which is
> structurally identical to HTTP/1.1
> (http://tools.ietf.org/html/rfc3261#section-7). The only difference is that
> the protocol name used in the request and response lines is SIP instead of
> HTTP, and the version number is 2.0. HttpCore should be able to handle these
> messages, or others with alternative protocol names but identical syntactic
> structures. There are two parts of core affected:
> - HttpVersion currently stores only the version number, but uses a hard-coded
> protocol name HTTP
> - HTTP message parsing checks for a hard-coded protocol name HTTP (both core
> and NIO)
> Note that this is "tolerance for" and not "support of" SIP. SIP makes heavy
> use of intermediate 1xx responses, for which our HttpRequestExecutor and
> HttpService classes are not prepared. The rest of the core/main module,
> including message representation, connections, and the params and interceptor
> frameworks, could be used for SIP or other alternative protocols without
> further changes.
> This is a change of medium complexity which would significantly improve the
> flexibility of the HttpCore module.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]