[Top][All Lists]
[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [myserver-commit] [3017] Changed the format for definitions inside the `myserver.xml' file.,
Giuseppe Scrivano <=