diff -r 1fdbf4170ef4 -r b8bf95b39952 src/server/daemon/request.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/server/daemon/request.c Sat Jan 14 13:53:44 2012 +0100 @@ -0,0 +1,98 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2011 Olaf Wintermann. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "request.h" + +#include "../util/pblock.h" +#include "httprequest.h" + + +/* Code from req.cpp */ +/* fremden Code durch eigenen ersetzen */ + +/* -------------------------- request_initialize -------------------------- */ + +int request_initialize( + pool_handle_t *pool, + HTTPRequest *hrq, + NSAPIRequest *nrq) +{ + Request *rq = &nrq->rq; + + rq->vars = pblock_create_pool(pool, REQ_HASHSIZE); + if (!rq->vars) + return 1; + rq->reqpb = pblock_create_pool(pool, REQ_HASHSIZE); + if (!rq->reqpb) + return 1; + rq->loadhdrs = 0; + rq->headers = pblock_create_pool(pool, REQ_HASHSIZE); + if (!rq->headers) + return 1; + rq->senthdrs = 0; + rq->srvhdrs = pblock_create_pool(pool, REQ_HASHSIZE); + if (!rq->srvhdrs) + return 1; + + rq->os = NULL; + rq->tmpos = NULL; + rq->statpath = NULL; + rq->staterr = NULL; + rq->finfo = NULL; + rq->aclstate = 0; + rq->acldirno = 0; + rq->aclname = NULL; + rq->aclpb = NULL; + rq->acllist = NULL; + rq->request_is_cacheable = 0; + rq->directive_is_cacheable = 0; + rq->cached_headers = NULL; + rq->cached_headers_len = 0; + rq->unused = NULL; + //rq->req_start = ft_time(); // TODO: ft_time + rq->protv_num = 0; + rq->method_num = -1; + //PR_ASSERT(sizeof(rq->rq_attr) == sizeof(RQATTR)); // TODO: assert + *(RQATTR *) &rq->rq_attr = 0; + //rq->hostname = pool_strdup(pool, hostname); // TODO: hostname + rq->allowed = 0; + rq->byterange = 0; + rq->status_num = 0; + rq->staterrno = 0; + rq->orig_rq = rq; + + // TODO: nrq + + /* NSAPI execution context */ + nrq->context.last_req_code = REQ_NOACTION; + + nrq->context.objset_index = -1; + nrq->context.dtable_index = 0; + + return 0; +}