Hi,

I think that I solved the underlying bug that surfaced with Esteban's problem 
accessing Google HTTPS using stunnel as well as Andy's problem accessing 
delicious.com (both were related) - for the technical details see below.

The following expressions should now return true (tested with Pharo 1.2.1 on 
Mac OS X and Linux, Pharo Core 1.3 on Mac OS X).

        (ZnHttpClient new url: 'http://delicious.com'; get) includesSubString: 
'Delicious'

---
; assuming stunnel is running with a config including
client = yes
[google]
accept = 20011
connect = encrypted.google.com:443
---

        (ZnHttpClient new url: 'http://127.0.0.1:20011'; get) 
includesSubString: 'SSL'

Please let me know if your code now works as well.

Thanks again, Esteban, Andy and Matt for pushing these issues !

Sven

PS: please note that for now, only ZnHttpClient follows redirects, not the 
simpler ZnClient and the implementation of ZnHTTPSocketFacade.

==================== Summary ====================

Name: Zinc-HTTP-SvenVanCaekenberghe.150
Author: SvenVanCaekenberghe
Time: 1 May 2011, 7:19:13 pm
UUID: 8fe0b470-7728-454d-bc90-fa42d8330817
Ancestors: Zinc-HTTP-SvenVanCaekenberghe.149

fixing a problem where responses without an explicit content-length but with an 
entity where not read as they should (thanks Esteban Lorenzano & Andy Burnett 
for reporting this):
- ZnResponse>>#entityReaderOn: now extends the super entityReader with the 
#allowReadingUpToEnd option
- ZnEntityReader>>#entityReader now swallows entities when they are #isEmpty 
(making them nil)
- ZnStringEntity>>#readFrom: is split between #readLimitedFrom: and 
#readUpToEndFrom: where the last method has extra error handling to swallow 
ConnectionClosed exceptions (similar to what SocketStream>>#upToEnd does)
- the ZnEntity hierarchy now implements #isEmpty




Reply via email to