src/server/daemon/conf.c

changeset 18
73aacbf6e492
parent 17
d2a97bbeb57d
child 19
d680536f8c2f
--- a/src/server/daemon/conf.c	Sun Jan 15 20:30:45 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
- * 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 "../public/nsapi.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-
-#include "../ucx/string.h"
-
-#include "httplistener.h"
-#include "conf.h"
-#include "func.h"
-
-#include "vserver.h"
-#include "../util/pblock.h"
-
-#include "../config/objconf.h"
-#include "../config/initconf.h"
-
-VirtualServer *default_vs;
-
-pool_handle_t *cfg_pool;
-
-// TODO: Funktion für ConfigDirective -> directive
-// TODO: Funktion für UcxList parameter list -> pblock
-// TODO: ConfigurationManager
-// TODO: server.conf
-
-void load_init_conf(char *file) {
-    printf("load_init_conf\n");
-
-    InitConfig *cfg = load_init_config("conf/init.conf");
-    if(cfg == NULL) {
-        return;
-    }
-
-    cfg_pool = pool_create(); // one pool for one Configuration
-    UcxDlist *dirs = cfg->directives;
-    while(dirs != NULL) {
-        ConfigDirective *dir = dirs->data;
-
-        /* create NSAPI directive */
-        directive *d = malloc(sizeof(directive));
-        d->param = pblock_create_pool(cfg_pool, 8);
-        UcxList *param = dir->param;
-        while(param != NULL) {
-            ConfigParam *p = param->data;
-            pblock_nvlinsert(
-                    p->name.ptr,
-                    p->name.length,
-                    p->value.ptr,
-                    p->value.length,
-                    d->param);
-            param = param->next;
-        }
-
-        /* get function */
-        char *func_name = pblock_findval("fn", d->param);
-        d->func = get_function(func_name);
-        if(d->func == NULL) {
-            free(d);
-            continue;
-        }
-
-        /* execute init directive */
-        d->func->func(d->param, NULL, NULL);
-
-        dirs = dirs->next;
-    }
-    
-    free_init_config(cfg);
-}
-
-void load_server_conf(char *file) {
-    printf("load_server_conf\n");
-    
-    ListenerConfig *conf = malloc(sizeof(ListenerConfig));
-    conf->port = 9090;
-    conf->nacceptors = 1;
-    conf->name = "default";
-
-    http_listener_new(conf);
-
-    // virtual server
-    default_vs = vs_new();
-    // load obj.conf
-    default_vs->objects = load_obj_conf("conf/obj.conf");
-    default_vs->default_obj_name = "default";
-    
-}
-
-VirtualServer* conf_get_default_vs() {
-    return default_vs;
-}
-
-HTTPObjectConfig* load_obj_conf(char *file) {
-    printf("load_obj_conf\n");
-
-    // new conf function test
-    ObjectConfig *cfg = load_object_config(file);
-    if(cfg == NULL) {
-        return NULL;
-    }
-
-    /* create object config */
-    HTTPObjectConfig *conf = calloc(sizeof(HTTPObjectConfig), 1);
-    conf->pool = cfg_pool;
-
-    /* convert ObjectConfig to HTTPObjectConfig */
-
-    /* add objects */
-    conf->nobj = ucx_dlist_size(cfg->objects);
-    conf->objects = calloc(1, sizeof(httpd_object*));
-    
-    UcxDlist *objlist = cfg->objects;
-    int i = 0;
-    while(objlist != NULL) {
-        ConfigObject *cob = objlist->data;
-
-        /* get name and ppath */
-        char *name = NULL;
-        char *ppath = NULL;
-        if(cob->name.length > 0) {
-            name = sstrdub(cob->name).ptr;
-        }
-        if(cob->ppath.length > 0) {
-            ppath = sstrdub(cob->ppath).ptr;
-        }
-
-        /* create and add object */
-        httpd_object *obj = object_new(name);
-        obj->path = NULL;
-
-        conf->objects[i] = obj;
-
-        /* add directives */
-        for(int i=0;i<6;i++) {
-            UcxDlist *dirs = cob->directives[i];
-            while(dirs != NULL) {
-                ConfigDirective *cfgdir = dirs->data;
-
-                directive *d = malloc(sizeof(directive));
-                d->cond = NULL;
-                d->param = pblock_create_pool(conf->pool, 8);
-
-                /* add params */
-                UcxList *param = cfgdir->param;
-                while(param != NULL) {
-                    ConfigParam *p = param->data;
-                    pblock_nvlinsert(
-                            p->name.ptr,
-                            p->name.length,
-                            p->value.ptr,
-                            p->value.length,
-                            d->param);
-                    param = param->next;
-                }
-
-                /* get function */
-                char *func_name = pblock_findval("fn", d->param);
-                d->func = get_function(func_name);
-
-                dirs = dirs->next;
-
-                /* add function to dtable */
-                object_add_directive(obj, d, cfgdir->type_num);
-            }
-        }
-
-        /* next */
-        i++;
-        objlist = objlist->next;
-    }
-
-    free_object_config(cfg);
-
-    return conf;
-}

mercurial