You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by gr...@apache.org on 2001/12/26 18:14:06 UTC
cvs commit: apache-1.3/src/support rotatelogs.c
gregames 01/12/26 09:14:06
Modified: src/os/tpf os.c
src/support rotatelogs.c
Log:
get rotatelogs to function properly on TPF
Submitted by: David McCreedy
Reviewed by: Greg Ames
Revision Changes Path
1.13 +13 -3 apache-1.3/src/os/tpf/os.c
Index: os.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/os/tpf/os.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- os.c 2001/06/22 12:43:55 1.12
+++ os.c 2001/12/26 17:14:06 1.13
@@ -203,7 +203,10 @@
array_header *env_arr = ap_table_elts ((array_header *) cld->subprocess_env);
table_entry *elts = (table_entry *) env_arr->elts;
#ifdef TPF_FORK_EXTENDED
- char *args[2];
+#define WHITE " \t\n"
+#define MAXARGC 49
+ char *arguments;
+ char *args[MAXARGC + 1];
char **envp = NULL;
pool *subpool = NULL;
@@ -267,8 +270,15 @@
fork_input.parm_data = NULL;
#ifdef TPF_FORK_EXTENDED
- args[0] = cld->filename;
- args[1] = NULL;
+ /* use a copy of cld->filename because strtok is destructive */
+ arguments = ap_pstrdup(p, cld->filename);
+ args[0] = strtok(arguments, WHITE);
+ args[MAXARGC + 1] = NULL;
+
+ for (i = 0; i < MAXARGC && args[i] ; i++) {
+ args[i + 1] = strtok(NULL, WHITE);
+ }
+
if ((pid = tpf_fork(&fork_input,
(const char **)args,
(const char **)envp)) < 0) {
1.17 +6 -0 apache-1.3/src/support/rotatelogs.c
Index: rotatelogs.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/support/rotatelogs.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- rotatelogs.c 2001/03/13 20:05:05 1.16
+++ rotatelogs.c 2001/12/26 17:14:06 1.17
@@ -28,6 +28,12 @@
time_t now;
char *szLogRoot;
+#ifdef TPF
+ /* set up signal handling to avoid default OPR-I007777 dump */
+ signal(SIGPIPE, exit);
+ signal(SIGTERM, exit);
+#endif
+
if (argc < 3) {
fprintf(stderr,
"Usage: %s <logfile> <rotation time in seconds> "