Udo,

On 27 Jul 2013, at 12:50, Udo Schneider <udo.schnei...@homeaddress.de> wrote:

> Hi Sven,
> 
> On 27.07.13 00:57, Sven Van Caekenberghe wrote:
>> Be sure to tell the websocketpp guys about this issue ;-)
> Already did.

Good.

> The fact that websocketpp based apps return with 500 is even "funnier" IMHO…

:-)

>> A quick hack from our side would be to bypass the normal protocol of 
>> ZnHeader (specifically #normalizeHeaderKey:) and access its internal 
>> dictionary directly, using a private selector (named #headers) like this:
>> 
>> | request |
>> request := ZnRequest get: 'http://foo.com/bar?x=1'.
>> request headers headers at: 'FUNy-headER' put: 'test'.
>> request writeToTranscript
>> 
>> which would go on the wire like
>> 
>> GET /bar?x=1 HTTP/1.1
>> Accept: */*
>> User-Agent: Zinc HTTP Components 1.0
>> FUNy-headER: test
>> Host: foo.com
>> 
>> 
>> It is not perfect, but I guess it would do.
> I stumbled about #normalizeHeaderKey: as well and took another route (which 
> is IMHO nicer ... to remove once websocketpp is fixed).
> 
> ZnHeaders class>>#addWebSocketHeaders
>       CommonHeaders addAll: #('Sec-WebSocket-Version' 'Sec-WebSocket-Key')
> 
> ZnWebSocket already uses these strings with the exact same capitilization - 
> and being in CommonHeaders bypasses #normalizeHeaderKey: for "known" headers. 
> Still a hack but works.

Yes, that is an excellent hack.
I introduced CommonHeaders quite recently as a performance improvement.
But is is no solution either, like you said.

>> Thanks for the feedback, make sure to tell me how it goes.
> After finding out about this everything else just works fine - Zinc is simply 
> amazing when working with HTTP. For me it's the first framework (not only in 
> Smalltalk) which really models HTTP in an OOP way without being too 
> complicated.
> Simple things are easy - hard things possible :-)

Thanks a lot !

>> PS: You do know about Zinc-WebSockets, I guess ?
> Yep - using them. I wasn't mentioning this explicitly as the headers 
> "problem" applies to ZnClient and might thus be affecting all HTTP based 
> stuff.

OK, I thought so, but I wasn't sure.

> Best Regards,
> 
> Udo

Keep the feedback coming, it is really important.

Sven


--
Sven Van Caekenberghe
http://stfx.eu
Smalltalk is the Red Pill


Reply via email to