2 suPHP - (c)2002-2008 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
33 #include "ParsingException.hpp"
34 #include "IOException.hpp"
36 #include "KeyNotFoundException.hpp"
41 * Class encapsulating run-time configuration.
46 std::string webserver_user;
47 std::vector<std::string> docroots;
48 bool allow_file_group_writeable;
49 bool allow_directory_group_writeable;
50 bool allow_file_others_writeable;
51 bool allow_directory_others_writeable;
52 bool check_vhost_docroot;
53 bool errors_to_browser;
55 std::map<std::string, std::string> handlers;
60 std::string chroot_path;
63 * Converts string to bool
65 bool strToBool(const std::string& str) const throw (ParsingException);
68 * Converts string to LogLevel
70 LogLevel strToLogLevel(const std::string& str) const
71 throw (ParsingException);
75 * Constructor, initializes configuration with default values.
80 * Reads values from INI file
82 void readFromFile(File& file) throw (IOException, ParsingException);
85 * Return path to logfile;
87 std::string getLogfile() const;
92 LogLevel getLogLevel() const;
95 * Return username of user the webserver is running as
97 std::string getWebserverUser() const;
100 * Return document root (list of directories, scripts may be within)
102 const std::vector<std::string>& getDocroots() const;
105 * Returns wheter suPHP should check if scripts in within the
106 * document root of the VHost
108 bool getCheckVHostDocroot() const;
111 * Returns wheter suPHP should ignore the group write bit of
114 bool getAllowFileGroupWriteable() const;
117 * Returns wheter suPHP should ignore the group write bit of
118 * the directory the is script in
120 bool getAllowDirectoryGroupWriteable() const;
123 * Returns wheter suPHP should ignore the others write bit of the
126 bool getAllowFileOthersWriteable() const;
129 * Returns wheter suPHP should ignore the others write bit of
130 * the directory the is script in
132 bool getAllowDirectoryOthersWriteable() const;
135 * Returns whether (minor) error message should be sent to browser
137 bool getErrorsToBrowser() const;
140 * Returns the content for the PATH environment variable
142 std::string getEnvPath() const;
145 * Returns interpreter string for specified handler
147 std::string getInterpreter(std::string handler) const
148 throw (KeyNotFoundException);
151 * Returns minimum UID allowed for scripts
153 int getMinUid() const;
156 * Returns minimum GID allowed for scripts
158 int getMinGid() const;
161 * Returns umask to set
163 int getUmask() const;
168 std::string getChrootPath() const;
172 #endif // SUPHP_CONFIGURATION_H