2 suPHP - (c)2002-2005 Sebastian Marsching <sebastian@marsching.com>
4 This file is part of suPHP.
6 suPHP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 suPHP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with suPHP; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef SUPHP_CONFIGURATION_H
27 #define SUPHP_CONFIGURATION_H
32 #include "ParsingException.hpp"
33 #include "IOException.hpp"
35 #include "KeyNotFoundException.hpp"
40 * Class encapsulating run-time configuration.
45 std::string webserver_user;
47 bool allow_file_group_writeable;
48 bool allow_directory_group_writeable;
49 bool allow_file_others_writeable;
50 bool allow_directory_others_writeable;
51 bool check_vhost_docroot;
52 bool errors_to_browser;
54 std::map<std::string, std::string> handlers;
59 std::string chroot_path;
62 * Converts string to bool
64 bool strToBool(const std::string& str) const throw (ParsingException);
67 * Converts string to LogLevel
69 LogLevel strToLogLevel(const std::string& str) const
70 throw (ParsingException);
74 * Constructor, initializes configuration with default values.
79 * Reads values from INI file
81 void readFromFile(File& file) throw (IOException, ParsingException);
84 * Return path to logfile;
86 std::string getLogfile() const;
91 LogLevel getLogLevel() const;
94 * Return username of user the webserver is running as
96 std::string getWebserverUser() const;
99 * Return document root (directory, all script have to be in)
101 std::string getDocroot() const;
104 * Returns wheter suPHP should check if scripts in within the
105 * document root of the VHost
107 bool getCheckVHostDocroot() const;
110 * Returns wheter suPHP should ignore the group write bit of
113 bool getAllowFileGroupWriteable() const;
116 * Returns wheter suPHP should ignore the group write bit of
117 * the directory the is script in
119 bool getAllowDirectoryGroupWriteable() const;
122 * Returns wheter suPHP should ignore the others write bit of the
125 bool getAllowFileOthersWriteable() const;
128 * Returns wheter suPHP should ignore the others write bit of
129 * the directory the is script in
131 bool getAllowDirectoryOthersWriteable() const;
134 * Returns whether (minor) error message should be sent to browser
136 bool getErrorsToBrowser() const;
139 * Returns the content for the PATH environment variable
141 std::string getEnvPath() const;
144 * Returns interpreter string for specified handler
146 std::string getInterpreter(std::string handler) const
147 throw (KeyNotFoundException);
150 * Returns minimum UID allowed for scripts
152 int getMinUid() const;
155 * Returns minimum GID allowed for scripts
157 int getMinGid() const;
160 * Returns umask to set
162 int getUmask() const;
167 std::string getChrootPath() const;
171 #endif // SUPHP_CONFIGURATION_H