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