myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [3017] Changed the format for definitions inside the `


From: Giuseppe Scrivano
Subject: [myserver-commit] [3017] Changed the format for definitions inside the `myserver.xml' file.
Date: Sun, 01 Mar 2009 17:57:43 +0000

Revision: 3017
          http://svn.sv.gnu.org/viewvc/?view=rev&root=myserver&revision=3017
Author:   gscrivano
Date:     2009-03-01 17:57:42 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
Changed the format for definitions inside the `myserver.xml' file.

Modified Paths:
--------------
    trunk/myserver/binaries/myserver.xml.default
    trunk/myserver/binaries/myserver.xml.unix.default
    trunk/myserver/documentation/basic_configuration.texi
    trunk/myserver/documentation/directory_listing.texi
    trunk/myserver/documentation/error_pages.texi
    trunk/myserver/documentation/mime_types.texi
    trunk/myserver/documentation/process_security.texi
    trunk/myserver/include/protocol/http/http.h
    trunk/myserver/include/server/server.h
    trunk/myserver/src/conf/vhost/vhost.cpp
    trunk/myserver/src/http_handler/http_dir/http_dir.cpp
    trunk/myserver/src/http_handler/http_file/http_file.cpp
    trunk/myserver/src/protocol/control/control_protocol.cpp
    trunk/myserver/src/protocol/ftp/ftp.cpp
    trunk/myserver/src/protocol/http/env/env.cpp
    trunk/myserver/src/protocol/http/http.cpp
    trunk/myserver/src/server/server.cpp

Modified: trunk/myserver/binaries/myserver.xml.default
===================================================================
--- trunk/myserver/binaries/myserver.xml.default        2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/binaries/myserver.xml.default        2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -4,23 +4,23 @@
 <MYSERVER>
 
        <!--CHOOSE THE LANGUAGE TO USE FOR THE SERVER-->
-       <LANGUAGE>english.xml</LANGUAGE>
+       <DEFINE name="server.language" value="english.xml" />
 
        <!--VERBOSITY ON LOG FILE-->
-       <VERBOSITY>2</VERBOSITY>
+       <DEFINE name="server.verbosity" value="2" />
 
        <!--NUMBER OF SERVING THREADS ALWAYS ACTIVE-->
-       <NTHREADS_STATIC>5</NTHREADS_STATIC>
+  <DEFINE name="server.static_threads" value="5" />
 
        <!--MAXIMUM NUMBER OF SERVING THREADS THAT THE SCHEDULER CAN
                        CREATE-->
-       <NTHREADS_MAX>200</NTHREADS_MAX>
+       <DEFINE name="server.max_threads" value="200" />
 
        <!--DIMENSION OF EVERY BUFFER IN BYTES IF ON THE MACHINE THERE IS A
                        LOT OF RAM      THIS VALUES CAN BE INCREASED TO MAKE 
MYSERVER
                        FASTER. NORMALLY THE MEMORY USED BY BUFFERS IS EQUAL TO
                        BUFFER_SIZE * 2 * NUM_OF_THREADS-->
-       <BUFFER_SIZE>102400</BUFFER_SIZE>
+       <DEFINE name="server.buffer_size" value="102400" />
 
        <!--DEFAULT FILENAME TO SEND IN A DIRECTORY
                        IF THE FILE ISN'T IN THE PATH THEN THE DIRECTORY
@@ -37,112 +37,80 @@
                        SECONDS THE CONNECTION WITH THE CLIENT IS
                        CLOSED. SET THIS TO 0 IF YOU DON'T WANT USE
                        KEEP-ALIVE CONNECTIONS  -->
-       <CONNECTION_TIMEOUT>60</CONNECTION_TIMEOUT>
+       <DEFINE name="connection.timeout" value="60" />
 
        <!--SET THIS TO YES FOR USE PERSONALIZED PAGES TO SEND MESSAGE,
                        PERSONALIZED PAGES ARE IN THE SYSTEM DIRECTORY  -->
-       <USE_ERROR_FILE>YES</USE_ERROR_FILE>
+       <DEFINE name="http.use_error_file" value="YES" />
 
        <!--DEFINE THE MAX NUMBER OF CONNECTIONS TO ALLOW TO THE SERVER. IF
                        0 THEN INFINITE CONNECTIONS ARE ALLOWED.-->
-       <MAX_CONNECTIONS>0</MAX_CONNECTIONS>
+       <DEFINE name="server.max_connections" value="0" />
 
        <!--DEFINE THE MAX NUMBER OF CONNECTIONS TO ACCEPT.-->
-       <MAX_CONNECTIONS_TO_ACCEPT>0</MAX_CONNECTIONS_TO_ACCEPT>
+       <DEFINE name="server.max_accepted_connections" value="0" />
 
-        <!-- TEXT AND BACKGROUND ATTRIBUTES FOR CONSOLE LOG MESSAGES. -->
-        <CONSOLE_COLORS info_fg="white" info_bg="black" warning_fg="yellow" 
-                        warning_bg="black" error_fg="red" error_bg="black"/>
-        
+  <!-- TEXT AND BACKGROUND ATTRIBUTES FOR CONSOLE LOG MESSAGES. -->
+  <CONSOLE_COLORS info_fg="white" info_bg="black" warning_fg="yellow" 
+                  warning_bg="black" error_fg="red" error_bg="black"/>
+
        <!--MAX SIZE OF THE LOG FILE IN BYTES   -->
-       <MAX_LOG_FILE_SIZE>1048576</MAX_LOG_FILE_SIZE>
+       <DEFINE name="server.max_log_size" value="1048576" />
 
        <!--DEFINE THE FOLDER BROWSING STYLE-->
-       <BROWSEFOLDER_CSS>/sys/css/browsestyle.css</BROWSEFOLDER_CSS>
+       <DEFINE name="http.dir.css" value="/sys/css/browsestyle.css" />
 
        <!--DEFINE THE ADMINISTRATOR E-MAIL-->
-       <SERVER_ADMIN>address@hidden</SERVER_ADMIN>
+       <DEFINE name="server.admin" value="address@hidden" />
 
        <!--DEFINE THE GZIP COMPRESSION THRESHOLD VALUE-->
-       <GZIP_THRESHOLD>1048576</GZIP_THRESHOLD>
+       <DEFINE name="gzip.threshold" value="1048576" />
 
        <!--DEFINE IF LINKS SHOULD BE FOLLOWED-->
-       <FOLLOW_LINKS>YES</FOLLOW_LINKS>
+       <DEFINE name="symlinks.follow" value="YES" />
 
        <!--MAX CACHE SIZE FOR STATIC FILES-->
-       <MAX_FILESCACHE_SIZE>10485760</MAX_FILESCACHE_SIZE>
+       <DEFINE name="server.max_files_cache" value="10485760" />
 
        <!--MAX CACHE SIZE FOR SINGLE STATIC FILE-->
-       <MAX_FILESCACHE_FILESIZE>1048576</MAX_FILESCACHE_FILESIZE>
+       <DEFINE name="server.max_file_cache" value="1048576" />
 
        <!--MIN CACHE SIZE FOR SINGLE STATIC FILE-->
-       <MIN_FILESCACHE_FILESIZE>0</MIN_FILESCACHE_FILESIZE>
+       <DEFINE name="server.min_file_cache" value="1048576" />
 
        <!-- ENABLE HOME DIRECTORY PER USER -->
-       <USE_HOME_DIRECTORY>NO</USE_HOME_DIRECTORY>
+       <DEFINE name="http.use_home_directory" value="NO" />
 
        <!-- DEFINE NAME FOR HOME DIRECTORY BROWSING, BY DEFAULT THE SERVER
                         USES public_html -->
-       <HOME_DIRECTORY>public_html</HOME_DIRECTORY>
+       <DEFINE name="http.home_directory" value="public_html" />
 
   <!--SET THIS TO YES IF YOU WANT TO ENABLE THE CONTROL PROTOCOL-->
-  <CONTROL_ENABLED>NO</CONTROL_ENABLED>
+       <DEFINE name="control.enabled" value="NO" />
 
-  <!--CHOOSE IF THE CGI PROTOCOL IS ENABLED BY DEFAULT ON THE VIRTUAL
-                       HOSTS-->
-       <ALLOW_CGI>YES</ALLOW_CGI>
-
-  <!--CHOOSE IF THE FASTCGI PROTOCOL IS ENABLED BY DEFAULT ON THE
-                       VIRTUAL HOSTS-->
-       <ALLOW_FASTCGI>YES</ALLOW_FASTCGI>
-
-  <!--CHOOSE IF THE ISAPI PROTOCOL IS ENABLED BY DEFAULT ON THE VIRTUAL
-                       HOSTS-->
-       <ALLOW_ISAPI>YES</ALLOW_ISAPI>
-
-  <!--CHOOSE IF THE WINCGI PROTOCOL IS ENABLED BY DEFAULT ON THE
-                       VIRTUAL HOSTS-->
-       <ALLOW_WINCGI>YES</ALLOW_WINCGI>
-
-  <!--CHOOSE IF THE MSCGI PROTOCOL IS ENABLED BY DEFAULT-->
-       <ALLOW_MSCGI>YES</ALLOW_MSCGI>
-
-  <!--CHOOSE IF THE SCGI PROTOCOL IS ENABLED BY DEFAULT-->
-       <ALLOW_SCGI>YES</ALLOW_SCGI>
-
-  <!--CHOOSE IF A LINKED FILE CAN BE SEND BY DEFAULT-->
-       <ALLOW_SEND_LINK>YES</ALLOW_SEND_LINK>
-
-  <!--CHOOSE IF AN EXTERNAL COMMAND (A PLUGIN) CAN BE USED TO HANDLE
-                       DATA-->
-       <ALLOW_EXTERNAL_COMMANDS>YES</ALLOW_EXTERNAL_COMMANDS>
-
-  <!--CHOOSE IF THE SERVER BY DEFAULT IS ENABLED TO SEND STATIC
-                       FILES-->
-       <ALLOW_SEND_FILE>YES</ALLOW_SEND_FILE>
-
        <!--MAXIMUM NUMBER OF EXTERNAL SERVERS THAT CAN BE EXECUTED-->
-       <MAX_SERVERS_PROCESSES>100</MAX_SERVERS_PROCESSES>
+       <DEFINE name="server.max_servers" value="100" />
 
-       <!--INITIAL PORT TO BIND FOR EXERNAL SERVERS-->
-       <SERVERS_PROCESSES_INITIAL_PORT>3333</SERVERS_PROCESSES_INITIAL_PORT>
-
   <!--SET HERE THE NAME FOR THE CONTROL ADMIN. WE SUGGEST YOU YO USE
       SOMETHING DIFFERENT FROM ADMIN, ADMINISTRATOR OR ROOT-->
-  <CONTROL_ADMIN>ADMIN</CONTROL_ADMIN>
+  <DEFINE name="control.admin" value="ADMIN" />
 
   <!--DEFINE HERE A GOOD STRONG PASSWORD FOR THE ADMIN-->
-  <CONTROL_PASSWORD>PLEASE_CHANGE_THIS_PASSWORD</CONTROL_PASSWORD>
+  <DEFINE name="control.password" value="PLEASE_CHANGE_THIS_PASSWORD" />
 
   <!--FTP GLOBAL CONFIGURATION-->
   <!--ALLOW ANONYMOUS LOGIN-->
-  <ALLOW_ANONYMOUS>NO</ALLOW_ANONYMOUS>
+  <DEFINE name="ftp.allow_anonymous" value="NO" />
+
   <!--IF ANONYMOUS ALLOWED, TELLS IF NEEDS PASS-->
-  <ANONYMOUS_NEED_PASS>YES</ANONYMOUS_NEED_PASS>
+  <DEFINE name="ftp.anonymous_need_pass" value="NO" />
+
   <!--ALLOW ASYNCHRONOUS CMDS LIKE Abor, Quit, Stat-->
-  <ALLOW_ASYNCHRONOUS_CMDS>YES</ALLOW_ASYNCHRONOUS_CMDS>
+  <DEFINE name="ftp.allow_asynchronous_cmds" value="YES" />
+
   <!--ALLOW CLIENTS TO SEND MORE THAN ONE COMMAND TO SERVER INTO ONE REQUEST-->
-  <ALLOW_PIPELINING>YES</ALLOW_PIPELINING>
+  <DEFINE name="ftp.allow_pipelining" value="NO" />
+
   <!--ALLOW CLIENTS TO CHANGE SERVER FILES-->
-  <ALLOW_STORE>NO</ALLOW_STORE>
+  <DEFINE name="ftp.allow_store" value="NO" />
 </MYSERVER>

Modified: trunk/myserver/binaries/myserver.xml.unix.default
===================================================================
--- trunk/myserver/binaries/myserver.xml.unix.default   2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/binaries/myserver.xml.unix.default   2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -4,23 +4,23 @@
 <MYSERVER>
 
        <!--CHOOSE THE LANGUAGE TO USE FOR THE SERVER-->
-       <LANGUAGE>english.xml</LANGUAGE>
+       <DEFINE name="server.language" value="english.xml" />
 
        <!--VERBOSITY ON LOG FILE-->
-       <VERBOSITY>2</VERBOSITY>
+       <DEFINE name="server.verbosity" value="2" />
 
        <!--NUMBER OF SERVING THREADS ALWAYS ACTIVE-->
-       <NTHREADS_STATIC>5</NTHREADS_STATIC>
+  <DEFINE name="server.static_threads" value="5" />
 
        <!--MAXIMUM NUMBER OF SERVING THREADS THAT THE SCHEDULER CAN
                        CREATE-->
-       <NTHREADS_MAX>200</NTHREADS_MAX>
+       <DEFINE name="server.max_threads" value="200" />
 
        <!--DIMENSION OF EVERY BUFFER IN BYTES IF ON THE MACHINE THERE IS A
                        LOT OF RAM      THIS VALUES CAN BE INCREASED TO MAKE 
MYSERVER
                        FASTER. NORMALLY THE MEMORY USED BY BUFFERS IS EQUAL TO
                        BUFFER_SIZE * 2 * NUM_OF_THREADS-->
-       <BUFFER_SIZE>102400</BUFFER_SIZE>
+       <DEFINE name="server.buffer_size" value="102400" />
 
        <!--DEFAULT FILENAME TO SEND IN A DIRECTORY
                        IF THE FILE ISN'T IN THE PATH THEN THE DIRECTORY
@@ -37,112 +37,80 @@
                        SECONDS THE CONNECTION WITH THE CLIENT IS
                        CLOSED. SET THIS TO 0 IF YOU DON'T WANT USE
                        KEEP-ALIVE CONNECTIONS  -->
-       <CONNECTION_TIMEOUT>60</CONNECTION_TIMEOUT>
+       <DEFINE name="connection.timeout" value="60" />
 
        <!--SET THIS TO YES FOR USE PERSONALIZED PAGES TO SEND MESSAGE,
                        PERSONALIZED PAGES ARE IN THE SYSTEM DIRECTORY  -->
-       <USE_ERROR_FILE>YES</USE_ERROR_FILE>
+       <DEFINE name="http.use_error_file" value="YES" />
 
        <!--DEFINE THE MAX NUMBER OF CONNECTIONS TO ALLOW TO THE SERVER. IF
                        0 THEN INFINITE CONNECTIONS ARE ALLOWED.-->
-       <MAX_CONNECTIONS>0</MAX_CONNECTIONS>
+       <DEFINE name="server.max_connections" value="0" />
 
        <!--DEFINE THE MAX NUMBER OF CONNECTIONS TO ACCEPT.-->
-       <MAX_CONNECTIONS_TO_ACCEPT>0</MAX_CONNECTIONS_TO_ACCEPT>
+       <DEFINE name="server.max_accepted_connections" value="0" />
 
-        <!-- TEXT AND BACKGROUND ATTRIBUTES FOR CONSOLE LOG MESSAGES. -->
-        <CONSOLE_COLORS info_fg="white" info_bg="black" warning_fg="yellow" 
-                        warning_bg="black" error_fg="red" error_bg="black"/>
+  <!-- TEXT AND BACKGROUND ATTRIBUTES FOR CONSOLE LOG MESSAGES. -->
+  <CONSOLE_COLORS info_fg="white" info_bg="black" warning_fg="yellow" 
+                  warning_bg="black" error_fg="red" error_bg="black"/>
 
        <!--MAX SIZE OF THE LOG FILE IN BYTES   -->
-       <MAX_LOG_FILE_SIZE>1048576</MAX_LOG_FILE_SIZE>
+       <DEFINE name="server.max_log_size" value="1048576" />
 
        <!--DEFINE THE FOLDER BROWSING STYLE-->
-       <BROWSEFOLDER_CSS>/sys/css/browsestyle.css</BROWSEFOLDER_CSS>
+       <DEFINE name="http.dir.css" value="/sys/css/browsestyle.css" />
 
        <!--DEFINE THE ADMINISTRATOR E-MAIL-->
-       <SERVER_ADMIN>address@hidden</SERVER_ADMIN>
+       <DEFINE name="server.admin" value="address@hidden" />
 
        <!--DEFINE THE GZIP COMPRESSION THRESHOLD VALUE-->
-       <GZIP_THRESHOLD>1048576</GZIP_THRESHOLD>
+       <DEFINE name="gzip.threshold" value="1048576" />
 
        <!--DEFINE IF LINKS SHOULD BE FOLLOWED-->
-       <FOLLOW_LINKS>YES</FOLLOW_LINKS>
+       <DEFINE name="symlinks.follow" value="YES" />
 
        <!--MAX CACHE SIZE FOR STATIC FILES-->
-       <MAX_FILESCACHE_SIZE>10485760</MAX_FILESCACHE_SIZE>
+       <DEFINE name="server.max_files_cache" value="10485760" />
 
        <!--MAX CACHE SIZE FOR SINGLE STATIC FILE-->
-       <MAX_FILESCACHE_FILESIZE>1048576</MAX_FILESCACHE_FILESIZE>
+       <DEFINE name="server.max_file_cache" value="1048576" />
 
        <!--MIN CACHE SIZE FOR SINGLE STATIC FILE-->
-       <MIN_FILESCACHE_FILESIZE>0</MIN_FILESCACHE_FILESIZE>
+       <DEFINE name="server.min_file_cache" value="1048576" />
 
        <!-- ENABLE HOME DIRECTORY PER USER -->
-       <USE_HOME_DIRECTORY>NO</USE_HOME_DIRECTORY>
+       <DEFINE name="http.use_home_directory" value="NO" />
 
        <!-- DEFINE NAME FOR HOME DIRECTORY BROWSING, BY DEFAULT THE SERVER
                         USES public_html -->
-       <HOME_DIRECTORY>public_html</HOME_DIRECTORY>
+       <DEFINE name="http.home_directory" value="public_html" />
 
   <!--SET THIS TO YES IF YOU WANT TO ENABLE THE CONTROL PROTOCOL-->
-  <CONTROL_ENABLED>NO</CONTROL_ENABLED>
+       <DEFINE name="control.enabled" value="NO" />
 
-  <!--CHOOSE IF THE CGI PROTOCOL IS ENABLED BY DEFAULT ON THE VIRTUAL
-                       HOSTS-->
-       <ALLOW_CGI>YES</ALLOW_CGI>
-
-  <!--CHOOSE IF THE FASTCGI PROTOCOL IS ENABLED BY DEFAULT ON THE
-                       VIRTUAL HOSTS-->
-       <ALLOW_FASTCGI>YES</ALLOW_FASTCGI>
-
-  <!--CHOOSE IF THE ISAPI PROTOCOL IS ENABLED BY DEFAULT ON THE VIRTUAL
-                       HOSTS-->
-       <ALLOW_ISAPI>YES</ALLOW_ISAPI>
-
-  <!--CHOOSE IF THE WINCGI PROTOCOL IS ENABLED BY DEFAULT ON THE
-                       VIRTUAL HOSTS-->
-       <ALLOW_WINCGI>YES</ALLOW_WINCGI>
-
-  <!--CHOOSE IF THE MSCGI PROTOCOL IS ENABLED BY DEFAULT-->
-       <ALLOW_MSCGI>YES</ALLOW_MSCGI>
-
-  <!--CHOOSE IF THE SCGI PROTOCOL IS ENABLED BY DEFAULT-->
-       <ALLOW_SCGI>YES</ALLOW_SCGI>
-
-  <!--CHOOSE IF A LINKED FILE CAN BE SEND BY DEFAULT-->
-       <ALLOW_SEND_LINK>YES</ALLOW_SEND_LINK>
-
-  <!--CHOOSE IF AN EXTERNAL COMMAND (A PLUGIN) CAN BE USED TO HANDLE
-                       DATA-->
-       <ALLOW_EXTERNAL_COMMANDS>YES</ALLOW_EXTERNAL_COMMANDS>
-
-  <!--CHOOSE IF THE SERVER BY DEFAULT IS ENABLED TO SEND STATIC
-                       FILES-->
-       <ALLOW_SEND_FILE>YES</ALLOW_SEND_FILE>
-
        <!--MAXIMUM NUMBER OF EXTERNAL SERVERS THAT CAN BE EXECUTED-->
-       <MAX_SERVERS_PROCESSES>100</MAX_SERVERS_PROCESSES>
+       <DEFINE name="server.max_servers" value="100" />
 
-       <!--INITIAL PORT TO BIND FOR EXERNAL SERVERS-->
-       <SERVERS_PROCESSES_INITIAL_PORT>3333</SERVERS_PROCESSES_INITIAL_PORT>
-
   <!--SET HERE THE NAME FOR THE CONTROL ADMIN. WE SUGGEST YOU YO USE
       SOMETHING DIFFERENT FROM ADMIN, ADMINISTRATOR OR ROOT-->
-  <CONTROL_ADMIN>ADMIN</CONTROL_ADMIN>
+  <DEFINE name="control.admin" value="ADMIN" />
 
   <!--DEFINE HERE A GOOD STRONG PASSWORD FOR THE ADMIN-->
-  <CONTROL_PASSWORD>PLEASE_CHANGE_THIS_PASSWORD</CONTROL_PASSWORD>
+  <DEFINE name="control.password" value="PLEASE_CHANGE_THIS_PASSWORD" />
 
   <!--FTP GLOBAL CONFIGURATION-->
   <!--ALLOW ANONYMOUS LOGIN-->
-  <ALLOW_ANONYMOUS>NO</ALLOW_ANONYMOUS>
+  <DEFINE name="ftp.allow_anonymous" value="NO" />
+
   <!--IF ANONYMOUS ALLOWED, TELLS IF NEEDS PASS-->
-  <ANONYMOUS_NEED_PASS>YES</ANONYMOUS_NEED_PASS>
+  <DEFINE name="ftp.anonymous_need_pass" value="NO" />
+
   <!--ALLOW ASYNCHRONOUS CMDS LIKE Abor, Quit, Stat-->
-  <ALLOW_ASYNCHRONOUS_CMDS>YES</ALLOW_ASYNCHRONOUS_CMDS>
+  <DEFINE name="ftp.allow_asynchronous_cmds" value="YES" />
+
   <!--ALLOW CLIENTS TO SEND MORE THAN ONE COMMAND TO SERVER INTO ONE REQUEST-->
-  <ALLOW_PIPELINING>YES</ALLOW_PIPELINING>
+  <DEFINE name="ftp.allow_pipelining" value="NO" />
+
   <!--ALLOW CLIENTS TO CHANGE SERVER FILES-->
-  <ALLOW_STORE>NO</ALLOW_STORE>
+  <DEFINE name="ftp.allow_store" value="NO" />
 </MYSERVER>

Modified: trunk/myserver/documentation/basic_configuration.texi
===================================================================
--- trunk/myserver/documentation/basic_configuration.texi       2009-02-27 
19:47:06 UTC (rev 3016)
+++ trunk/myserver/documentation/basic_configuration.texi       2009-03-01 
17:57:42 UTC (rev 3017)
@@ -26,16 +26,12 @@
 
 @section Message localization
 It is possible to change the localization for some MyServer messages
-changing the @code{LANGUAGE} value in the @file{myserver.xml} file.
+changing the @code{server.language} value in the @file{myserver.xml} file.
 By default the english language is used, the value specified here must
 refer to a xml file contained in the @file{languages/} directory.
 
 @section Server administrator
 CGI scripts can get the server administrator e-mail and show them to
-the user (through the SERVER_ADMIN environment variable). So, it can
-be important you define this address properly, by setting the value in
-the line below, in @file{myserver.xml}:
-
address@hidden
-<SERVER_ADMIN>root@@foo.com</SERVER_ADMIN>
address@hidden example
+the user (through the SERVER_ADMIN environment variable). 
+It is defined trought the @code{server.admin} variable, that can be
+set in the global configuration file or for virtual host.

Modified: trunk/myserver/documentation/directory_listing.texi
===================================================================
--- trunk/myserver/documentation/directory_listing.texi 2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/documentation/directory_listing.texi 2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -67,5 +67,5 @@
 configure the layout for the browsing directory pages:
 
 @example
-<BROWSEFOLDER_CSS>system/folderstyle.css</BROWSEFOLDER_CSS>
+  <DEFINE name="http.dir.css" value="/sys/css/browsestyle.css" />
 @end example

Modified: trunk/myserver/documentation/error_pages.texi
===================================================================
--- trunk/myserver/documentation/error_pages.texi       2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/documentation/error_pages.texi       2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -5,13 +5,13 @@
 option:
 
 @example
-<USE_ERROR_FILE>YES</USE_ERROR_FILE>
+       <DEFINE name="http.use_error_file" value="YES" />
 @end example
 
 So, if you set the value to @code{NO}, like in the line below,
 
 @example
-<USE_ERROR_FILE>NO</USE_ERROR_FILE>
+       <DEFINE name="http.use_error_file" value="NO" />
 @end example
 
 If an error page is not used MyServer will (by default) just send a
@@ -19,5 +19,5 @@
 It is possible to include a HTTP body in the error page, using:
 
 @example
-<ERRORS_INCLUDE_BODY>YES</ERRORS_INCLUDE_BODY>
+  <DEFINE name="http.error_body" value="YES" />
 @end example

Modified: trunk/myserver/documentation/mime_types.texi
===================================================================
--- trunk/myserver/documentation/mime_types.texi        2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/documentation/mime_types.texi        2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -131,7 +131,7 @@
 line in the @file{myserver.xml} file.
 
 @example
-<FOLLOW_LINKS>YES</FOLLOW_LINKS>
+       <DEFINE name="symlinks.follow" value="YES" />
 @end example
 
 By default MyServer doesn't follow symbolic links.

Modified: trunk/myserver/documentation/process_security.texi
===================================================================
--- trunk/myserver/documentation/process_security.texi  2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/documentation/process_security.texi  2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -7,14 +7,14 @@
 the @file{myserver.xml} file as:
 
 @example
-<PROCESS_USER_ID>PID</PROCESS_USER_ID>
+<DEFINE name="server.uid" value="UID" />
 @end example
 
 Differently, to change the process group id (GID), the configuration
 line to use is:
 
 @example
-<PROCESS_GROUP_ID>GID</PROCESS_GROUP_ID>
+<DEFINE name="server.gid" value="GID" />
 @end example
 
 When one of these features is used, MyServer will not use the

Modified: trunk/myserver/include/protocol/http/http.h
===================================================================
--- trunk/myserver/include/protocol/http/http.h 2009-02-27 19:47:06 UTC (rev 
3016)
+++ trunk/myserver/include/protocol/http/http.h 2009-03-01 17:57:42 UTC (rev 
3017)
@@ -1,7 +1,7 @@
 /* -*- mode: c++ -*- */
 /*
 MyServer
-Copyright (C) 2002-2008 Free Software Foundation, Inc.
+Copyright (C) 2002-2009 Free Software Foundation, Inc.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
@@ -57,8 +57,6 @@
     clearMulticastRegistry();
   }
 
-  string browseDirCSSpath;
-  u_long gzipThreshold;
   vector<string> defaultFilename;
   int cgiTimeout;
   int allowVhostMime;
@@ -173,8 +171,6 @@
   int sendHTTPNonModified();
   Http();
   virtual ~Http();
-  const char* getBrowseDirCSSFile();
-  u_long getGzipThreshold();
   virtual char* registerName(char* out,int len){return registerNameImpl(out, 
len);}
 
   static char* registerNameImpl(char*, int len);

Modified: trunk/myserver/include/server/server.h
===================================================================
--- trunk/myserver/include/server/server.h      2009-02-27 19:47:06 UTC (rev 
3016)
+++ trunk/myserver/include/server/server.h      2009-03-01 17:57:42 UTC (rev 
3017)
@@ -1,7 +1,7 @@
 /* -*- mode: c++ -*- */
 /*
 MyServer
-Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software 
Foundation, Inc.
+Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software 
Foundation, Inc.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
@@ -34,9 +34,6 @@
 #include <include/log/log_manager.h>
 #include <include/filter/filters_factory.h>
 #include <include/plugin/plugins_manager.h>
-//#include <include/plugin/filter/dyn_filters_manager.h>
-//#include <include/plugin/filter/dyn_filter.h>
-//#include <include/plugin/executor/dyn_executor_manager.h>
 #include <include/base/hash_map/hash_map.h>
 #include <include/base/home_dir/home_dir.h>
 #include <include/base/files_cache/cached_file_factory.h>
@@ -124,7 +121,6 @@
   const char *getDefaultFilenamePath(u_long ID = 0);
   const char *getServerName();
   u_long getVerbosity();
-  const char *getServerAdmin();
   int getMaxLogFileSize();
   int mustUseLogonOption();
   void setVerbosity(u_long);
@@ -184,6 +180,7 @@
   /*! Do not allow to create directly objects.  */
   Server();
 
+  void readHashedData (xmlNodePtr lcur);
   void mainLoop();
   void loadPlugins();
   void displayBoot();
@@ -199,8 +196,6 @@
   HashMap<string, string*> hashedData;
   HashMap<string, void*> globalData;
   FiltersFactory filtersFactory;
-  //DynamicFiltersManager filters;
-  //DynExecutorManager executors;
   u_long uid;
   u_long gid;
   int currentThreadID;
@@ -218,12 +213,12 @@
   u_long throttlingRate;
   u_long buffersize;
   u_long secondaryBufferSize;
-  /*! Buffer that contains all the local machine IP values.  */
+
+  /* Buffer that contains all the local machine IP values.  */
   string *ipAddresses;
   char serverName[HOST_NAME_MAX + 1];
   string* path;
   string* externalPath;
-  string* serverAdmin;
   int initialize();
   int addThread(bool staticThread = false);
   ConnectionPtr addConnectionToList(Socket* s, MYSERVER_SOCKADDRIN *asock_in,

Modified: trunk/myserver/src/conf/vhost/vhost.cpp
===================================================================
--- trunk/myserver/src/conf/vhost/vhost.cpp     2009-02-27 19:47:06 UTC (rev 
3016)
+++ trunk/myserver/src/conf/vhost/vhost.cpp     2009-03-01 17:57:42 UTC (rev 
3017)
@@ -201,17 +201,6 @@
   IpRange *pNewRange = IpRange::RangeFactory(sTempIp);
   if ( pNewRange != NULL )
     ipListAllow.push_back(pNewRange);
-
-  /* old code
-  StringRegex* sr = new StringRegex();
-  if(sr == 0)
-    return;
-  sr->name.assign(ip);
-  / * If is a regular expression, the ip string is a pattern.  * /
-  if(isRegex)
-    sr->regex.compile(ip, REG_EXTENDED);
-  ipList.push_back(sr);
-  */
 }
 
 /*!

Modified: trunk/myserver/src/http_handler/http_dir/http_dir.cpp
===================================================================
--- trunk/myserver/src/http_handler/http_dir/http_dir.cpp       2009-02-27 
19:47:06 UTC (rev 3016)
+++ trunk/myserver/src/http_handler/http_dir/http_dir.cpp       2009-03-01 
17:57:42 UTC (rev 3017)
@@ -386,8 +386,10 @@
       sort (files.begin(), files.end(), compareFileStructByName);
   }
 
-  browseDirCSSpath = td->http->getBrowseDirCSSFile();
+  browseDirCSSpath = td->securityToken.getHashedData ("http.dir.css",          
                                                     MYSERVER_SECURITY_CONF | 
MYSERVER_VHOST_CONF |
+                                                      MYSERVER_SERVER_CONF, 
NULL);
 
+
   td->secondaryBuffer->setLength(0);
   *td->secondaryBuffer << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
     "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\r\n"
@@ -401,14 +403,13 @@
    *If it is defined a CSS file for the graphic layout of 
    *the browse directory insert it in the page.  
    */
-  if(browseDirCSSpath != 0)
+  if(browseDirCSSpath)
   {
     *td->secondaryBuffer << "<link rel=\"stylesheet\" href=\""
                  << browseDirCSSpath 
                  << "\" type=\"text/css\" media=\"all\"/>\r\n";
   }
 
-
   *td->secondaryBuffer << "</head>\r\n"; 
 
   ret = appendDataToHTTPChannel(td, td->secondaryBuffer->getBuffer(),
@@ -425,8 +426,6 @@
 
   sentData = td->secondaryBuffer->getLength();
               
-  browseDirCSSpath = td->http->getBrowseDirCSSFile();
-
   filename = directory;
   td->secondaryBuffer->setLength(0);
   *td->secondaryBuffer << "<body>\r\n<h1>Contents of directory ";

Modified: trunk/myserver/src/http_handler/http_file/http_file.cpp
===================================================================
--- trunk/myserver/src/http_handler/http_file/http_file.cpp     2009-02-27 
19:47:06 UTC (rev 3016)
+++ trunk/myserver/src/http_handler/http_file/http_file.cpp     2009-03-01 
17:57:42 UTC (rev 3017)
@@ -146,11 +146,16 @@
       /* 
        *Use GZIP compression to send files bigger than GZIP threshold.  
        */
-      const char* val = s->host->getHashedData("GZIP_THRESHOLD");
+      const char *val = td->securityToken.getHashedData ("gzip.threshold", 
+                                                         
MYSERVER_SECURITY_CONF | 
+                                                         MYSERVER_VHOST_CONF |
+                                                         MYSERVER_MIME_CONF |
+                                                         MYSERVER_SERVER_CONF, 
"0");
+
       useGzip = false;
-      if(val)
+      if (val)
       {
-        u_long gzipThreshold = atoi(val);
+        u_long gzipThreshold = atoi (val);
         if(bytesToSend >= gzipThreshold)
           useGzip = true;
       }

Modified: trunk/myserver/src/protocol/control/control_protocol.cpp
===================================================================
--- trunk/myserver/src/protocol/control/control_protocol.cpp    2009-02-27 
19:47:06 UTC (rev 3016)
+++ trunk/myserver/src/protocol/control/control_protocol.cpp    2009-03-01 
17:57:42 UTC (rev 3017)
@@ -1,6 +1,6 @@
 /*
 MyServer
-Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
@@ -108,13 +108,9 @@
   /* Is the value in the config file still in MD5?  */
   int adminPasswordMD5ized = 0;
 
-  char *data = 0;
-  const char *mainConfigurationFile = Server::getInstance()->getMainConfFile();
-  XmlParser configurationFileManager;
+  const char *data = 0;
 
-  configurationFileManager.open(mainConfigurationFile);
-
-  data=configurationFileManager.getValue("CONTROL_ENABLED");
+  data = Server::getInstance()->getHashedData ("control.enabled");
   if(data && (!strcmpi(data, "YES")))
   {
     controlEnabled = 1;
@@ -124,26 +120,26 @@
     controlEnabled = 0;
   }
 
-  data = configurationFileManager.getValue("CONTROL_ADMIN");
+  data = Server::getInstance()->getHashedData ("control.admin");
   if(data)
   {
     strncpy(tmpName, data, 64);
   }  
 
-  data = configurationFileManager.getValue("CONTROL_PASSWORD");
+  data = Server::getInstance()->getHashedData ("control.password");
   if(data)
   {
     strncpy(tmpPassword, data, 64);
   }  
 
-  data = configurationFileManager.getAttr("CONTROL_ADMIN", "MD5");
+  data = Server::getInstance()->getHashedData ("control.admin.md5");
   if(data)
   {
     if(strcmpi(data, "YES") == 0)
       adminNameMD5ized = 1;
   }  
 
-  data = configurationFileManager.getAttr("CONTROL_PASSWORD", "MD5");
+  data = Server::getInstance()->getHashedData ("control.password.md5");
   if(data)
   {
     if(strcmpi(data, "YES") == 0)
@@ -172,7 +168,6 @@
     md5.end(adminPassword);
   }
 
-  configurationFileManager.close();
   return 0;
 }
 

Modified: trunk/myserver/src/protocol/ftp/ftp.cpp
===================================================================
--- trunk/myserver/src/protocol/ftp/ftp.cpp     2009-02-27 19:47:06 UTC (rev 
3016)
+++ trunk/myserver/src/protocol/ftp/ftp.cpp     2009-03-01 17:57:42 UTC (rev 
3017)
@@ -381,35 +381,33 @@
 int Ftp::loadProtocolStatic(XmlParser*)
 {
   // load custom messages from cfg here
-  XmlParser *configurationFileManager = 
Server::getInstance()->getConfiguration();
+  Server *server = Server::getInstance ();
 
-  if ( configurationFileManager == NULL )
-    return 0;
-
   // allow anonymous access
-  char *pData = configurationFileManager->getValue("ALLOW_ANONYMOUS");
+  const char *pData = server->getHashedData ("ftp.allow_anonymous");
   if ( pData != NULL )
     m_bAllowAnonymous = strcmpi("Yes", pData) == 0 ? true : false;
 
   // request password for anonymous
-  pData = configurationFileManager->getValue("ANONYMOUS_NEED_PASS");
+  pData = server->getHashedData ("ftp.anonymous_need_pass");
   if ( pData != NULL )
     m_bAnonymousNeedPass = strcmpi("Yes", pData) == 0 ? true : false;
 
   // enable asyncronous cmds
-  pData = configurationFileManager->getValue("ALLOW_ASYNCHRONOUS_CMDS");
+  pData = server->getHashedData ("ftp.allow_asynchronous_cmds");
   if ( pData != NULL )
     m_bAllowAsynchronousCmds = strcmpi("Yes", pData) == 0 ? true : false;
 
   // enable pipelining
-  pData = configurationFileManager->getValue("ALLOW_PIPELINING");
+  pData = server->getHashedData ("ftp.allow_pipelining");
   if ( pData != NULL )
     m_bEnablePipelining = strcmpi("Yes", pData) == 0 ? true : false;
 
-  // enable write commands
-  pData = configurationFileManager->getValue("ALLOW_STORE");
+  // enable write commands 
+  pData = server->getHashedData ("ftp.allow_store");
   if ( pData != NULL )
     m_bEnableStoreCmds = strcmpi("Yes", pData) == 0 ? true : false;
+
   return 1;
 }
 

Modified: trunk/myserver/src/protocol/http/env/env.cpp
===================================================================
--- trunk/myserver/src/protocol/http/env/env.cpp        2009-02-27 19:47:06 UTC 
(rev 3016)
+++ trunk/myserver/src/protocol/http/env/env.cpp        2009-03-01 17:57:42 UTC 
(rev 3017)
@@ -1,6 +1,6 @@
 /*
 MyServer
-Copyright (C) 2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2002, 2003, 2004, 2006, 2007, 2008, 2009 Free Software 
Foundation, Inc.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
@@ -80,7 +80,9 @@
   memCgi << end_str << "SERVER_PORT="<< portBuffer;
 
   memCgi << end_str << "SERVER_ADMIN=";
-  memCgi << Server::getInstance()->getServerAdmin();
+  memCgi << td->securityToken.getHashedData ("server.admin", 
+                                             MYSERVER_VHOST_CONF |
+                                             MYSERVER_SERVER_CONF, "");
 
   memCgi << end_str << "REQUEST_METHOD=";
   memCgi << td->request.cmd.c_str();

Modified: trunk/myserver/src/protocol/http/http.cpp
===================================================================
--- trunk/myserver/src/protocol/http/http.cpp   2009-02-27 19:47:06 UTC (rev 
3016)
+++ trunk/myserver/src/protocol/http/http.cpp   2009-03-01 17:57:42 UTC (rev 
3017)
@@ -222,8 +222,9 @@
  */
 bool Http::allowHTTPTRACE()
 {
-  const char *allowTrace = td->securityToken.getHashedData 
("http.allow_trace", MYSERVER_VHOST_CONF |
-                                                              
MYSERVER_SERVER_CONF, "NO");
+  const char *allowTrace = td->securityToken.getHashedData 
("http.allow_trace", 
+                                                            
MYSERVER_VHOST_CONF |
+                                                            
MYSERVER_SERVER_CONF, "NO");
 
   if (!strcmpi (allowTrace, "YES"))
     return true;
@@ -249,6 +250,7 @@
   int permissions = -1;
   int keepalive = 0;
   int ret;
+
   try
   {
     HttpHeaders::buildDefaultHTTPResponseHeader(&td->response);
@@ -423,10 +425,9 @@
 
     if (FilesUtility::isLink (td->filenamePath.c_str()))
     {
-      const char *perm = td->securityToken.getHashedData ("FOLLOW_LINKS", 
MYSERVER_VHOST_CONF |
-                                                         MYSERVER_SERVER_CONF, 
"NO");
+      const char *perm = td->securityToken.getHashedData ("symlinks.follow", 
MYSERVER_VHOST_CONF |
+                                                          
MYSERVER_SERVER_CONF, "NO");
 
-
       if(!perm || strcmpi(perm, "YES"))
         return raiseHTTPError(401);
     }
@@ -485,7 +486,8 @@
 
     SecurityDomain* domains[] = {&auth, &httpReqSecDom, NULL};
 
-    Server::getInstance()->getSecurityManager ()->getPermissionMask 
(&(td->securityToken), domains, 
+    Server::getInstance()->getSecurityManager ()->getPermissionMask 
(&(td->securityToken), 
+                                                                     domains, 
                                                                      
validator, authMethod);
 
     const char *authType = td->securityToken.getHashedData ("http.auth", 
MYSERVER_SECURITY_CONF |
@@ -524,9 +526,10 @@
     return 500;
   }
 
-  const char *tr = td->securityToken.getHashedData ("connection.throttling", 
MYSERVER_SECURITY_CONF |
-                                                MYSERVER_VHOST_CONF |
-                                                MYSERVER_SERVER_CONF);
+  const char *tr = td->securityToken.getHashedData ("connection.throttling", 
+                                                    MYSERVER_SECURITY_CONF |
+                                                    MYSERVER_VHOST_CONF |
+                                                    MYSERVER_SERVER_CONF);
 
   /*! If a throttling rate was specifed use it.  */
   if(tr)
@@ -1223,91 +1226,95 @@
 
         if(documentRoot.length())
         {
-          const char *useHomeDir = td->securityToken.getHashedData 
("USE_HOME_DIRECTORY", MYSERVER_VHOST_CONF |
-                                                                   
MYSERVER_SERVER_CONF, "YES");
+          const char *useHomeDir = td->securityToken.getHashedData 
("http.use_home_directory", 
+                                                                    
MYSERVER_VHOST_CONF |
+                                                                    
MYSERVER_SERVER_CONF, "YES");
 
 
-         const char *homeDir = td->securityToken.getHashedData 
("HOME_DIRECTORY", MYSERVER_VHOST_CONF |
-                                                                
MYSERVER_SERVER_CONF, "public_html");
+          const char *homeDir = td->securityToken.getHashedData 
("http.home_directory", 
+                                                                 
MYSERVER_VHOST_CONF |
+                                                                 
MYSERVER_SERVER_CONF, 
+                                                                 
"public_html");
 
          if (strcmpi (useHomeDir, "YES"))
            return raiseHTTPError (404);
 
-          td->vhostDir.assign (documentRoot);
-          td->vhostDir.append ("/");
-          td->vhostDir.append (homeDir);
-
-          if(!td->request.uriEndsWithSlash && !(td->request.uri.length() - 
pos))
-          {
-            td->request.uri.append("/");
-
-            return sendHTTPRedirect(td->request.uri.c_str());
-          }
-
-          if(td->request.uri.length() - pos)
-            td->request.uri.assign(td->request.uri.substr(pos,
-                                td->request.uri.length()));
+    td->vhostDir.assign (documentRoot);
+    td->vhostDir.append ("/");
+    td->vhostDir.append (homeDir);
+    
+    if(!td->request.uriEndsWithSlash && !(td->request.uri.length() - pos))
+      {
+        td->request.uri.append("/");
+        
+        return sendHTTPRedirect(td->request.uri.c_str());
+      }
+    
+    if(td->request.uri.length() - pos)
+      td->request.uri.assign(td->request.uri.substr(pos,
+                                                    td->request.uri.length()));
           else
             td->request.uri.assign("");
         }
       }
-
+      
       /*!
        *Check if there is a limit for the number of connections in the
        *virtual host A value of zero means no limit.
        */
       {
-        const char* val = td->securityToken.getHashedData ("MAX_CONNECTIONS", 
MYSERVER_VHOST_CONF |
-                                                          
MYSERVER_SERVER_CONF, NULL);
-
+        const char* val = td->securityToken.getHashedData ("MAX_CONNECTIONS", 
+                                                           MYSERVER_VHOST_CONF 
|
+                                                           
MYSERVER_SERVER_CONF, NULL);
+        
         if(val)
-        {
-          u_long limit = (u_long)atoi(val);
-          if(limit && (u_long)a->host->getRef() >= limit)
           {
-            retvalue = raiseHTTPError(500);
-            logHTTPaccess();
-            return retvalue ? ClientsThread::KEEP_CONNECTION
-                            : ClientsThread::DELETE_CONNECTION;
+            u_long limit = (u_long)atoi(val);
+            if(limit && (u_long)a->host->getRef() >= limit)
+              {
+                retvalue = raiseHTTPError(500);
+                logHTTPaccess();
+                return retvalue ? ClientsThread::KEEP_CONNECTION
+                  : ClientsThread::DELETE_CONNECTION;
+              }
           }
-        }
       }
-
+      
       if(td->request.isKeepAlive())
-      {
-        /*!
-         *Support for HTTP pipelining.
-         */
-        if(contentLength == 0)
         {
           /*!
-           *connectionBuffer is 8 KB, so don't copy more bytes.
+           *Support for HTTP pipelining.
            */
-          u_long bufferStrLen = strlen(td->buffer->getBuffer());
-          u_long remainingData = 0;
-
-          if(bufferStrLen - td->nHeaderChars >= MYSERVER_KB(8))
-            remainingData = MYSERVER_KB(8);
-          else 
-            remainingData = bufferStrLen - td->nHeaderChars;
-
-          if(remainingData)
-          {
-            u_long toCopy = nbtr - td->nHeaderChars;
-            a->connectionBuffer.setBuffer((td->buffer->getBuffer() + 
td->nHeaderChars), toCopy);
-            retvalue = ClientsThread::INCOMPLETE_REQUEST_NO_WAIT;
-          }
+          if(contentLength == 0)
+            {
+              /*!
+               *connectionBuffer is 8 KB, so don't copy more bytes.
+               */
+              u_long bufferStrLen = strlen(td->buffer->getBuffer());
+              u_long remainingData = 0;
+              
+              if(bufferStrLen - td->nHeaderChars >= MYSERVER_KB(8))
+                remainingData = MYSERVER_KB(8);
+              else 
+                remainingData = bufferStrLen - td->nHeaderChars;
+              
+              if(remainingData)
+                {
+                  u_long toCopy = nbtr - td->nHeaderChars;
+                  a->connectionBuffer.setBuffer((td->buffer->getBuffer() + 
td->nHeaderChars), 
+                                                toCopy);
+                  retvalue = ClientsThread::INCOMPLETE_REQUEST_NO_WAIT;
+                }
+              else
+                retvalue = ClientsThread::KEEP_CONNECTION;
+            }
           else
             retvalue = ClientsThread::KEEP_CONNECTION;
-
         }
-        else
-          retvalue = ClientsThread::KEEP_CONNECTION;
-      }
       else
-      {
-        retvalue = ClientsThread::DELETE_CONNECTION;
-      }
+        {
+          retvalue = ClientsThread::DELETE_CONNECTION;
+        }
 
       /*!
        *Set the throttling rate for the socket. This setting can be
@@ -1559,8 +1566,9 @@
     int useMessagesFiles = 1;
     HttpRequestHeader::Entry *host = td->request.other.get("Host");
     HttpRequestHeader::Entry *connection = td->request.other.get("Connection");
-    const char *useMessagesVal = td->securityToken.getHashedData 
("USE_ERROR_FILE", MYSERVER_VHOST_CONF |
-                                                                 
MYSERVER_SERVER_CONF, NULL);
+    const char *useMessagesVal = td->securityToken.getHashedData 
("http.use_error_file", 
+                                                                  
MYSERVER_VHOST_CONF |
+                                                                 
MYSERVER_SERVER_CONF, NULL);
 
     if(useMessagesVal)
     {
@@ -1590,7 +1598,8 @@
     char errorName [32];
     sprintf (errorName, "http.error.file.%i", ID);
 
-    const char *defErrorFile = td->securityToken.getHashedData (errorName, 
MYSERVER_SECURITY_CONF |
+    const char *defErrorFile = td->securityToken.getHashedData (errorName, 
+                                                                
MYSERVER_SECURITY_CONF |
                                                                 
MYSERVER_VHOST_CONF |
                                                                 
MYSERVER_SERVER_CONF);
 
@@ -1654,7 +1663,8 @@
 
     /*! Send only the header (and the body if specified). */
     {
-      const char* value = td->securityToken.getHashedData ("USE_ERROR_FILE", 
MYSERVER_VHOST_CONF |
+      const char* value = td->securityToken.getHashedData ("http.error_body", 
+                                                           MYSERVER_VHOST_CONF 
|
                                                           
MYSERVER_SERVER_CONF, NULL);
 
       if(value && !strcmpi(value, "NO"))
@@ -1906,22 +1916,6 @@
 }
 
 /*!
- *Get the CSS file used in a browsed directory.
- */
-const char* Http::getBrowseDirCSSFile()
-{
-  return staticHttp.browseDirCSSpath.c_str();
-}
-
-/*!
- *Get the GZIP threshold.
- */
-u_long Http::getGzipThreshold()
-{
-  return staticHttp.gzipThreshold;
-}
-
-/*!
  *Send a redirect message to the client.
  */
 int Http::sendHTTPRedirect(const char *newURL)
@@ -2013,8 +2007,6 @@
    *By default use GZIP with files bigger than a MB.
    */
   staticHttp.cgiTimeout = MYSERVER_SEC(15);
-  staticHttp.gzipThreshold = 1 << 20;
-  staticHttp.browseDirCSSpath.assign("");
 
   Server::getInstance()->setGlobalData("http-static", getStaticData());
 
@@ -2045,31 +2037,20 @@
   staticHttp.dynManagerList.addHttpManager ("FASTCGI", staticHttp.fastcgi);
   staticHttp.dynManagerList.addHttpManager ("ISAPI", staticHttp.isapi);
 
-  /* Determine the min file size that will use GZIP compression.  */
-  data = configurationFileManager->getValue("GZIP_THRESHOLD");
+  data = configurationFileManager->getValue("vhost.allow_mime");
   if(data)
   {
-    staticHttp.gzipThreshold = atoi(data);
-  }
-  data = configurationFileManager->getValue("ALLOW_VHOST_MIME");
-  if(data)
-  {
 
     if(!strcmpi(data, "YES"))
       staticHttp.allowVhostMime = 1;
     else
       staticHttp.allowVhostMime = 0;
   }
-  data = configurationFileManager->getValue("CGI_TIMEOUT");
+  data = configurationFileManager->getValue("cgi.timeout");
   if(data)
   {
     staticHttp.cgiTimeout = MYSERVER_SEC(atoi(data));
   }
-  data = configurationFileManager->getValue("BROWSEFOLDER_CSS");
-  if(data)
-  {
-    staticHttp.browseDirCSSpath.append(data);
-  }
 
   Cgi::setTimeout(staticHttp.cgiTimeout);
   Scgi::setTimeout(staticHttp.cgiTimeout);
@@ -2134,7 +2115,6 @@
   HttpDir::unLoad();
 
   staticHttp.defaultFilename.clear();
-  staticHttp.browseDirCSSpath.assign("");
 
   staticHttp.clear();
 
@@ -2144,7 +2124,7 @@
 /*!
  *Returns the default filename.
  */
-const char *Http::getDefaultFilenamePath(u_long ID)
+const char *Http::getDefaultFilenamePath (u_long ID)
 {
   if(staticHttp.defaultFilename.size() <= ID)
     return 0;

Modified: trunk/myserver/src/server/server.cpp
===================================================================
--- trunk/myserver/src/server/server.cpp        2009-02-27 19:47:06 UTC (rev 
3016)
+++ trunk/myserver/src/server/server.cpp        2009-03-01 17:57:42 UTC (rev 
3017)
@@ -1,6 +1,6 @@
 /*
 MyServer
-Copyright (C) 2002-2008 Free Software Foundation, Inc.
+Copyright (C) 2002-2009 Free Software Foundation, Inc.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
@@ -78,7 +78,6 @@
   throttlingRate = 0;
   uid = 0;
   gid = 0;
-  serverAdmin = 0;
   mimeManager = 0;
   mimeConfigurationFile = 0;
   mainConfigurationFile = 0;
@@ -260,10 +259,6 @@
   if(vhostList)
     delete vhostList;
 
-  if(serverAdmin)
-    delete serverAdmin;
-  serverAdmin = 0;
-
   delete vhostConfigurationFile;
   vhostConfigurationFile = 0;
 
@@ -968,22 +963,13 @@
 }
 
 /*!
- *Get the server administrator e-mail address.
- *To change this use the main configuration file.
- */
-const char *Server::getServerAdmin()
-{
-  return serverAdmin ? serverAdmin->c_str() : "";
-}
-
-/*!
  *Here is loaded the configuration of the server.
  *The configuration file is a XML file.
  *Return nonzero on errors.
  */
 int Server::initialize()
 {
-  char *data;
+  const char *data;
 #ifdef WIN32
   envString = GetEnvironmentStrings();
 #endif
@@ -1003,13 +989,12 @@
   throttlingRate = 0;
   maxConnections = 0;
   maxConnectionsToAccept = 0;
-  if(serverAdmin)
-    delete serverAdmin;
-  serverAdmin = 0;
 
   if(configurationFileManager.open(mainConfigurationFile->c_str()))
     return -1;
 
+  readHashedData 
(xmlDocGetRootElement(configurationFileManager.getDoc())->xmlChildrenNode);
+
   /*
    * Process console colors information.
    */
@@ -1032,7 +1017,7 @@
 
   initLogManager ();
 
-  data = configurationFileManager.getValue("LANGUAGE");
+  data = getHashedData ("server.language");
   if(languageFile)
     delete languageFile;
   languageFile = new string();
@@ -1056,78 +1041,69 @@
   }
   logWriteln(languageParser.getValue("MSG_LANGUAGE"));
 
-  data = configurationFileManager.getValue("VERBOSITY");
+  data = getHashedData ("server.verbosity");
   if(data)
   {
     verbosity = (u_long)atoi(data);
   }
 
 
-  data = configurationFileManager.getValue("BUFFER_SIZE");
+  data = configurationFileManager.getValue("server.buffer_size");
   if(data)
   {
     buffersize=secondaryBufferSize= (atol(data) > 81920) ?  atol(data) :  
81920 ;
   }
-  data = configurationFileManager.getValue("CONNECTION_TIMEOUT");
+  data = configurationFileManager.getValue("server.connection_timeout");
   if(data)
   {
     connectionTimeout = MYSERVER_SEC((u_long)atol(data));
   }
 
-  data = configurationFileManager.getValue("NTHREADS_STATIC");
+  data = configurationFileManager.getValue("server.static_threads");
   if(data)
   {
     nStaticThreads = atoi(data);
   }
-  data = configurationFileManager.getValue("NTHREADS_MAX");
+  data = configurationFileManager.getValue("server.max_threads");
   if(data)
   {
     nMaxThreads = atoi(data);
   }
 
   /* Get the max connections number to allow.  */
-  data = configurationFileManager.getValue("MAX_CONNECTIONS");
+  data = configurationFileManager.getValue("server.max_connections");
   if(data)
   {
     maxConnections = atoi(data);
   }
 
   /* Get the max connections number to accept.  */
-  data = configurationFileManager.getValue("MAX_CONNECTIONS_TO_ACCEPT");
+  data = configurationFileManager.getValue("server.max_accepted_connections");
   if(data)
   {
     maxConnectionsToAccept = atoi(data);
   }
 
   /* Get the default throttling rate to use on connections.  */
-  data = configurationFileManager.getValue("THROTTLING_RATE");
+  data = configurationFileManager.getValue("connection.throttling");
   if(data)
   {
     throttlingRate = (u_long)atoi(data);
   }
 
-  /* Load the server administrator e-mail.  */
-  data = configurationFileManager.getValue("SERVER_ADMIN");
+  data = configurationFileManager.getValue("connection.timeout");
   if(data)
   {
-    if(serverAdmin == 0)
-      serverAdmin = new string();
-    serverAdmin->assign(data);
-  }
-
-  data = configurationFileManager.getValue("CONNECTION_TIMEOUT");
-  if(data)
-  {
     connectionTimeout=MYSERVER_SEC((u_long)atol(data));
   }
 
-  data = configurationFileManager.getValue("MAX_LOG_FILE_SIZE");
+  data = configurationFileManager.getValue("server.max_log_size");
   if(data)
   {
     maxLogFileSize=(u_long)atol(data);
   }
 
-  data = configurationFileManager.getValue("MAX_FILESCACHE_SIZE");
+  data = configurationFileManager.getValue("server.max_files_cache");
   if(data)
   {
     u_long maxSize = (u_long)atol(data);
@@ -1136,7 +1112,7 @@
   else
     cachedFiles.initialize(1 << 23);
 
-  data = configurationFileManager.getValue("TEMP_DIRECTORY");
+  data = configurationFileManager.getValue("server.temp_directory");
   if (data)
   {
     string tmpPath (data);
@@ -1146,60 +1122,78 @@
   else
     FilesUtility::resetTmpPath ();
 
-  data = configurationFileManager.getValue("MAX_FILESCACHE_FILESIZE");
+  data = configurationFileManager.getValue("server.max_file_cache");
   if(data)
   {
     u_long maxSize = (u_long)atol(data);
     cachedFiles.setMaxSize(maxSize);
   }
 
-  data = configurationFileManager.getValue("MIN_FILESCACHE_FILESIZE");
+  data = configurationFileManager.getValue("server.min_file_cache");
   if(data)
   {
     u_long minSize = (u_long)atol(data);
     cachedFiles.setMinSize(minSize);
   }
 
-  data = configurationFileManager.getValue("PROCESS_USER_ID");
+  data = configurationFileManager.getValue("server.uid");
   if(data)
   {
     uid = atoi(data);
   }
-  data = configurationFileManager.getValue("PROCESS_GROUP_ID");
+  data = configurationFileManager.getValue("server.gid");
   if(data)
   {
     gid = atoi(data);
   }
 
-  data = configurationFileManager.getValue("MAX_SERVERS_PROCESSES");
+  data = configurationFileManager.getValue("server.max_servers");
   if(data)
   {
     int maxServersProcesses = atoi(data);
     getProcessServerManager()->setMaxServers(maxServersProcesses);
   }
 
-  {
-    xmlNodePtr node =
-      xmlDocGetRootElement(configurationFileManager.getDoc())->xmlChildrenNode;
-    for(;node; node = node->next)
+  return 0;
+}
+
+/*!
+ *Read the values defined in the global configuration file.
+ */
+void Server::readHashedData (xmlNodePtr lcur)
+{
+  xmlAttr *attrs;
+  for(;lcur; lcur = lcur->next)
     {
-      if(node->children && node->children->content)
-      {
-        string* old;
-        string *value = new string((const char*)node->children->content);
-        string key((const char*)node->name);
-        if(value == 0)
-          return -1;
-        old = hashedData.put(key, value);
-        if(old)
+      
+      if (lcur->name && !xmlStrcmp(lcur->name, (const xmlChar *)"DEFINE"))
         {
-          delete old;
+          const char *name = NULL;
+          const char *value = NULL;
+          
+          for (attrs = lcur->properties; attrs; attrs = attrs->next)
+            {
+              if (!xmlStrcmp (attrs->name, (const xmlChar *)"name") && 
+                  attrs->children && attrs->children->content)
+                name = (const char*)attrs->children->content;
+              
+              if (!xmlStrcmp (attrs->name, (const xmlChar *)"value") && 
+                  attrs->children && attrs->children->content)
+                value = (const char*)attrs->children->content;
+            }
+          
+          if(name && value)
+            {
+              string* old;
+              string *v = new string((const char*)value);
+              string key((const char*)name);
+              old = hashedData.put(key, v);
+
+              if(old)
+                delete old;
+            }
         }
-      }
     }
-  }
-
-  return 0;
 }
 
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]