Changeset 15110 in project


Ignore:
Timestamp:
06/29/09 21:46:19 (10 years ago)
Author:
sjamaan
Message:

Fix cookie headers so they only send the right params

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/http-client/trunk/http-client.scm

    r15092 r15110  
    3838
    3939(import chicken scheme)
    40 (use srfi-18 srfi-69 ports extras tcp openssl intarweb uri-common)
     40(use srfi-1 srfi-13 srfi-18 srfi-69
     41     ports extras tcp data-structures
     42     openssl intarweb uri-common)
    4143
    4244(define-record http-connection base-uri inport outport)
     
    143145    (read-string len (response-port response))))
    144146
    145 ;; XXX TODO: Add a header unparser to intarweb for "cookie" headers
    146 ;; Make cookie names also symbols.
    147147(define (add-headers req)
    148148  (let* ((uri (request-uri req))
     
    219219                           ((domain-match? uri dn))
    220220                           ((not (prefix-contains-dots? (uri-host uri) dn))))
    221                   ;; normalize the cookie as much as we have to
    222                   (store-cookie! (vector
    223                                   (get-value c)
    224                                   (alist-update! 'path path
    225                                                  (alist-update! 'domain dn (get-params c)))))))
     221                  ;; Store only the cookie values we understand
     222                  ;; and make it a Cookie: header.
     223                  (store-cookie! (vector (get-value c)
     224                                         `((path . ,path)
     225                                           (domain . ,dn))))))
    226226              (header-contents 'set-cookie (response-headers r) '()))
    227227    (for-each (lambda (c)
     
    243243                           ((or (eq? ports 'any)
    244244                                (member (uri-port uri) ports))))
    245                   ;; normalize the cookie as much as we have to
    246                   (store-cookie!
    247                    (vector
    248                     (get-value c)
    249                     (alist-update! 'path path
    250                                    (alist-update! 'port (if (eq? ports 'any)
    251                                                             #f
    252                                                             ports)
    253                                                   (alist-update! 'domain dn (get-params c))))))))
     245                  ;; Store only the cookie values we understand
     246                  ;; and make it a Cookie: header.
     247                  (store-cookie! (vector (get-value c)
     248                                         `((path . ,path)
     249                                           (domain . ,dn)
     250                                           (port . ,(if (eq? ports 'any)
     251                                                        #f
     252                                                        ports)))))))
    254253              (header-contents 'set-cookie2 (response-headers r) '()))))
    255254
Note: See TracChangeset for help on using the changeset viewer.