anchor.diff:                                 (when dont-drain-read-buffer-supplied-p
                                    (list :dont-drain-read-buffer dont-drain-read-buffer)))))
                                        
  -(defun tcp-server (bind-address port read-cb event-cb &key connect-cb (backlog -1))
  +(defun tcp-server (bind-address port read-cb event-cb &key connect-cb (backlog -1) stream)
     "Start a TCP listener on the current event loop. Returns a tcp-server class
      which can be closed with close-tcp-server"
     (check-event-loop-running)
  
positive.code:          (bev (le:bufferevent-socket-new event-base
                                           fd
                                           +bev-opt-close-on-free+))
           (socket (make-instance 'socket :c bev :direction 'in))
           (callbacks (get-callbacks data-pointer))
           (event-cb (getf callbacks :event-cb))
           (connect-cb (getf callbacks :connect-cb)))
      (catch-app-errors event-cb
        ;; attach our data-pointer/socket class to the bev
        (attach-data-to-pointer bev (list :data-pointer per-conn-data-pointer :socket socket))
  
        ;; track the connection. will be decf'ed when close-socket is called
        (incf *incoming-connection-count*)
  
negative.code:                                                   backlog
                                                    sockaddr
                                                    sockaddr-size))
             (server-class (make-instance 'tcp-server :c listener :stream stream)))
        (add-event-loop-exit-callback (lambda ()
                                        (close-tcp-server server-class)
                                        (free-pointer-data data-pointer)))
  