Continuing my efforts to solve the problem of wanting, for instance, an SSL-accepting easy-acceptor without creating a subclass of both SSL-ACCEPTOR and EASY-ACCEPTOR, I've created a new class called DISPATCHER which implements the dispatch-request generic function. The advantage of this class is that one can add custom dispatching behavior without needing to subclass the acceptor. For instance, the EASY-ACCEPTOR is now an EASY-DISPATCHER and can be invoked as:
(hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4243 :dispatcher (make-instance 'hunchentoot:easy-dispatcher)))
New dispatching behavior can be implemented by subclassing DISPATCHER and setting the dispatcher slot of the acceptor to point to an instance of the subclass.
The changes can be found in git at:
https://github.com/slyrus/hunchentoot/tree/dispatcher
and in the attached patch.
Cyrus