Hi Willy,

I can only answer your question by saying that other clients that use this
protocol but replace ICE/1.0 with HTTP/1.0 have no problem with HAProxy.

It seems that those other clients realized it wasn't a good idea to change
that part for no good reason :).


I thought I had found a solution when I started playing with reqrep
(replace ICE with HTTP) but then I noticed only "valid" HTTP requests were
being passed through this operator.

Any other ideas? There is no official documentation, but this post
http://stackoverflow.com/a/9985297/276949 should give you a brief overview.

Martin


On Fri, Jun 22, 2012 at 1:37 AM, Willy Tarreau <w...@1wt.eu> wrote:

> Hello Martin,
>
> On Thu, Jun 21, 2012 at 07:49:13PM -0400, Martin Konecny wrote:
> > Hello,
> >
> > The ices protocol is based on HTTP and is used for online streaming. In
> the
> > early days the specification for this protocol was to use
> >
> >      1     GET /serv/login.php?lang=en&profile=2 *ICE*/1.0
> >      2     Host: www.mydomain.com
> >      3     User-agent: my small browser
> >      4     Accept: image/jpeg, image/gif
> >      5     Accept: image/png
> >
> > As you can see, the bolded part is the only difference between this and
> > HTTP. I guess the designer realized this was a bone headed move and
> almost
> > every modern icecast client today uses HTTP in its request header.
> However
> > I need it to work for older clients as well.
> >
> > My question is, how can I get haproxy to accept this protocol? "option
> > accept-invalid-http-request" doesn't seem to be what I want, and I tried
> > using "mode tcp" until I realized I couldn't because my config file uses
> >
> > use_backend <backend> if <condition> (which requires mode http).
> >
> > My config file is fairly simple if this helps:
> >
> > frontend http-in-8001
> >         bind *:8001
> >
> >         acl martin11_master_acl url -i /martin11_master
> >         use_backend martin11_master if martin11_master_acl
> >
> > backend martin11_master
> >         #mode tcp
> >         server martin11_master 192.168.1.147:8002
>
> You won't manage to make it pass through in HTTP mode without modifying
> the code. I have a few other questions, what does the response look like ?
> Also, does the protocol support content-length, transfer-encoding and
> content-encoding ? Does it use the same status codes ? Does it support
> metadata only requests (HEAD) ? Does it support metadata only responses
> (204, 304) ? Does it support interim responses (100, 101) ? Does it
> support any form of keep-alive ? Is it compliant to HTTP/1.0 ? To HTTP/1.1
> ?
>
> All these questions are very important, because the apparent syntax does
> not make a protocol compatible with HTTP. The semantics are much stronger
> than that.
>
> Regards,
> Willy
>
>

Reply via email to