diff -r 1f73302461e0 -r 391ccd490d97 src/server/daemon/sessionhandler.c --- a/src/server/daemon/sessionhandler.c Fri Jan 12 18:36:47 2018 +0100 +++ b/src/server/daemon/sessionhandler.c Sat Jan 13 16:44:05 2018 +0100 @@ -93,11 +93,25 @@ free(conn); } +IOStream* create_connection_iostream(SessionHandler *sh, Connection *conn, pool_handle_t *pool, WSBool *ssl) { + IOStream *io = NULL; + if(conn->ssl) { + io = sslstream_new(pool, conn->ssl); + *ssl = 1; + } else { + io = sysstream_new(pool, conn->fd); + *ssl = 0; + } + return io; +} + + SessionHandler* create_basic_session_handler() { BasicSessionHandler *handler = malloc(sizeof(BasicSessionHandler)); handler->threadpool = threadpool_new(4, 8); handler->sh.enqueue_connection = basic_enq_conn; handler->sh.keep_alive = basic_keep_alive; + handler->sh.create_iostream = create_connection_iostream; return (SessionHandler*)handler; } @@ -172,6 +186,7 @@ handler->eventhandler = get_default_event_handler(); handler->sh.enqueue_connection = evt_enq_conn; handler->sh.keep_alive = evt_keep_alive; + handler->sh.create_iostream = create_connection_iostream; return (SessionHandler*)handler; }