anchor.diff:             (emit (peer parser) "error" "Header Parser Error")
              (return :error))
            (when (eql (state (headers-fsm parser)) :done)
  +           (let* ((con-len (cdr (assoc "content-length" (headers (headers-fsm parser)) :test #'string-equal)))
  +                  (con-len (parse-integer (or con-len "") :junk-allowed t))
  +                  (con-len (or con-len 0)))
  +             (format t "=> Content-Length: ~S~%" con-len)
  +             (when (zerop con-len)
  +               (setf (state (body-fsm parser)) :skip)
  +               (emit (peer parser) "request" parser)))
              (return (1+ i))))))))
   
   (defstate request-parser :read-body (parser data)
  
positive.code: (defmethod initialize-instance :after ((server http-server) &key)
    (add-listener server "connection"
                  (lambda (client)
                    (make-instance 'http-peer :socket client))))
  
  ;; HTTP Parser
  ;;; Request line parser
  
negative.code: 
  ;;; Body dumper
  (deffsm body-fsm ()
    ((body :initform (vector) :accessor body)
     (remaining :initform 0 :accessor remaining)))
  
  (defstate body-fsm :initial (fsm event)
    (format t "TODO: Collect body mass upto ~S~%" (remaining fsm)))
  
  (defstate body-fsm :skip (fsm event)
    "Do nothing, we don't care"
    (declare (ignore fsm event)))
  
  ;;; Overall request parser
  (deffsm request-parser ()
    ((peer :initarg :peer :accessor peer)
  
     (request-fsm :accessor request-fsm :initform (make-instance 'request-fsm))
     (headers-fsm :accessor headers-fsm :initform (make-instance 'header-fsm))
     (body-fsm :accessor body-fsm :initform (make-instance 'body-fsm))
  
     (buffer :initform nil :accessor buffer))
    (:default-initargs . (:state :read-request)))
  