APACHE 2.0 STATUS: -*-text-*-
-Last modified at [$Date: 2003/07/31 23:15:12 $]
+Last modified at [$Date: 2003/07/31 23:43:36 $]
Release:
modules/mappers/mod_rewrite.c: r1.162
+1: nd, trawick (?)
- * mod_rewrite: don't exit(1) if the logfile could not be opened. Return
- internal server error instead to shutdown cleanly.
- modules/mappers/mod_rewrite.c: r1.191
- +1: nd, trawick, stoddard
-
* Install config.nice to make minor version upgrades easier.
Makefile.in: r1.136
+1: slive, trawick, erikabele
* - open the RewriteMap prg:xxx programs
*/
for (; s; s = s->next) {
- open_rewritelog(s, p);
+ if (!open_rewritelog(s, p)) {
+ return HTTP_INTERNAL_SERVER_ERROR;
+ }
+
if (!first_time) {
if (run_rewritemap_programs(s, p) != APR_SUCCESS) {
return HTTP_INTERNAL_SERVER_ERROR;
*/
-static void open_rewritelog(server_rec *s, apr_pool_t *p)
+static int open_rewritelog(server_rec *s, apr_pool_t *p)
{
rewrite_server_conf *conf;
const char *fname;
conf = ap_get_module_config(s->module_config, &rewrite_module);
- if (conf->rewritelogfile == NULL) {
- return;
- }
- if (*(conf->rewritelogfile) == '\0') {
- return;
- }
- if (conf->rewritelogfp != NULL) {
- return; /* virtual log shared w/ main server */
+ /* - no logfile configured
+ * - logfilename empty
+ * - virtual log shared w/ main server
+ */
+ if (!conf->rewritelogfile || !*conf->rewritelogfile || conf->rewritelogfp) {
+ return 1;
}
if (*conf->rewritelogfile == '|') {
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
"mod_rewrite: could not open reliable pipe "
"to RewriteLog filter %s", conf->rewritelogfile+1);
- exit(1);
+ return 0;
}
conf->rewritelogfp = ap_piped_log_write_fd(pl);
}
ap_log_error(APLOG_MARK, APLOG_ERR, APR_EBADPATH, s,
"mod_rewrite: Invalid RewriteLog "
"path %s", conf->rewritelogfile);
- exit(1);
+ return 0;
}
if ((rc = apr_file_open(&conf->rewritelogfp, fname,
rewritelog_flags, rewritelog_mode, p))
ap_log_error(APLOG_MARK, APLOG_ERR, rc, s,
"mod_rewrite: could not open RewriteLog "
"file %s", fname);
- exit(1);
+ return 0;
}
}
- return;
+
+ return 1;
}
static void rewritelog(request_rec *r, int level, const char *text, ...)
static int rewrite_rand(int l, int h);
/* rewriting logfile support */
-static void open_rewritelog(server_rec *s, apr_pool_t *p);
+static int open_rewritelog(server_rec *s, apr_pool_t *p);
static void rewritelog(request_rec *r, int level, const char *text, ...)
__attribute__((format(printf,3,4)));
static char *current_logtime(request_rec *r);