You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Dean Gaudet <dg...@arctic.org> on 1997/11/14 04:07:32 UTC
[PATCH] clean up check_cmd_context
This patch cleans up the documentation that probably led to Martin's
mistakes in the check_cmd_context patch.
- ContentDigest, HostnameLookups, IdentityCheck are all valid in directory
- Files is valid in directory
I also created another #define to bring line lengths down to a reasonable
amount. We can deal with making check_cmd_context part of the API after
1.3b3.
Dean
Index: htdocs/manual/mod/core.html
===================================================================
RCS file: /export/home/cvs/apachen/htdocs/manual/mod/core.html,v
retrieving revision 1.83
diff -u -r1.83 core.html
--- core.html 1997/11/11 23:47:17 1.83
+++ core.html 1997/11/14 03:04:38
@@ -279,7 +279,7 @@
<!--%plaintext <?INDEX {\tt ContentDigest} directive> -->
<strong>Syntax:</strong> ContentDigest <em>on|off</em><br>
<strong>Default:</strong> <code>ContentDigest off</code><br>
-<strong>Context:</strong> any<br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
<strong>Override:</strong> AuthConfig<br>
<strong>Status:</strong> experimental<p>
<strong>Compatibility:</strong> ContentDigest is only available in Apache 1.1 and later<p>
@@ -689,7 +689,7 @@
<!--%plaintext <?INDEX {\tt HostNameLookups} directive> -->
<strong>Syntax:</strong> HostNameLookups <em>on | off | double</em><br>
<strong>Default:</strong> <code>HostNameLookups off</code><br>
-<strong>Context:</strong> server config, virtual host<br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
<strong>Status:</strong> core<br>
<strong>Compatibility:</strong> <code>double</code> available only in Apache
1.3 and above.<br>
@@ -729,7 +729,7 @@
<!--%plaintext <?INDEX {\tt IdentityCheck} directive> -->
<strong>Syntax:</strong> IdentityCheck <em>boolean</em><br>
<strong>Default:</strong> <code>IdentityCheck off</code><br>
-<strong>Context:</strong> server config, virtual host<br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
<strong>Status:</strong> core<p>
This directive enables RFC1413-compliant logging of the remote user name
Index: src/main/http_core.c
===================================================================
RCS file: /export/home/cvs/apachen/src/main/http_core.c,v
retrieving revision 1.139
diff -u -r1.139 http_core.c
--- http_core.c 1997/11/13 15:00:10 1.139
+++ http_core.c 1997/11/14 03:04:40
@@ -568,6 +568,7 @@
#define NOT_IN_VIRTUALHOST 0x01U /* <Virtualhost> */
#define NOT_IN_LIMIT 0x02U /* <Limit> */
#define NOT_IN_DIR_LOC_FILE 0x04U /* <Directory>/<Location>/<Files>*/
+#define GLOBAL_ONLY (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE)
static const char *check_cmd_context(cmd_parms *cmd, unsigned forbidden)
@@ -969,7 +970,7 @@
void *new_file_conf = create_per_dir_config (cmd->pool);
- const char *err = check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, NOT_IN_LIMIT);
if (err != NULL) return err;
if (endp) *endp = '\0';
@@ -1069,7 +1070,7 @@
char *endp = strrchr (arg, '>');
pool *p = cmd->pool, *ptemp = cmd->temp_pool;
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if (endp) *endp = '\0';
@@ -1108,7 +1109,7 @@
const char *add_module_command (cmd_parms *cmd, void *dummy, char *arg)
{
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if (add_named_module (arg))
@@ -1118,7 +1119,7 @@
const char *clear_module_list_command (cmd_parms *cmd, void *dummy)
{
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
clear_module_list ();
@@ -1141,7 +1142,7 @@
const char *server_type (cmd_parms *cmd, void *dummy, char *arg)
{
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if (!strcasecmp (arg, "inetd")) standalone = 0;
@@ -1161,7 +1162,7 @@
const char *set_send_buffer_size (cmd_parms *cmd, void *dummy, char *arg) {
int s = atoi (arg);
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if (s < 512 && s != 0) {
@@ -1228,7 +1229,7 @@
}
const char *set_server_root (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if (!is_directory (arg)) return "ServerRoot must be a valid directory";
@@ -1276,7 +1277,7 @@
}
const char *set_pidfile (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if (cmd->server->is_virtual)
@@ -1286,7 +1287,7 @@
}
const char *set_scoreboard (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
scoreboard_fname = pstrdup (cmd->pool, arg);
@@ -1294,7 +1295,7 @@
}
const char *set_lockfile (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
lock_fname = pstrdup (cmd->pool, arg);
@@ -1302,7 +1303,7 @@
}
const char *set_idcheck (cmd_parms *cmd, core_dir_config *d, int arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, NOT_IN_LIMIT);
if (err != NULL) return err;
d->do_rfc1413 = arg != 0;
@@ -1311,7 +1312,7 @@
const char *set_hostname_lookups (cmd_parms *cmd, core_dir_config *d, char *arg)
{
- const char *err = check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, NOT_IN_LIMIT);
if (err != NULL) return err;
if (!strcasecmp (arg, "on")) {
@@ -1336,7 +1337,7 @@
}
const char *set_content_md5 (cmd_parms *cmd, core_dir_config *d, int arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, NOT_IN_LIMIT);
if (err != NULL) return err;
d->content_md5 = arg != 0;
@@ -1344,7 +1345,7 @@
}
const char *set_daemons_to_start (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
daemons_to_start = atoi (arg);
@@ -1352,7 +1353,7 @@
}
const char *set_min_free_servers (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
daemons_min_free = atoi (arg);
@@ -1367,7 +1368,7 @@
}
const char *set_max_free_servers (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
daemons_max_free = atoi (arg);
@@ -1375,7 +1376,7 @@
}
const char *set_server_limit (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
daemons_limit = atoi (arg);
@@ -1394,7 +1395,7 @@
}
const char *set_max_requests (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
max_requests_per_child = atoi (arg);
@@ -1402,7 +1403,7 @@
}
const char *set_threads (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
threads_per_child = atoi (arg);
@@ -1410,7 +1411,7 @@
}
const char *set_excess_requests (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
excess_requests_per_child = atoi (arg);
@@ -1506,7 +1507,7 @@
#endif
const char *set_bind_address (cmd_parms *cmd, void *dummy, char *arg) {
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
bind_address.s_addr = get_virthost_addr (arg, NULL);
@@ -1519,7 +1520,7 @@
char *ports;
unsigned short port;
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
ports=strchr(ips, ':');
@@ -1552,7 +1553,7 @@
const char *set_listenbacklog (cmd_parms *cmd, void *dummy, char *arg) {
int b;
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
b = atoi (arg);
@@ -1563,7 +1564,7 @@
const char *set_coredumpdir (cmd_parms *cmd, void *dummy, char *arg) {
struct stat finfo;
- const char *err = check_cmd_context(cmd, NOT_IN_VIRTUALHOST|NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+ const char *err = check_cmd_context(cmd, GLOBAL_ONLY);
if (err != NULL) return err;
if ((stat(arg, &finfo) == -1) || !S_ISDIR(finfo.st_mode)) {
Re: [PATCH] clean up check_cmd_context
Posted by Lars Eilebrecht <La...@unix-ag.org>.
According to Martin Kraemer:
> Sorry for having caused so much trouble; yes it's true that I looked at
> the documentation instead of testing each directive manually... :-(
Never trust the documenation. ;-)
(BTW, thanks for dealing with the vhost stuff Martin.)
ciao...
--
Lars Eilebrecht - Disc space... the final frontier!
sfx@unix-ag.org
http://www.si.unix-ag.org/~sfx/
Re: [PATCH] clean up check_cmd_context
Posted by Martin Kraemer <Ma...@mch.sni.de>.
On Thu, Nov 13, 1997 at 07:07:32PM -0800, Dean Gaudet wrote:
> This patch cleans up the documentation that probably led to Martin's
> mistakes in the check_cmd_context patch.
Thanks a lot, Dean! +1 of course.
Sorry for having caused so much trouble; yes it's true that I looked at the
documentation instead of testing each directive manually... :-(
You goin' to commit?
Martin
--
| S I E M E N S | <Ma...@mch.sni.de> | Siemens Nixdorf
| ------------- | Voice: +49-89-636-46021 | Informationssysteme AG
| N I X D O R F | FAX: +49-89-636-44994 | 81730 Munich, Germany
~~~~~~~~~~~~~~~~My opinions only, of course; pgp key available on request