It seems like, after upgrading from 0.7.16 to 0.7.18 (I think), my simple webserver has stopped working. It is coded like this:

    auto settings = new HTTPServerSettings;
    settings.port = 9000;
    settings.bindAddresses = ["127.0.0.1"];
    
    auto router = new URLRouter;
    router.get("/", serveStaticFile("./ui/index.html"));
    router.get("/socket", handleWebSockets(&connectionHandler));
    router.get("*", serveStaticFiles("./ui/"));
    router.get("*", serveStaticFiles("./build/autogen/ui/"));
    listenHTTP(settings, router);

When I try to connect to 127.0.0.1 with curl, I get the following

$ curl -v localhost:9000
* Rebuilt URL to: localhost:9000/
* Adding handle: conn: 0x1500ab0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1500ab0) send_pipe: 1, recv_pipe: 0
* About to connect() to localhost port 9000 (#0)
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 9000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.32.0
> Host: localhost:9000
> Accept: */*
> 
< HTTP/1.1 200 OK
* Server vibe.d/0.7.18 is not blacklisted
< Server: vibe.d/0.7.18
< Date: Sat, 18 Jan 2014 21:19:17 GMT
< Keep-Alive: timeout=10
< Last-Modified: Fri, 29 Nov 2013 20:57:01 GMT
< Etag: "B0E3F852E9AFA7F3C57AB03825B9235E"
< Expires: Sun, 19 Jan 2014 21:19:17 GMT
< Cache-Control: max-age=86400
< Content-Type: text/html
< Content-Length: 867
< 

and it stalls there.. Seems like it is waiting for more data. This is exactly the same as if I try to open this address with chrome/firefox. They sit there waiting for data. If I select a file that does not exist with the URL given to e.g. curl, it fails with a 404, file not found.

This is the 'verbose4' log from Vibed

Timer event true/true
Timer event true/false
connect callback
accept
FD: 31
accepted 31
running task
start task (fd 31).
add timeout event with 10/0
wait for data
accept
FD: -1
accepted -1
handled incoming connections...
socket 31 read event!
 -> timeout = false
reading request..
HTTP server reading status line
evbuffer_read 16 bytes (fd 31)
 .. got 16 bytes
read data
--------------------
HTTP server request:
--------------------
GET / HTTP/1.1
evbuffer_read 25 bytes (fd 31)
 .. got 25 bytes
read data
evbuffer_read 22 bytes (fd 31)
 .. got 22 bytes
read data
evbuffer_read 13 bytes (fd 31)
 .. got 13 bytes
read data
evbuffer_read 2 bytes (fd 31)
 .. got 2 bytes
read data
Date: Sat, 18 Jan 2014 21:20:58 GMT
User-Agent: curl/7.32.0
Host: localhost:9000
Accept: */*
--------------------
Got request header.
persist: true
handle request (body 0)
route match: / -> GET /
opened file ./ui/index.html with 867 bytes as 32
---------------------
HTTP server response:
---------------------
HTTP/1.1 200 OK
Server: vibe.d/0.7.18
Date: Sat, 18 Jan 2014 21:20:58 GMT
Keep-Alive: timeout=10
Last-Modified: Fri, 29 Nov 2013 20:57:01 GMT
Etag: "B0E3F852E9AFA7F3C57AB03825B9235E"
Expires: Sun, 19 Jan 2014 21:20:58 GMT
Cache-Control: max-age=86400
Content-Type: text/html
Content-Length: 867
---------------------
evbuffer_add (fd 31): 307 B
bufferevent_flush
writing stream 0 867
socket 31 write event (false)!
Timer event true/true
Creating new fiber...
Timer event true/false
Timer event true/true
Timer event true/false
Timer event true/true
Timer event true/false

and then no more activity except the Timer event strings.. Please help