Index: http-client.scm =================================================================== --- http-client.scm (revision 34324) +++ http-client.scm (working copy) @@ -43,7 +43,8 @@ basic-authenticator digest-authenticator determine-username/password determine-proxy determine-proxy-from-environment determine-proxy-username/password - server-connector default-server-connector) + server-connector default-server-connector + prepare-request default-prepare-request) (import chicken scheme lolevel) (use srfi-1 srfi-13 srfi-18 srfi-69 @@ -280,6 +281,10 @@ (define server-connector (make-parameter default-server-connector)) +(define default-prepare-request identity) + +(define prepare-request (make-parameter default-prepare-request)) + (define (ensure-connection! uri) (or (grab-idle-connection! uri) (let ((proxy ((determine-proxy) uri))) @@ -600,7 +605,8 @@ req-uri (update-uri req-uri host: #f port: #f scheme: #f path: (or (uri-path req-uri) '(/ ""))))) - (request (write-request (update-request req uri: req-uri))) + (request (write-request ((prepare-request) + (update-request req uri: req-uri)))) ;; Writer should be prepared to be called several times ;; Maybe try and figure out a good way to use the ;; "Expect: 100-continue" header to prevent too much writing?