diff -r 4417619a9bbd -r 450d2d5f4735 src/server/daemon/vserver.c --- a/src/server/daemon/vserver.c Sat Aug 18 11:39:34 2012 +0200 +++ b/src/server/daemon/vserver.c Sat Oct 06 13:00:07 2012 +0200 @@ -32,8 +32,20 @@ VirtualServer *vs = malloc(sizeof(VirtualServer)); vs->objects = NULL; vs->document_root = sstr("docs"); + vs->ref = 1; return vs; } +VirtualServer* vs_copy(VirtualServer *vs, pool_handle_t *pool) { + VirtualServer *newvs = malloc(sizeof(VirtualServer)); + newvs->ref = 1; + newvs->document_root = sstrdup_pool(pool, vs->document_root); + newvs->host = sstrdup_pool(pool, vs->host); + newvs->name = sstrdup_pool(pool, vs->name); + newvs->objectfile = sstrdup_pool(pool, vs->objectfile); + + newvs->objects = vs->objects; + + return newvs; +} -