anchor.diff:    (setf (gethash socket (http-server-connections driver))
           (let ((req (make-instance 'request
                                     :socket socket
  +                                  :http-server driver
                                     :external-format (http-server-external-format-in driver))))
             (cons req
                   (make-instance 'reply
  
positive.code:         (:body
           (on-request-data user-driver (if-let (format (request-external-format req))
                                           (babel:octets-to-string data :encoding format)
                                           data)))
          (:closed
           (if (request-keep-alive-p *request*)
               (new-request driver socket)
               (close socket)))))))
  
  (defparameter +100-continue+ #.(babel:string-to-octets (format nil "HTTP/1.1 100 Continue~a~a" +crlf-ascii+ +crlf-ascii+)))
  (defun parse-headers (server driver data)
  
negative.code:                                       rest-octets)))))
            (parse-headers server driver rest)))))
  
  (defun upgrade-request (request socket server driver rest)
    ;; HACK - This is terrible. Because CLOSE will close the underlying socket if request-keep-alive-p
    ;;        is NIL, we force it to true before the close, so all the cleanup that needs to be done
    ;;        gets done, but we still have the open socket..
    (setf (request-keep-alive-p request) t)
    (close request)
    (unregister-http-socket server socket)
    (setf (socket-driver socket) nil)
    (on-request-upgrade driver (babel:string-to-octets rest :encoding :ascii)))
  
  (defun unregister-http-socket (driver socket)
    (remhash socket (http-server-connections driver)))
  
  