(name 'WebClient-Core-pmm.61' message '- more pharo fixes' id '0af52680-dc15-435b-953e-65eda119eb54' date '9 August 2010' time '7:02:25 am' author 'pmm' ancestors ((name 'WebClient-Core-pmm.60' message '- added colon between host and port' id '3b7d8841-e418-4d2e-96cd-78cdddf74080' date '9 August 2010' time '6:50:27 am' author 'pmm' ancestors ((name 'WebClient-Core-pmm.59' message '- merged' id '5f6a027b-9074-4211-a170-2cb23f6f5d52' date '9 August 2010' time '6:48:41 am' author 'pmm' ancestors ((name 'WebClient-Core-pmm.54' message '- Pharo specific fixes' id '008fd8ce-a292-4799-81c6-58c63c45c268' date '1 August 2010' time '11:25:45 am' author 'pmm' ancestors ((name 'WebClient-Core-ar.53' message 'Fix some left-over stuff in when sending a 400 bad request response.' id 'fd1e943c-3a6e-684e-a915-f558d396aa16' date '31 July 2010' time '9:46:14.25 am' author 'ar' ancestors ((name 'WebClient-Core-ar.52' message 'Update the server version to 1.3 (indicating SSL support).' id '71606a8d-4267-1e43-bb04-4a70b35f770b' date '30 July 2010' time '8:10:06.47 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.51' message 'Adding WebServer SSL (https) support.' id 'edb861ef-ebed-8f49-a8e9-9ffac04d5c57' date '29 July 2010' time '6:50:18.534 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.50' message 'Fix logging format typo.' id 'e8928020-ef24-a44c-8f4f-53fe9ad38619' date '28 July 2010' time '9:33:47.862 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.49' message 'Support for logging via the #accessLog in both WebClient and WebServer (the log is generated in common log format for processing by other tools). 

Changed error handling to distinguish errors in user-land (that can have custom responses and are handled via a 500 response) from those happening inside WebServer. The latter no longer generate a 500 response because most likely the situation is too dire already.
' id 'eb128a36-6625-5947-ba3d-c964fcbe0a27' date '28 July 2010' time '9:06:10.235 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.48' message 'Flush authentication headers selectively to make combined proxy and server auth work.' id '3c9d178d-1ecf-6e47-9ba5-505b78e9b3c5' date '25 July 2010' time '11:00:24.301 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.47' message 'Fixes two issues with proxy authentication.' id '06dc6d9e-f577-fa4f-b90f-31514be5f7ae' date '25 July 2010' time '10:39:59.902 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.46' message 'A fix for Squeak 4.1 compatibility.' id 'e2ca3c5f-4ff8-2940-99cd-e34034132b06' date '25 July 2010' time '5:44:34.412 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.45' message 'Fix for https proxying.' id 'b0cc3310-dfe5-7443-ac22-a561dddff5f2' date '25 July 2010' time '5:15:39.33 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.44' message 'Provide https support for WebClient.' id '399e3ba0-4019-cf45-a89e-1949c595072d' date '25 July 2010' time '4:40:09.395 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.43' message 'Respond to errors during request parsing with a 400 Bad Request rather than a 500 Internal Server Error.' id 'd69f97e4-c20d-834d-a264-c4c66cfac2a7' date '23 July 2010' time '7:27:41.866 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.42' message 'More scheme cleanups. Should now be okay to allow https all the way through WebClient.' id '3e39532b-9ade-1643-9ea3-92a296b42979' date '23 July 2010' time '9:34:47.849 am' author 'ar' ancestors ((name 'WebClient-Core-ar.41' message 'Two small changes:
* Lowercase scheme just in case.
* Provide correct https port for upcoming https support.' id '76e0f9fa-4cc1-6a46-bbfc-dab60f231a7c' date '22 July 2010' time '9:27:18.1 am' author 'ar' ancestors ((name 'WebClient-Core-ar.40' message 'Fix  url parsing to extract the scheme properly instead of hardcoding the offsets for ''http://''.' id 'bd2c7ca6-6998-2d40-bef5-357dc802d33b' date '21 July 2010' time '9:09:21.499 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.39' message 'Update WebClient and WebServer to 1.2 to indicate presence of WebSockets and multipart/form-data handling.' id '323f0676-2ffd-4b49-9601-856078cca274' date '21 July 2010' time '12:14:16.246 am' author 'ar' ancestors ((name 'WebClient-Core-ar.38' message 'Give WebServer the ability to have a custom error handler.' id '7659b0e2-2617-b046-8813-1f75b428db77' date '20 July 2010' time '10:06:21.048 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.37' message 'Add support for multipart/form-data posts and file uploads. It can be used via the #htmlSubmit: utilities (method ''POST'' with ''multipart/form-data'' encoding) or directly via #httpPost:multipartFields:. 

Multipart posts also allow to pass in MIMEDocuments which is a neat hack inherited from HTTPSocket to be able to specify a file upload. In other words, a file can now be uploaded using:

	WebClient 
		httpPost: ''http://domain.com/upload''
		multipartFields: {
			''fileToUpload'' -> (MIMEDocument 
				contentType: ''text/webclient-test''
				content: ''Hello World, this is a sample file''
				url: FileDirectory default url,''test.txt''
			).
			''otherdata'' -> ''whatever''.
		}.
' id '8eb7fb39-7f48-0c4c-98b5-a65b9b0c6b45' date '20 July 2010' time '8:51:40.209 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.36' message 'Make WebClient register itself as default HTTPSocket handler when loaded and no other implementation is registered.' id '6d513d4a-d70a-4548-9895-0e73d6930f05' date '10 July 2010' time '2:16:34.917 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.35' message 'Add support for websocket-68 for some older servers.' id 'cf5b4506-0af3-a348-bd69-a69f28a42017' date '10 July 2010' time '1:07:39.876 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.34' message 'Fix framing for WebSockets.' id '3e73fc60-2a87-0f4a-a636-7e93f541658d' date '10 July 2010' time '12:14:58.589 am' author 'ar' ancestors ((name 'WebClient-Core-ar.33' message 'WebSocket support for WebClient. WebClient can now connect to a server with WebSocket support using:

	ws := WebClient webSocketTo: serverUrl.

Which (if successful) returns a WebSocket instance for further use.' id 'd2bf5bff-cd56-7946-8199-41d0fcb2ecad' date '9 July 2010' time '12:47:29.622 am' author 'ar' ancestors ((name 'WebClient-Core-ar.32' message 'First round of WebSocket support. Only tested with Chrome 5 so virtually certain to be buggy. An example for WebSocket server support is available by executing:

	WebSocket example.

And then pointing a WebSocket capable browser to localhost:8080. No WebClient support yet.
' id '4546cb00-f9a6-b74a-8914-9f77ee057a2d' date '8 July 2010' time '9:54:36.456 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.31' message 'Fix handling connection errors in WebServer: If the connection is closed or times out while reading the request, just dump the socket. There is nothing we can report back to the client and if the client really wants to close the connection before receiving a response, then so be it.
' id '7799a39f-6c8b-1743-9aa4-bbc7654c745e' date '23 June 2010' time '3:32:41.013 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.30' message 'Add test methods for PUT, DELETE, OPTIONS, and TRACE http methods.' id 'ec355967-dafd-2042-9e17-18f314b8706c' date '23 June 2010' time '3:30:50.768 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.29' message 'Oops, default to HTTP/1.0 not HTTP/1.1' id '7dd5d013-c001-6e4a-8c60-61a43ef1d51c' date '19 June 2010' time '12:08:39.559 am' author 'ar' ancestors ((name 'WebClient-Core-ar.28' message 'Only close the socket in WebResponse>>content; otherwise no response can be sent back. Also correct a typo in initialization.' id '7a043d52-7d80-bb49-a720-2565590cce20' date '19 June 2010' time '12:07:51.45 am' author 'ar' ancestors ((name 'WebClient-Core-pmm.27' message '- fix for WebMessage >> #isPersistent
- various Pharo compatibility fixes' id '34e58e16-7b74-476c-8fe6-391da6138ec9' date '19 June 2010' time '8:13:13 am' author 'pmm' ancestors ((name 'WebClient-Core-ar.26' message 'Merging WebClient-Core-SvenVanCaekenberghe.25.' id '474ab359-8935-e54c-8f81-0e23feed7fa7' date '14 June 2010' time '9:09:28 am' author 'ar' ancestors ((name 'WebClient-Core-ar.24' message 'Make WebRequest know its original WebServer instance, allowing to ask it for various bits of information (header fields for example). 

Also useful for having better control for any info that should originate from the server, for example, request handlers can now refer to ''request server sessionAt: xxx'' instead of remembering the server separately.
' id '9045d0f9-22fc-fe40-96f2-a2319327fa5f' date '14 June 2010' time '9:05:08 am' author 'ar' ancestors ((name 'WebClient-Core-ar.23' message 'Add utility methods for HTML form submissions in WebClient. Can be used for simply forms like:

	WebClient 
			htmlSubmit: ''http://www.google.com/search''
			fields: {
				''hl'' -> ''en''.
				''q'' -> ''Squeak''
			}

Also fixes a bug in cookie handling which complained about HttpOnly cookies for no good reason.
' id '70e5d9c4-847f-574c-ad7f-2d3bff77c071' date '1 June 2010' time '8:28:37 am' author 'ar' ancestors ((name 'WebClient-Core-ar.22' message 'Fix bug in WebServer>>sessionAt:put:. Provide convenience method for sending formatted XML responses.' id '7b9952c6-ec48-cb46-8d89-388f9d56b128' date '11 May 2010' time '11:45:38 am' author 'ar' ancestors ((name 'WebClient-Core-ar.21' message 'Several improvements:
* WebClient now supports HEAD, OPTIONS, TRACE, and DELETE requests.
* WebClient''s handling of expired cookies has been fixed
* WebServer supports HEAD, OPTIONS, TRACE by default.
* WebServer can be customized with the methods supported on a particular resources via the #addService:action:methods: service that takes the appropriate methods.
* WebServer now properly detects and rejects unsupported methods with a 405.
* WebServer now kills all open connections when shutting down.' id 'afdefd49-9778-7845-bc5f-b049eaf842ff' date '11 May 2010' time '8:41:51 am' author 'ar' ancestors ((name 'WebClient-Core-ar.20' message 'Fix handling of cookies to exclude duplicate cookies.' id '87782b7f-653e-d840-b5b3-e934899fb08a' date '11 May 2010' time '9:07:04 am' author 'ar' ancestors ((name 'WebClient-Core-ar.19' message 'Proxies require an absolute request URI.' id 'b68b034f-8328-dd42-907b-8a64ce7a6ff9' date '11 May 2010' time '9:06:20 am' author 'ar' ancestors ((name 'WebClient-Core-ar.18' message 'Fixes a bug in proxy server handling when the proxy port was different from port 80.' id 'daddcb99-d80d-8640-833d-7cf47498f757' date '10 May 2010' time '9:30:57 am' author 'ar' ancestors ((name 'WebClient-Core-ar.17' message 'Fix some comments.' id 'f6eb0e8d-5b75-8548-b676-2ea5ea6214af' date '7 May 2010' time '5:54:06 am' author 'ar' ancestors ((name 'WebClient-Core-ar.16' message 'Three small fixes:
* Allow the class-side convenience protocol to be used without requiring its user to close the connection. Instead, prefetch contents and close it implicitly which makes simple uses like "WebClient httpGet: ''http://www.squeak.org''" easier.
* Fix a race condition in redirect handling. When a server would send a redirect with a ''Connection: close'' header, WebClient would ignore the header and rely on the stream to be closed by the remote. Most of the time that works fine ... but when the other server is far away it can fail because it takes more time to close the socket.
* Fix the test for persistent requests to honor both ''Connection: keep-alive'' as well as the proper defaults based on HTTP protocol version.
' id '31350815-dcb0-1d4a-beb3-1096e5245c7b' date '6 May 2010' time '8:57:30 am' author 'ar' ancestors ((name 'WebClient-Core-ar.15' message 'Promote a few operations from WebRequest to WebMessage. Update benchmarks.' id 'bbc708c3-ec1f-4844-8798-e2fcb37c9e81' date '4 May 2010' time '9:31:41 am' author 'ar' ancestors ((name 'WebClient-Core-ar.14' message 'Convenience methods for inbound and outbound streaming. (2nd attempt)' id '820c7550-9c7e-c74c-ab2e-2b916756a3bf' date '4 May 2010' time '4:02:08 am' author 'ar' ancestors ((name 'WebClient-Core-ar.13' message 'Convenience methods for inbound and outbound streaming.' id 'f758d2f2-f15b-8544-a5cb-c5a809dd5e85' date '4 May 2010' time '4:01:02 am' author 'ar' ancestors ((name 'WebClient-Core-ar.12' message 'Move help docs into help package.' id '76a2e209-1b12-dc48-9f37-1364fa570c6d' date '4 May 2010' time '1:32:58 am' author 'ar' ancestors ((name 'WebClient-Core-ar.11' message 'Fix encoding issues.' id '27e39e8d-6140-6747-8a56-b32160affeae' date '10 April 2010' time '11:47:02 am' author 'ar' ancestors ((name 'WebClient-Core-ar.10' message 'Use flags for various properties.' id '537477f2-f413-3c4e-a5b0-e7fbfcadca1a' date '1 April 2010' time '11:54:01 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.9' message 'Eat up content in non-success responses; escape urls properly.' id '199e9ae6-2d78-2e40-a76f-18efcd7ddb0f' date '31 March 2010' time '6:12:38 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.8' message 'Add httpOnly field to cookie, better quoting with WebUtils.' id '818a3010-fb0f-c04d-bd42-34d985434b7c' date '31 March 2010' time '8:48:56 am' author 'ar' ancestors ((name 'WebClient-Core-ar.7' message 'WebServer>>isStopped and isRunning; WebMessage mutators for content and contentType.' id 'e43a4440-fc50-7d45-964e-9820cd4f958f' date '30 March 2010' time '10:09:41 am' author 'ar' ancestors ((name 'WebClient-Core-ar.6' message 'A bit more server-side refactoring of auth to allow easier subclass extensions.' id '5b3a84b0-9a86-8d40-8a44-6996fe506fb4' date '30 March 2010' time '8:49:46 am' author 'ar' ancestors ((name 'WebClient-Core-ar.5' message 'Add WebClient>>isConnected.' id '8c9b02d0-bb92-2743-bc89-fd3d3175de75' date '30 March 2010' time '7:19:13 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.4' message 'Ever more cleanup of leftover crap.' id '93ac4650-f417-5248-829c-11a33015ea90' date '30 March 2010' time '2:53:46 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.3' message 'Some more cleanup.' id '07c90678-cfbf-9640-8720-ac03cc2574c6' date '30 March 2010' time '2:19:27 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.2' message 'Remove obsolete class WebEntity.' id 'eb3b7086-16ec-1246-8efe-042d49a090ef' date '30 March 2010' time '12:48:35 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.1' message 'Initial version.' id 'ba3323ac-9b95-8f4b-a087-f99585a5aedb' date '30 March 2010' time '12:47:04 pm' author 'ar' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'WebClient-Core-SvenVanCaekenberghe.25' message 'replaced all invocations of #squeakToUtf8 with a direct use of a converter' id '58fec5b3-d6e1-4eae-9da7-b6da160c4874' date '14 June 2010' time '8:35:14 pm' author 'SvenVanCaekenberghe' ancestors ((name 'WebClient-Core-SvenVanCaekenberghe.24' message 'a version with enough #asString invocations as not to need the String#, override for Pharo' id '92b7f407-8df1-4472-962b-45d99f2364b8' date '14 June 2010' time '4:24:19 pm' author 'SvenVanCaekenberghe' ancestors ((id '70e5d9c4-847f-574c-ad7f-2d3bff77c071')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'WebClient-Core-ar.58' message 'Allow head requests to follow redirects.' id '075e9cdf-4c78-2c45-b988-1580dbf90b37' date '5 August 2010' time '10:32:50.167 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.57' message 'Write cookies in a single header field instead of multiple fields.' id '0d64eeac-7e1e-ec46-990c-8a9cf134cd7e' date '5 August 2010' time '8:06:09.607 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.56' message 'Fix cookie handling to be in line with RFC 2109.' id 'f962f1a2-3de1-184d-bad7-4bd552faf9e7' date '5 August 2010' time '7:52:46.7 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.55' message 'Fix cookie domain comparison and make sure that when reading a request from a SocketStream it''s in ascii mode.
' id 'd9554e82-dd88-fb4e-8fd2-18c179be5121' date '4 August 2010' time '9:25:30.111 pm' author 'ar' ancestors ((name 'WebClient-Core-ar.54' message 'WebSocket''s name should separate address and port.' id 'fe88752b-b353-ec45-88e1-c6fa4022e3e6' date '1 August 2010' time '12:37:13.513 pm' author 'ar' ancestors ((id 'fd1e943c-3a6e-684e-a915-f558d396aa16')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())