coar 98/06/16 05:19:45
Modified: src/modules/standard mod_rewrite.c Log: More style-guide cleanup (preparatory to some Vary work). Revision Changes Path 1.117 +405 -213 apache-1.3/src/modules/standard/mod_rewrite.c Index: mod_rewrite.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_rewrite.c,v retrieving revision 1.116 retrieving revision 1.117 diff -u -r1.116 -r1.117 --- mod_rewrite.c 1998/06/13 15:23:11 1.116 +++ mod_rewrite.c 1998/06/16 12:19:43 1.117 @@ -265,16 +265,21 @@ * local directives override * and anything else is inherited */ - a->rewriteloglevel = overrides->rewriteloglevel != 0 ? - overrides->rewriteloglevel : base->rewriteloglevel; - a->rewritelogfile = overrides->rewritelogfile != NULL ? - overrides->rewritelogfile : base->rewritelogfile; - a->rewritelogfp = overrides->rewritelogfp != -1 ? - overrides->rewritelogfp : base->rewritelogfp; - a->rewritelockfile = overrides->rewritelockfile != NULL ? - overrides->rewritelockfile : base->rewritelockfile; - a->rewritelockfp = overrides->rewritelockfp != -1 ? - overrides->rewritelockfp : base->rewritelockfp; + a->rewriteloglevel = overrides->rewriteloglevel != 0 + ? overrides->rewriteloglevel + : base->rewriteloglevel; + a->rewritelogfile = overrides->rewritelogfile != NULL + ? overrides->rewritelogfile + : base->rewritelogfile; + a->rewritelogfp = overrides->rewritelogfp != -1 + ? overrides->rewritelogfp + : base->rewritelogfp; + a->rewritelockfile = overrides->rewritelockfile != NULL + ? overrides->rewritelockfile + : base->rewritelockfile; + a->rewritelockfp = overrides->rewritelockfp != -1 + ? overrides->rewritelockfp + : base->rewritelockfp; a->rewritemaps = ap_append_arrays(p, overrides->rewritemaps, base->rewritemaps); a->rewriteconds = ap_append_arrays(p, overrides->rewriteconds, @@ -319,14 +324,17 @@ a->rewriteconds = ap_make_array(p, 2, sizeof(rewritecond_entry)); a->rewriterules = ap_make_array(p, 2, sizeof(rewriterule_entry)); - if (path == NULL) + if (path == NULL) { a->directory = NULL; + } else { /* make sure it has a trailing slash */ - if (path[strlen(path)-1] == '/') + if (path[strlen(path)-1] == '/') { a->directory = ap_pstrdup(p, path); - else + } + else { a->directory = ap_pstrcat(p, path, "/", NULL); + } } return (void *)a; @@ -336,7 +344,8 @@ { rewrite_perdir_conf *a, *base, *overrides; - a = (rewrite_perdir_conf *)ap_pcalloc(p, sizeof(rewrite_perdir_conf)); + a = (rewrite_perdir_conf *)ap_pcalloc(p, + sizeof(rewrite_perdir_conf)); base = (rewrite_perdir_conf *)basev; overrides = (rewrite_perdir_conf *)overridesv; @@ -371,13 +380,16 @@ { rewrite_server_conf *sconf; - sconf = (rewrite_server_conf *) - ap_get_module_config(cmd->server->module_config, &rewrite_module); + sconf = + (rewrite_server_conf *)ap_get_module_config(cmd->server->module_config, + &rewrite_module); - if (cmd->path == NULL) /* is server command */ + if (cmd->path == NULL) { /* is server command */ sconf->state = (flag ? ENGINE_ENABLED : ENGINE_DISABLED); - else /* is per-directory command */ + } + else /* is per-directory command */ { dconf->state = (flag ? ENGINE_ENABLED : ENGINE_DISABLED); + } return NULL; } @@ -391,12 +403,14 @@ sconf = (rewrite_server_conf *) ap_get_module_config(cmd->server->module_config, &rewrite_module); - if (cmd->path == NULL) /* is server command */ + if (cmd->path == NULL) { /* is server command */ err = cmd_rewriteoptions_setoption(cmd->pool, &(sconf->options), option); - else /* is per-directory command */ + } + else { /* is per-directory command */ err = cmd_rewriteoptions_setoption(cmd->pool, &(dconf->options), option); + } return err; } @@ -404,11 +418,13 @@ static const char *cmd_rewriteoptions_setoption(pool *p, int *options, char *name) { - if (strcasecmp(name, "inherit") == 0) + if (strcasecmp(name, "inherit") == 0) { *options |= OPTION_INHERIT; - else + } + else { return ap_pstrcat(p, "RewriteOptions: unknown option '", - name, "'\n", NULL); + name, "'\n", NULL); + } return NULL; } @@ -479,13 +495,16 @@ new->type = MAPTYPE_INT; new->datafile = NULL; new->checkfile = NULL; - if (strcmp(a2+4, "tolower") == 0) + if (strcmp(a2+4, "tolower") == 0) { new->func = rewrite_mapfunc_tolower; - else if (strcmp(a2+4, "toupper") == 0) + } + else if (strcmp(a2+4, "toupper") == 0) { new->func = rewrite_mapfunc_toupper; - else if (sconf->state == ENGINE_ENABLED) + } + else if (sconf->state == ENGINE_ENABLED) { return ap_pstrcat(cmd->pool, "RewriteMap: internal map not found:", a2+4, NULL); + } } else { new->type = MAPTYPE_TXT; @@ -496,9 +515,11 @@ new->fpout = -1; if (new->checkfile && (sconf->state == ENGINE_ENABLED) - && (stat(new->checkfile, &st) == -1)) - return ap_pstrcat(cmd->pool, "RewriteMap: map file or program not found:", + && (stat(new->checkfile, &st) == -1)) { + return ap_pstrcat(cmd->pool, + "RewriteMap: map file or program not found:", new->checkfile, NULL); + } return NULL; } @@ -518,12 +539,15 @@ static const char *cmd_rewritebase(cmd_parms *cmd, rewrite_perdir_conf *dconf, char *a1) { - if (cmd->path == NULL || dconf == NULL) + if (cmd->path == NULL || dconf == NULL) { return "RewriteBase: only valid in per-directory config files"; - if (a1[0] == '\0') + } + if (a1[0] == '\0') { return "RewriteBase: empty URL not allowed"; - if (a1[0] != '/') + } + if (a1[0] != '/') { return "RewriteBase: argument is not a valid URL"; + } dconf->baseurl = a1; @@ -547,15 +571,18 @@ ap_get_module_config(cmd->server->module_config, &rewrite_module); /* make a new entry in the internal temporary rewrite rule list */ - if (cmd->path == NULL) /* is server command */ + if (cmd->path == NULL) { /* is server command */ new = ap_push_array(sconf->rewriteconds); - else /* is per-directory command */ + } + else { /* is per-directory command */ new = ap_push_array(dconf->rewriteconds); + } /* parse the argument line ourself */ - if (parseargline(str, &a1, &a2, &a3)) + if (parseargline(str, &a1, &a2, &a3)) { return ap_pstrcat(cmd->pool, "RewriteCond: bad argument line '", str, "'\n", NULL); + } /* arg1: the input string */ new->input = ap_pstrdup(cmd->pool, a1); @@ -565,8 +592,10 @@ know if the regex should be compiled with ICASE!) */ new->flags = CONDFLAG_NONE; if (a3 != NULL) { - if ((err = cmd_rewritecond_parseflagfield(cmd->pool, new, a3)) != NULL) + if ((err = cmd_rewritecond_parseflagfield(cmd->pool, new, + a3)) != NULL) { return err; + } } /* arg2: the pattern @@ -580,15 +609,18 @@ /* now be careful: Under the POSIX regex library we can compile the pattern for case-insensitive matching, under the old V8 library we have to do it self via a hack */ - if (new->flags & CONDFLAG_NOCASE) + if (new->flags & CONDFLAG_NOCASE) { rc = ((regexp = ap_pregcomp(cmd->pool, cp, REG_EXTENDED|REG_ICASE)) == NULL); - else + } + else { rc = ((regexp = ap_pregcomp(cmd->pool, cp, REG_EXTENDED)) == NULL); - if (rc) + } + if (rc) { return ap_pstrcat(cmd->pool, "RewriteCond: cannot compile regular expression '", - a2, "'\n", NULL); + a2, "'\n", NULL); + } new->pattern = ap_pstrdup(cmd->pool, cp); new->regexp = regexp; @@ -608,8 +640,9 @@ char *val; const char *err; - if (str[0] != '[' || str[strlen(str)-1] != ']') + if (str[0] != '[' || str[strlen(str)-1] != ']') { return "RewriteCond: bad flag delimiters"; + } cp = str+1; str[strlen(str)-1] = ','; /* for simpler parsing */ @@ -617,8 +650,9 @@ /* skip whitespaces */ for ( ; (*cp == ' ' || *cp == '\t') && *cp != '\0'; cp++) ; - if (*cp == '\0') + if (*cp == '\0') { break; + } cp1 = cp; if ((cp2 = strchr(cp, ',')) != NULL) { cp = cp2+1; @@ -634,11 +668,13 @@ key = cp1; val = ""; } - if ((err = cmd_rewritecond_setflag(p, cfg, key, val)) != NULL) + if ((err = cmd_rewritecond_setflag(p, cfg, key, val)) != NULL) { return err; + } } - else + else { break; + } } return NULL; @@ -677,15 +713,18 @@ ap_get_module_config(cmd->server->module_config, &rewrite_module); /* make a new entry in the internal rewrite rule list */ - if (cmd->path == NULL) /* is server command */ + if (cmd->path == NULL) { /* is server command */ new = ap_push_array(sconf->rewriterules); - else /* is per-directory command */ + } + else { /* is per-directory command */ new = ap_push_array(dconf->rewriterules); + } /* parse the argument line ourself */ - if (parseargline(str, &a1, &a2, &a3)) + if (parseargline(str, &a1, &a2, &a3)) { return ap_pstrcat(cmd->pool, "RewriteRule: bad argument line '", str, "'\n", NULL); + } /* arg1: the pattern * try to compile the regexp to test if is ok @@ -696,10 +735,11 @@ new->flags |= RULEFLAG_NOTMATCH; cp++; } - if ((regexp = ap_pregcomp(cmd->pool, cp, REG_EXTENDED)) == NULL) + if ((regexp = ap_pregcomp(cmd->pool, cp, REG_EXTENDED)) == NULL) { return ap_pstrcat(cmd->pool, "RewriteRule: cannot compile regular expression '", - a1, "'\n", NULL); + a1, "'\n", NULL); + } new->pattern = ap_pstrdup(cmd->pool, cp); new->regexp = regexp; @@ -715,8 +755,10 @@ new->env[0] = NULL; new->skip = 0; if (a3 != NULL) { - if ((err = cmd_rewriterule_parseflagfield(cmd->pool, new, a3)) != NULL) + if ((err = cmd_rewriterule_parseflagfield(cmd->pool, new, + a3)) != NULL) { return err; + } } /* now, if the server or per-dir config holds an @@ -749,8 +791,9 @@ char *val; const char *err; - if (str[0] != '[' || str[strlen(str)-1] != ']') + if (str[0] != '[' || str[strlen(str)-1] != ']') { return "RewriteRule: bad flag delimiters"; + } cp = str+1; str[strlen(str)-1] = ','; /* for simpler parsing */ @@ -758,8 +801,9 @@ /* skip whitespaces */ for ( ; (*cp == ' ' || *cp == '\t') && *cp != '\0'; cp++) ; - if (*cp == '\0') + if (*cp == '\0') { break; + } cp1 = cp; if ((cp2 = strchr(cp, ',')) != NULL) { cp = cp2+1; @@ -775,11 +819,13 @@ key = cp1; val = ""; } - if ((err = cmd_rewriterule_setflag(p, cfg, key, val)) != NULL) + if ((err = cmd_rewriterule_setflag(p, cfg, key, val)) != NULL) { return err; + } } - else + else { break; + } } return NULL; @@ -795,17 +841,22 @@ || strcasecmp(key, "R") == 0 ) { cfg->flags |= RULEFLAG_FORCEREDIRECT; if (strlen(val) > 0) { - if (strcasecmp(val, "permanent") == 0) + if (strcasecmp(val, "permanent") == 0) { status = HTTP_MOVED_PERMANENTLY; - else if (strcasecmp(val, "temp") == 0) + } + else if (strcasecmp(val, "temp") == 0) { status = HTTP_MOVED_TEMPORARILY; - else if (strcasecmp(val, "seeother") == 0) + } + else if (strcasecmp(val, "seeother") == 0) { status = HTTP_SEE_OTHER; - else if (isdigit(*val)) + } + else if (isdigit(*val)) { status = atoi(val); - if (!is_HTTP_REDIRECT(status)) + } + if (!is_HTTP_REDIRECT(status)) { return "RewriteRule: invalid HTTP response code " "for flag 'R'"; + } cfg->forced_responsecode = status; } } @@ -834,8 +885,9 @@ cfg->env[i] = ap_pstrdup(p, val); cfg->env[i+1] = NULL; } - else - return "RewriteRule: to many environment flags 'E'"; + else { + return "RewriteRule: too many environment flags 'E'"; + } } else if ( strcasecmp(key, "nosubreq") == 0 || strcasecmp(key, "NS") == 0 ) { @@ -958,14 +1010,16 @@ * retrieve the config structures */ sconf = r->server->module_config; - conf = (rewrite_server_conf *)ap_get_module_config(sconf, &rewrite_module); + conf = (rewrite_server_conf *)ap_get_module_config(sconf, + &rewrite_module); /* * only do something under runtime if the engine is really enabled, * else return immediately! */ - if (conf->state == ENGINE_DISABLED) + if (conf->state == ENGINE_DISABLED) { return DECLINED; + } /* * check for the ugly API case of a virtual host section where no @@ -975,8 +1029,9 @@ * config has a disabled rewriting engine we are lucky because can * just stop operating now. */ - if (conf->server != r->server) + if (conf->server != r->server) { return DECLINED; + } /* * add the SCRIPT_URL variable to the env. this is a bit complicated @@ -986,10 +1041,12 @@ if (r->main == NULL) { var = ap_pstrcat(r->pool, "REDIRECT_", ENVVAR_SCRIPT_URL, NULL); var = ap_table_get(r->subprocess_env, var); - if (var == NULL) + if (var == NULL) { ap_table_setn(r->subprocess_env, ENVVAR_SCRIPT_URL, r->uri); - else + } + else { ap_table_setn(r->subprocess_env, ENVVAR_SCRIPT_URL, var); + } } else { var = ap_table_get(r->main->subprocess_env, ENVVAR_SCRIPT_URL); @@ -1003,8 +1060,9 @@ /* add the canonical URI of this URL */ thisserver = ap_get_server_name(r); port = ap_get_server_port(r); - if (ap_is_default_port(port, r)) + if (ap_is_default_port(port, r)) { thisport = ""; + } else { ap_snprintf(buf, sizeof(buf), ":%u", port); thisport = buf; @@ -1047,11 +1105,16 @@ /* make sure the QUERY_STRING and * PATH_INFO parts get incorporated */ - if (r->path_info != NULL) - r->filename = ap_pstrcat(r->pool, r->filename, r->path_info, NULL); + if (r->path_info != NULL) { + r->filename = ap_pstrcat(r->pool, r->filename, + r->path_info, NULL); + } if (r->args != NULL && - r->uri == r->unparsed_uri /* see proxy_http:proxy_http_canon() */) - r->filename = ap_pstrcat(r->pool, r->filename, "?", r->args, NULL); + r->uri == r->unparsed_uri) { + /* see proxy_http:proxy_http_canon() */ + r->filename = ap_pstrcat(r->pool, r->filename, + "?", r->args, NULL); + } /* now make sure the request gets handled by the proxy handler */ r->proxyreq = 1; @@ -1087,16 +1150,19 @@ } /* append the QUERY_STRING part */ - if (r->args != NULL) - r->filename = ap_pstrcat(r->pool, r->filename, "?", r->args, NULL); + if (r->args != NULL) { + r->filename = ap_pstrcat(r->pool, r->filename, + "?", r->args, NULL); + } /* determine HTTP redirect response code */ if (is_HTTP_REDIRECT(r->status)) { n = r->status; r->status = HTTP_OK; /* make Apache kernel happy */ } - else + else { n = REDIRECT; + } /* now do the redirection */ ap_table_setn(r->headers_out, "Location", r->filename); @@ -1136,8 +1202,9 @@ rewritelog(r, 2, "local path result: %s", r->filename); /* the filename has to start with a slash! */ - if (r->filename[0] != '/') + if (r->filename[0] != '/') { return BAD_REQUEST; + } /* if there is no valid prefix, we have * to emulate the translator from the core and @@ -1170,13 +1237,15 @@ } if (r->server->path && !strncmp(r->filename, r->server->path, - r->server->pathlen)) + r->server->pathlen)) { r->filename = ap_pstrcat(r->pool, docroot, (r->filename + - r->server->pathlen), NULL); - else + r->server->pathlen), NULL); + } + else { r->filename = ap_pstrcat(r->pool, docroot, - r->filename, NULL); + r->filename, NULL); + } rewritelog(r, 2, "prefixed with document_root to %s", r->filename); } @@ -1207,8 +1276,9 @@ /* now check if we have to force a MIME-type */ t = ap_table_get(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR); - if (t == NULL) + if (t == NULL) { return DECLINED; + } else { rewritelog(r, 1, "force filename %s to have MIME-type '%s'", r->filename, t); @@ -1237,21 +1307,24 @@ int n; char *ofilename; - dconf = (rewrite_perdir_conf *) - ap_get_module_config(r->per_dir_config, &rewrite_module); + dconf = (rewrite_perdir_conf *)ap_get_module_config(r->per_dir_config, + &rewrite_module); /* if there is no per-dir config we return immediately */ - if (dconf == NULL) + if (dconf == NULL) { return DECLINED; + } /* we shouldn't do anything in subrequests */ - if (r->main != NULL) + if (r->main != NULL) { return DECLINED; + } /* if there are no real (i.e. no RewriteRule directives!) per-dir config of us, we return also immediately */ - if (dconf->directory == NULL) + if (dconf->directory == NULL) { return DECLINED; + } /* * only do something under runtime if the engine is really enabled, @@ -1269,8 +1342,9 @@ /* FollowSymLinks is given, but the user can * still turn off the rewriting engine */ - if (dconf->state == ENGINE_DISABLED) - return DECLINED; + if (dconf->state == ENGINE_DISABLED) { + return DECLINED; + } } /* @@ -1294,9 +1368,12 @@ * (r->path_info was already appended by the * rewriting engine because of the per-dir context!) */ - if (r->args != NULL && - r->uri == r->unparsed_uri /* see proxy_http:proxy_http_canon() */) - r->filename = ap_pstrcat(r->pool, r->filename, "?", r->args, NULL); + if (r->args != NULL + && r->uri == r->unparsed_uri) { + /* see proxy_http:proxy_http_canon() */ + r->filename = ap_pstrcat(r->pool, r->filename, + "?", r->args, NULL); + } /* now make sure the request gets handled by the proxy handler */ r->proxyreq = 1; @@ -1327,14 +1404,17 @@ /* skip '://' */ cp += 3; if ((cp = strchr(cp, '/')) != NULL) { - rewritelog(r, 2, - "[per-dir %s] trying to replace prefix %s with %s", - dconf->directory, dconf->directory, dconf->baseurl); + rewritelog(r, 2, + "[per-dir %s] trying to replace " + "prefix %s with %s", + dconf->directory, dconf->directory, + dconf->baseurl); cp2 = subst_prefix_path(r, cp, dconf->directory, dconf->baseurl); if (strcmp(cp2, cp) != 0) { *cp = '\0'; - r->filename = ap_pstrcat(r->pool, r->filename, cp2, NULL); + r->filename = ap_pstrcat(r->pool, r->filename, + cp2, NULL); } } } @@ -1358,16 +1438,19 @@ } /* append the QUERY_STRING part */ - if (r->args != NULL) - r->filename = ap_pstrcat(r->pool, r->filename, "?", r->args, NULL); + if (r->args != NULL) { + r->filename = ap_pstrcat(r->pool, r->filename, + "?", r->args, NULL); + } /* determine HTTP redirect response code */ if (is_HTTP_REDIRECT(r->status)) { n = r->status; r->status = HTTP_OK; /* make Apache kernel happy */ } - else + else { n = REDIRECT; + } /* now do the redirection */ ap_table_setn(r->headers_out, "Location", r->filename); @@ -1377,15 +1460,15 @@ } else if (strlen(r->filename) > 10 && strncmp(r->filename, "forbidden:", 10) == 0) { - /* This URLs is forced to be forbidden for the requester */ + /* This URL is forced to be forbidden for the requester */ return FORBIDDEN; } else if (strlen(r->filename) > 5 && strncmp(r->filename, "gone:", 5) == 0) { - /* This URLs is forced to be gone */ + /* This URL is forced to be gone */ return HTTP_GONE; } - else { + else { /* it was finally rewritten to a local path */ /* if someone used the PASSTHROUGH flag in per-dir @@ -1398,8 +1481,9 @@ } /* the filename has to start with a slash! */ - if (r->filename[0] != '/') + if (r->filename[0] != '/') { return BAD_REQUEST; + } /* Check for deadlooping: * At this point we KNOW that at least one rewriting @@ -1445,16 +1529,18 @@ } if (strncmp(r->filename, prefix, l) == 0) { rewritelog(r, 2, - "[per-dir %s] strip document_root prefix: %s -> %s", - dconf->directory, r->filename, r->filename+l); - r->filename = ap_pstrdup(r->pool, r->filename+l); + "[per-dir %s] strip document_root " + "prefix: %s -> %s", + dconf->directory, r->filename, + r->filename+l); + r->filename = ap_pstrdup(r->pool, r->filename+l); } } } /* now initiate the internal redirect */ rewritelog(r, 1, "[per-dir %s] internal redirect with %s " - "[INTERNAL REDIRECT]", dconf->directory, r->filename); + "[INTERNAL REDIRECT]", dconf->directory, r->filename); r->filename = ap_pstrcat(r->pool, "redirect:", r->filename, NULL); r->handler = "redirect-handler"; return OK; @@ -1479,8 +1565,9 @@ static int handler_redirect(request_rec *r) { /* just make sure that we are really meant! */ - if (strncmp(r->filename, "redirect:", 9) != 0) + if (strncmp(r->filename, "redirect:", 9) != 0) { return DECLINED; + } /* now do the internal redirect */ ap_internal_redirect(ap_pstrcat(r->pool, r->filename+9, @@ -1530,8 +1617,9 @@ if (r->main != NULL && (p->flags & RULEFLAG_IGNOREONSUBREQ || p->flags & RULEFLAG_PROXY || - p->flags & RULEFLAG_FORCEREDIRECT )) + p->flags & RULEFLAG_FORCEREDIRECT )) { continue; + } /* * Apply the current rule. @@ -1541,8 +1629,9 @@ /* * Indicate a change if this was not a match-only rule. */ - if (rc != 2) + if (rc != 2) { changed = 1; + } /* * Pass-Through Feature (`RewriteRule .. .. [PT]'): @@ -1586,17 +1675,20 @@ * Stop processing also on proxy pass-through and * last-rule and new-round flags. */ - if (p->flags & RULEFLAG_PROXY) + if (p->flags & RULEFLAG_PROXY) { break; - if (p->flags & RULEFLAG_LASTRULE) + } + if (p->flags & RULEFLAG_LASTRULE) { break; + } /* * On "new-round" flag we just start from the top of * the rewriting ruleset again. */ - if (p->flags & RULEFLAG_NEWROUND) + if (p->flags & RULEFLAG_NEWROUND) { goto loop; + } /* * If we are forced to skip N next rules, do it now. @@ -1686,16 +1778,19 @@ * Try to match the URI against the RewriteRule pattern * and exit immeddiately if it didn't apply. */ - if (perdir == NULL) + if (perdir == NULL) { rewritelog(r, 3, "applying pattern '%s' to uri '%s'", p->pattern, uri); - else + } + else { rewritelog(r, 3, "[per-dir %s] applying pattern '%s' to uri '%s'", perdir, p->pattern, uri); + } rc = (regexec(regexp, uri, regexp->re_nsub+1, regmatch, 0) == 0); if (! (( rc && !(p->flags & RULEFLAG_NOTMATCH)) || - (!rc && (p->flags & RULEFLAG_NOTMATCH)) ) ) + (!rc && (p->flags & RULEFLAG_NOTMATCH)) ) ) { return 0; + } /* * Else create the RewriteRule `regsubinfo' structure which @@ -1771,8 +1866,9 @@ } } /* if any condition fails the complete rule fails */ - if (failed) + if (failed) { return 0; + } /* * If this is a pure matching rule (`RewriteRule <pat> -') @@ -1840,10 +1936,12 @@ /* 5. expand ${...} (RewriteMap lookups) */ expand_map_lookups(r, newuri, sizeof(newuri)); /* and log the result... */ - if (perdir == NULL) + if (perdir == NULL) { rewritelog(r, 2, "rewrite %s -> %s", uri, newuri); - else + } + else { rewritelog(r, 2, "[per-dir %s] rewrite %s -> %s", perdir, uri, newuri); + } /* * Additionally do expansion for the environment variable @@ -1900,11 +1998,13 @@ */ if (p->flags & RULEFLAG_PROXY) { fully_qualify_uri(r); - if (perdir == NULL) + if (perdir == NULL) { rewritelog(r, 2, "forcing proxy-throughput with %s", r->filename); - else + } + else { rewritelog(r, 2, "[per-dir %s] forcing proxy-throughput with %s", perdir, r->filename); + } r->filename = ap_pstrcat(r->pool, "proxy:", r->filename, NULL); return 1; } @@ -1917,13 +2017,15 @@ */ if (p->flags & RULEFLAG_FORCEREDIRECT) { fully_qualify_uri(r); - if (perdir == NULL) + if (perdir == NULL) { rewritelog(r, 2, "explicitly forcing redirect with %s", r->filename); - else + } + else { rewritelog(r, 2, "[per-dir %s] explicitly forcing redirect with %s", perdir, r->filename); + } r->status = p->forced_responsecode; return 1; } @@ -1949,14 +2051,16 @@ || (i > 8 && strncasecmp(r->filename, "https://", 8) == 0) || (i > 9 && strncasecmp(r->filename, "gopher://", 9) == 0) || (i > 6 && strncasecmp(r->filename, "ftp://", 6) == 0)) { - if (perdir == NULL) + if (perdir == NULL) { rewritelog(r, 2, "implicitly forcing redirect (rc=%d) with %s", p->forced_responsecode, r->filename); - else + } + else { rewritelog(r, 2, "[per-dir %s] implicitly forcing redirect " "(rc=%d) with %s", perdir, p->forced_responsecode, r->filename); + } r->status = p->forced_responsecode; return 1; } @@ -1985,13 +2089,15 @@ if (p->forced_mimetype != NULL) { ap_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR, p->forced_mimetype); - if (perdir == NULL) + if (perdir == NULL) { rewritelog(r, 2, "remember %s to have MIME-type '%s'", r->filename, p->forced_mimetype); - else + } + else { rewritelog(r, 2, "[per-dir %s] remember %s to have MIME-type '%s'", perdir, r->filename, p->forced_mimetype); + } } /* @@ -2032,26 +2138,34 @@ rc = 0; if (strcmp(p->pattern, "-f") == 0) { - if (stat(input, &sb) == 0) - if (S_ISREG(sb.st_mode)) + if (stat(input, &sb) == 0) { + if (S_ISREG(sb.st_mode)) { rc = 1; + } + } } - else if (strcmp(p->pattern, "-s") == 0) { - if (stat(input, &sb) == 0) - if (S_ISREG(sb.st_mode) && sb.st_size > 0) + else if (strcmp(p->pattern, "-s ") == 0) { + if (stat(input, &sb) == 0) { + if (S_ISREG(sb.st_mode) && sb.st_size > 0) { rc = 1; + } + } } else if (strcmp(p->pattern, "-l") == 0) { #if !defined(__EMX__) && !defined(WIN32) - if (lstat(input, &sb) == 0) - if (S_ISLNK(sb.st_mode)) + if (lstat(input, &sb) == 0) { + if (S_ISLNK(sb.st_mode)) { rc = 1; + } + } #endif } else if (strcmp(p->pattern, "-d") == 0) { - if (stat(input, &sb) == 0) - if (S_ISDIR(sb.st_mode)) + if (stat(input, &sb) == 0) { + if (S_ISDIR(sb.st_mode)) { rc = 1; + } + } } else if (strcmp(p->pattern, "-U") == 0) { /* avoid infinite subrequest recursion */ @@ -2094,8 +2208,9 @@ /* file exists for any result up to 2xx, no redirects */ if (rsub->status < 300 && /* double-check that file exists since default result is 200 */ - stat(rsub->filename, &sb) == 0) + stat(rsub->filename, &sb) == 0) { rc = 1; + } /* log it */ rewritelog(r, 5, "RewriteCond file (-F) check: path=%s " @@ -2113,10 +2228,12 @@ rc = (compare_lexicography(input, p->pattern+1) == -1 ? 1 : 0); } else if (strlen(p->pattern) > 1 && *(p->pattern) == '=') { - if (strcmp(p->pattern+1, "\"\"") == 0) + if (strcmp(p->pattern+1, "\"\"") == 0) { rc = (*input == '\0'); - else + } + else { rc = (strcmp(input, p->pattern+1) == 0 ? 1 : 0); + } } else { /* it is really a regexp pattern, so apply it */ @@ -2134,8 +2251,9 @@ } /* if this is a non-matching regexp, just negate the result */ - if (p->flags & CONDFLAG_NOTMATCH) + if (p->flags & CONDFLAG_NOTMATCH) { rc = !rc; + } rewritelog(r, 4, "RewriteCond: input='%s' pattern='%s%s' => %s", input, (p->flags & CONDFLAG_NOTMATCH ? "!" : ""), @@ -2170,18 +2288,21 @@ if (q != NULL) { olduri = ap_pstrdup(r->pool, r->filename); *q++ = '\0'; - if (qsappend) + if (qsappend) { r->args = ap_pstrcat(r->pool, q, "&", r->args, NULL); - else + } + else { r->args = ap_pstrdup(r->pool, q); + } if (strlen(r->args) == 0) { r->args = NULL; rewritelog(r, 3, "split uri=%s -> uri=%s, args=<none>", olduri, r->filename); } else { - if (r->args[strlen(r->args)-1] == '&') + if (r->args[strlen(r->args)-1] == '&') { r->args[strlen(r->args)-1] = '\0'; + } rewritelog(r, 3, "split uri=%s -> uri=%s, args=%s", olduri, r->filename, r->args); } @@ -2293,21 +2414,24 @@ thisserver = ap_get_server_name(r); port = ap_get_server_port(r); - if (ap_is_default_port(port,r)) + if (ap_is_default_port(port,r)) { thisport = ""; + } else { ap_snprintf(buf, sizeof(buf), ":%u", port); thisport = buf; } - if (r->filename[0] == '/') + if (r->filename[0] == '/') { r->filename = ap_psprintf(r->pool, "%s://%s%s%s", ap_http_method(r), thisserver, thisport, r->filename); - else + } + else { r->filename = ap_psprintf(r->pool, "%s://%s%s/%s", ap_http_method(r), thisserver, thisport, r->filename); + } } return; } @@ -2324,16 +2448,19 @@ { int i; - if (bri->nsub < 1) + if (bri->nsub < 1) { return; + } if (c != '$') { /* safe existing $N backrefs and replace <c>N with $N backrefs */ for (i = 0; buf[i] != '\0' && i < nbuf; i++) { - if (buf[i] == '$' && (buf[i+1] >= '0' && buf[i+1] <= '9')) + if (buf[i] == '$' && (buf[i+1] >= '0' && buf[i+1] <= '9')) { buf[i++] = '\001'; - else if (buf[i] == c && (buf[i+1] >= '0' && buf[i+1] <= '9')) + } + else if (buf[i] == c && (buf[i+1] >= '0' && buf[i+1] <= '9')) { buf[i++] = '$'; + } } } @@ -2343,9 +2470,11 @@ if (c != '$') { /* restore the original $N backrefs */ - for (i = 0; buf[i] != '\0' && i < nbuf; i++) - if (buf[i] == '\001' && (buf[i+1] >= '0' && buf[i+1] <= '9')) + for (i = 0; buf[i] != '\0' && i < nbuf; i++) { + if (buf[i] == '\001' && (buf[i+1] >= '0' && buf[i+1] <= '9')) { buf[i++] = '$'; + } + } } } @@ -2368,9 +2497,10 @@ if (uri != NULL && strlen(uri) > 2 && uri[0] == '/' && uri[1] == '~') { /* cut out the username */ for (j = 0, i = 2; j < sizeof(user)-1 - && uri[i] != '\0' - && uri[i] != '/' ; ) + && uri[i] != '\0' + && uri[i] != '/' ; ) { user[j++] = uri[i++]; + } user[j] = '\0'; /* lookup username in systems passwd file */ @@ -2378,8 +2508,9 @@ /* ok, user was found, so expand the ~user string */ if (uri[i] != '\0') { /* ~user/anything... has to be expanded */ - if (pw->pw_dir[strlen(pw->pw_dir)-1] == '/') + if (pw->pw_dir[strlen(pw->pw_dir)-1] == '/') { pw->pw_dir[strlen(pw->pw_dir)-1] = '\0'; + } newuri = ap_pstrcat(r->pool, pw->pw_dir, uri+i, NULL); } else { @@ -2684,13 +2815,15 @@ char *curkey; char *curval; - if ((fp = ap_pfopen(r->pool, file, "r")) == NULL) + if ((fp = ap_pfopen(r->pool, file, "r")) == NULL) { return NULL; + } ap_cpystrn(output, MAPFILE_OUTPUT, sizeof(output)); while (fgets(line, sizeof(line), fp) != NULL) { - if (line[strlen(line)-1] == '\n') + if (line[strlen(line)-1] == '\n') { line[strlen(line)-1] = '\0'; + } if (regexec(lookup_map_txtfile_regexp, line, lookup_map_txtfile_regexp->re_nsub+1, lookup_map_txtfile_regmatch, 0) == 0) { @@ -2749,8 +2882,9 @@ * In this case using such a map (usually in per-dir context) * is useless because it is not available. */ - if (fpin == -1 || fpout == -1) + if (fpin == -1 || fpout == -1) { return NULL; + } /* take the lock */ rewritelock_alloc(r); @@ -2762,8 +2896,9 @@ /* read in the response value */ i = 0; while (read(fpout, &c, 1) == 1 && (i < LONG_STRING_LEN-1)) { - if (c == '\n') + if (c == '\n') { break; + } buf[i++] = c; } buf[i] = '\0'; @@ -2771,10 +2906,12 @@ /* give the lock back */ rewritelock_free(r); - if (strcasecmp(buf, "NULL") == 0) + if (strcasecmp(buf, "NULL") == 0) { return NULL; - else + } + else { return ap_pstrdup(r->pool, buf); + } } static char *lookup_map_internal(request_rec *r, @@ -2790,8 +2927,10 @@ { char *value, *cp; - for (cp = value = ap_pstrdup(r->pool, key); cp != NULL && *cp != '\0'; cp++) + for (cp = value = ap_pstrdup(r->pool, key); cp != NULL && *cp != '\0'; + cp++) { *cp = toupper(*cp); + } return value; } @@ -2799,8 +2938,10 @@ { char *value, *cp; - for (cp = value = ap_pstrdup(r->pool, key); cp != NULL && *cp != '\0'; cp++) + for (cp = value = ap_pstrdup(r->pool, key); cp != NULL && *cp != '\0'; + cp++) { *cp = tolower(*cp); + } return value; } @@ -2835,23 +2976,28 @@ int n, i, k; /* count number of distinct values */ - for (n = 1, i = 0; value[i] != '\0'; i++) - if (value[i] == '|') + for (n = 1, i = 0; value[i] != '\0'; i++) { + if (value[i] == '|') { n++; + } + } /* when only one value we have no option to choose */ - if (n == 1) + if (n == 1) { return value; + } /* else randomly select one */ k = rewrite_rand(1, n); /* and grep it out */ for (n = 1, i = 0; value[i] != '\0'; i++) { - if (n == k) + if (n == k) { break; - if (value[i] == '|') + } + if (value[i] == '|') { n++; + } } buf = ap_pstrdup(r->pool, &value[i]); for (i = 0; buf[i] != '\0' && buf[i] != '|'; i++) @@ -2884,12 +3030,15 @@ conf = ap_get_module_config(s->module_config, &rewrite_module); - if (conf->rewritelogfile == NULL) + if (conf->rewritelogfile == NULL) { return; - if (*(conf->rewritelogfile) == '\0') + } + if (*(conf->rewritelogfile) == '\0') { return; - if (conf->rewritelogfp > 0) + } + if (conf->rewritelogfp > 0) { return; /* virtual log shared w/ main server */ + } fname = ap_server_root_relative(p, conf->rewritelogfile); @@ -2906,6 +3055,7 @@ if ((conf->rewritelogfp = ap_popenf(p, fname, rewritelog_flags, rewritelog_mode)) < 0) { ap_log_error(APLOG_MARK, APLOG_ERR, s, + "mod_rewrite: could not open RewriteLog " "file %s", fname); exit(1); @@ -2933,15 +3083,19 @@ conf = ap_get_module_config(r->server->module_config, &rewrite_module); conn = r->connection; - if (conf->rewritelogfp < 0) + if (conf->rewritelogfp < 0) { return; - if (conf->rewritelogfile == NULL) + } + if (conf->rewritelogfile == NULL) { return; - if (*(conf->rewritelogfile) == '\0') + } + if (*(conf->rewritelogfile) == '\0') { return; + } - if (level > conf->rewriteloglevel) + if (level > conf->rewriteloglevel) { return; + } if (conn->user == NULL) { ruser = "-"; @@ -2954,9 +3108,10 @@ } rhost = ap_get_remote_host(conn, r->server->module_config, - REMOTE_NOLOOKUP); - if (rhost == NULL) + REMOTE_NOLOOKUP); + if (rhost == NULL) { rhost = "UNKNOWN-HOST"; + } str1 = ap_pstrcat(r->pool, rhost, " ", (conn->remote_logname != NULL ? @@ -2964,17 +3119,22 @@ ruser, NULL); ap_vsnprintf(str2, sizeof(str2), text, ap); - if (r->main == NULL) + if (r->main == NULL) { strcpy(type, "initial"); - else + } + else { strcpy(type, "subreq"); + } - for (i = 0, req = r; req->prev != NULL; req = req->prev) + for (i = 0, req = r; req->prev != NULL; req = req->prev) { i++; - if (i == 0) + } + if (i == 0) { redir[0] = '\0'; - else + } + else { ap_snprintf(redir, sizeof(redir), "/redir#%d", i); + } ap_snprintf(str3, sizeof(str3), "%s %s [%s/sid#%lx][rid#%lx/%s%s] (%d) %s\n", str1, @@ -2999,8 +3159,9 @@ t = ap_get_gmtoff(&timz); sign = (timz < 0 ? '-' : '+'); - if(timz < 0) + if (timz < 0) { timz = -timz; + } strftime(tstr, 80, "[%d/%b/%Y:%H:%M:%S ", t); ap_snprintf(tstr + strlen(tstr), 80-strlen(tstr), "%c%.2d%.2d]", @@ -3033,8 +3194,9 @@ /* only operate if a lockfile is used */ if (conf->rewritelockfile == NULL - || *(conf->rewritelockfile) == '\0') + || *(conf->rewritelockfile) == '\0') { return; + } /* fixup the path, especially for rewritelock_remove() */ conf->rewritelockfile = ap_server_root_relative(p, conf->rewritelockfile); @@ -3060,8 +3222,9 @@ /* only operate if a lockfile is used */ if (conf->rewritelockfile == NULL - || *(conf->rewritelockfile) == '\0') + || *(conf->rewritelockfile) == '\0') { return; + } /* open the lockfile (once per child) to get a unique fd */ if ((conf->rewritelockfp = ap_popenf(p, conf->rewritelockfile, @@ -3086,8 +3249,9 @@ /* only operate if a lockfile is used */ if (conf->rewritelockfile == NULL - || *(conf->rewritelockfile) == '\0') + || *(conf->rewritelockfile) == '\0') { return; + } /* remove the lockfile */ unlink(conf->rewritelockfile); @@ -3099,8 +3263,9 @@ conf = ap_get_module_config(r->server->module_config, &rewrite_module); - if (conf->rewritelockfp != -1) + if (conf->rewritelockfp != -1) { fd_lock(r, conf->rewritelockfp); + } return; } @@ -3110,8 +3275,9 @@ conf = ap_get_module_config(r->server->module_config, &rewrite_module); - if (conf->rewritelockfp != -1) + if (conf->rewritelockfp != -1) { fd_unlock(r, conf->rewritelockfp); + } return; } @@ -3141,20 +3307,23 @@ /* If the engine isn't turned on, * don't even try to do anything. */ - if (conf->state == ENGINE_DISABLED) + if (conf->state == ENGINE_DISABLED) { return; + } rewritemaps = conf->rewritemaps; entries = (rewritemap_entry *)rewritemaps->elts; for (i = 0; i < rewritemaps->nelts; i++) { map = &entries[i]; - if (map->type != MAPTYPE_PRG) + if (map->type != MAPTYPE_PRG) { continue; + } if (map->datafile == NULL || *(map->datafile) == '\0' || map->fpin != -1 - || map->fpout != -1 ) + || map->fpout != -1 ) { continue; + } fpin = NULL; fpout = NULL; rc = ap_spawn_child(p, rewritemap_program_child, @@ -3241,8 +3410,9 @@ { char *newbuf; newbuf = expand_variables(r, buf); - if (strcmp(newbuf, buf) != 0) + if (strcmp(newbuf, buf) != 0) { ap_cpystrn(buf, newbuf, buf_len); + } return; } @@ -3439,11 +3609,13 @@ /* first try the internal Apache notes structure */ result = ap_table_get(r->notes, var+4); /* second try the internal Apache env structure */ - if (result == NULL) + if (result == NULL) { result = ap_table_get(r->subprocess_env, var+4); + } /* third try the external OS env */ - if (result == NULL) + if (result == NULL) { result = getenv(var+4); + } } #define LOOKAHEAD(subrecfunc) \ @@ -3517,10 +3689,12 @@ } #endif /* ndef WIN32 */ - if (result == NULL) + if (result == NULL) { return ap_pstrdup(r->pool, ""); - else + } + else { return ap_pstrdup(r->pool, result); + } } static char *lookup_header(request_rec *r, const char *name) @@ -3532,10 +3706,12 @@ hdrs_arr = table_elts(r->headers_in); hdrs = (table_entry *)hdrs_arr->elts; for (i = 0; i < hdrs_arr->nelts; ++i) { - if (hdrs[i].key == NULL) - continue; - if (strcasecmp(hdrs[i].key, name) == 0) - return hdrs[i].val; + if (hdrs[i].key == NULL) { + continue; + } + if (strcasecmp(hdrs[i].key, name) == 0) { + return hdrs[i].val; + } } return NULL; } @@ -3580,15 +3756,18 @@ cacheentry *ce; ce = retrieve_cache_string(c, res, key); - if (ce == NULL) + if (ce == NULL) { return NULL; + } if (mode & CACHEMODE_TS) { - if (t != ce->time) + if (t != ce->time) { return NULL; + } } else if (mode & CACHEMODE_TTL) { - if (t > ce->time) + if (t > ce->time) { return NULL; + } } return ap_pstrdup(c->pool, ce->value); } @@ -3729,8 +3908,9 @@ int isquoted; #define SKIP_WHITESPACE(cp) \ - for ( ; *cp == ' ' || *cp == '\t'; ) \ - cp++; + for ( ; *cp == ' ' || *cp == '\t'; ) { \ + cp++; \ + }; #define CHECK_QUOTATION(cp,isquoted) \ isquoted = 0; \ @@ -3747,8 +3927,9 @@ continue; \ } \ if ( (!isquoted && (*cp == ' ' || *cp == '\t')) \ - || (isquoted && *cp == '"') ) \ + || (isquoted && *cp == '"') ) { \ break; \ + } \ } cp = str; @@ -3758,8 +3939,9 @@ CHECK_QUOTATION(cp, isquoted); *a1 = cp; DETERMINE_NEXTSTRING(cp, isquoted); - if (*cp == '\0') + if (*cp == '\0') { return 1; + } *cp++ = '\0'; SKIP_WHITESPACE(cp); @@ -3825,14 +4007,18 @@ char *cp; ap_cpystrn(curpath, path, sizeof(curpath)); - if (curpath[0] != '/') + if (curpath[0] != '/') { return 0; - if ((cp = strchr(curpath+1, '/')) != NULL) + } + if ((cp = strchr(curpath+1, '/')) != NULL) { *cp = '\0'; - if (stat(curpath, sb) == 0) + } + if (stat(curpath, sb) == 0) { return 1; - else + } + else { return 0; + } } @@ -3859,13 +4045,15 @@ lock_it.l_pid = 0; /* pid not actually interesting */ while ( ((rc = fcntl(fd, F_SETLKW, &lock_it)) < 0) - && (errno == EINTR) ) + && (errno == EINTR) ) { continue; + } #endif #ifdef USE_FLOCK while ( ((rc = flock(fd, LOCK_EX)) < 0) - && (errno == EINTR) ) + && (errno == EINTR) ) { continue; + } #endif #ifdef USE_LOCKING /* Lock the first byte, always, assume we want to append @@ -3925,15 +4113,19 @@ n1 = strlen(cpNum1); n2 = strlen(cpNum2); - if (n1 > n2) + if (n1 > n2) { return 1; - if (n1 < n2) + } + if (n1 < n2) { return -1; + } for (i = 0; i < n1; i++) { - if (cpNum1[i] > cpNum2[i]) + if (cpNum1[i] > cpNum2[i]) { return 1; - if (cpNum1[i] < cpNum2[i]) + } + if (cpNum1[i] < cpNum2[i]) { return -1; + } } return 0; }