You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Brian Behlendorf <br...@hyperreal.com> on 1997/01/10 10:34:49 UTC

cvs commit: apache/src Configure conf.h http_log.c mod_log_agent.c mod_log_config.c mod_log_referer.c mod_rewrite.c util_script.c

brian       97/01/10 01:34:49

  Modified:    src       Configure conf.h http_log.c mod_log_agent.c
                        mod_log_config.c  mod_log_referer.c mod_rewrite.c
                        util_script.c
  Log:
  Reviewed by:	Brian Behlendorf
  Submitted by:	Garey Smiley <ga...@main.slink.com>
  
  OS/2 compatibility fixes.
  
  Revision  Changes    Path
  1.67      +2 -1      apache/src/Configure
  
  Index: Configure
  ===================================================================
  RCS file: /export/home/cvs/apache/src/Configure,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -C3 -r1.66 -r1.67
  *** Configure	1997/01/08 13:04:45	1.66
  --- Configure	1997/01/10 09:34:40	1.67
  ***************
  *** 179,185 ****
            DEF_WANTHSREGEX=yes
    	OS='EMX OS/2'
            CFLAGS="$CFLAGS -Zbsd-signals -Zbin-files -DTCPIPV4 -g"
  ! 	LIBS="$LIBS -lsocket -llibufc -lgdbm -lbsd"
    	;;
        *-hp-hpux10.*)
    	OS='HP-UX 10'
  --- 179,186 ----
            DEF_WANTHSREGEX=yes
    	OS='EMX OS/2'
            CFLAGS="$CFLAGS -Zbsd-signals -Zbin-files -DTCPIPV4 -g"
  ! 	LIBS="$LIBS -lsocket -llibufc -lbsd"
  ! 	DBM_LIB="-lgdbm"
    	;;
        *-hp-hpux10.*)
    	OS='HP-UX 10'
  
  
  
  1.67      +3 -1      apache/src/conf.h
  
  Index: conf.h
  ===================================================================
  RCS file: /export/home/cvs/apache/src/conf.h,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -C3 -r1.66 -r1.67
  *** conf.h	1997/01/08 13:04:45	1.66
  --- conf.h	1997/01/10 09:34:41	1.67
  ***************
  *** 409,415 ****
    #define chdir _chdir2
    #include <sys/time.h>     
    #define MAXSOCKETS 4096
  - #define ARG_MAX    _POSIX_ARG_MAX
    #define HAVE_MMAP
        
    #elif defined(__MACHTEN__)
  --- 409,414 ----
  ***************
  *** 552,558 ****
  --- 551,560 ----
    #endif
    
    #ifndef S_ISLNK
  + #ifndef __EMX__
  + /* Don't define this for OS/2 */
    #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
  + #endif
    #endif
    
    #ifndef INADDR_NONE
  
  
  
  1.12      +5 -0      apache/src/http_log.c
  
  Index: http_log.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_log.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -C3 -r1.11 -r1.12
  *** http_log.c	1997/01/01 18:10:18	1.11
  --- http_log.c	1997/01/10 09:34:41	1.12
  ***************
  *** 74,80 ****
  --- 74,85 ----
        
        cleanup_for_exec();
        signal (SIGHUP, SIG_IGN);
  + #ifdef __EMX__
  +     /* For OS/2 we need to use a '/' */
  +     execl (SHELL_PATH, SHELL_PATH, "/c", (char *)cmd, NULL);
  + #else    
        execl (SHELL_PATH, SHELL_PATH, "-c", (char *)cmd, NULL);
  + #endif    
        exit (1);
    }
    
  
  
  
  1.8       +5 -0      apache/src/mod_log_agent.c
  
  Index: mod_log_agent.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/mod_log_agent.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -C3 -r1.7 -r1.8
  *** mod_log_agent.c	1997/01/01 18:10:36	1.7
  --- mod_log_agent.c	1997/01/10 09:34:42	1.8
  ***************
  *** 105,111 ****
  --- 105,116 ----
        
        cleanup_for_exec();
        signal (SIGHUP, SIG_IGN);
  + #ifdef __EMX__    
  +     /* For OS/2 we need to use a '/' */
  +     execl (SHELL_PATH, SHELL_PATH, "/c", (char *)cmd, NULL);
  + #else    
        execl (SHELL_PATH, SHELL_PATH, "-c", (char *)cmd, NULL);
  + #endif    
        exit (1);
    }
    
  
  
  
  1.20      +5 -0      apache/src/mod_log_config.c
  
  Index: mod_log_config.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/mod_log_config.c,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -C3 -r1.19 -r1.20
  *** mod_log_config.c	1997/01/01 18:10:36	1.19
  --- mod_log_config.c	1997/01/10 09:34:42	1.20
  ***************
  *** 673,679 ****
  --- 673,684 ----
        
        cleanup_for_exec();
        signal (SIGHUP, SIG_IGN);
  + #ifdef __EMX__
  +     /* For OS/2 we need to use a '/' */
  +     execl (SHELL_PATH, SHELL_PATH, "/c", (char *)cmd, NULL);
  + #else
        execl (SHELL_PATH, SHELL_PATH, "-c", (char *)cmd, NULL);
  + #endif
        fprintf (stderr, "Exec of shell for logging failed!!!\n");
        exit (1);
    }
  
  
  
  1.9       +5 -0      apache/src/mod_log_referer.c
  
  Index: mod_log_referer.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/mod_log_referer.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -C3 -r1.8 -r1.9
  *** mod_log_referer.c	1997/01/01 18:10:37	1.8
  --- mod_log_referer.c	1997/01/10 09:34:43	1.9
  ***************
  *** 119,125 ****
  --- 119,130 ----
        
        cleanup_for_exec();
        signal (SIGHUP, SIG_IGN);
  + #ifdef __EMX__
  +     /* For OS/2 we need to use a '/' */
  +     execl (SHELL_PATH, SHELL_PATH, "/c", (char *)cmd, NULL);
  + #else
        execl (SHELL_PATH, SHELL_PATH, "-c", (char *)cmd, NULL);
  + #endif
        fprintf (stderr, "Exec of shell for logging failed!!!\n");
        exit (1);
    }
  
  
  
  1.13      +15 -0     apache/src/mod_rewrite.c
  
  Index: mod_rewrite.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/mod_rewrite.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -C3 -r1.12 -r1.13
  *** mod_rewrite.c	1997/01/01 18:10:39	1.12
  --- mod_rewrite.c	1997/01/10 09:34:44	1.13
  ***************
  *** 110,115 ****
  --- 110,120 ----
        /* now our own stuff ... */
    #include "mod_rewrite.h"
    
  + #ifdef __EMX__
  + /* OS/2 dosen't support links. */
  + #define S_ISLNK
  + #endif
  + 
     
    
    
  ***************
  *** 2162,2168 ****
  --- 2167,2178 ----
    {
        cleanup_for_exec();
        signal(SIGHUP, SIG_IGN);
  + #ifdef __EMX__
  +     /* For OS/2 we need to use a '/' */
  +     execl(SHELL_PATH, SHELL_PATH, "/c", (char *)cmd, NULL);
  + #else
        execl(SHELL_PATH, SHELL_PATH, "-c", (char *)cmd, NULL);
  + #endif
        exit(1);
    }
    
  ***************
  *** 2301,2307 ****
  --- 2311,2322 ----
    {
        cleanup_for_exec();
        signal(SIGHUP, SIG_IGN);
  + #ifdef __EMX__
  +     /* For OS/2 we need to use a '/' */
  +     execl(SHELL_PATH, SHELL_PATH, "/c", (char *)cmd, NULL);
  + #else
        execl(SHELL_PATH, SHELL_PATH, "-c", (char *)cmd, NULL);
  + #endif    
        exit(1);
    }
    
  
  
  
  1.38      +30 -0     apache/src/util_script.c
  
  Index: util_script.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/util_script.c,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -C3 -r1.37 -r1.38
  *** util_script.c	1997/01/03 09:30:20	1.37
  --- util_script.c	1997/01/10 09:34:44	1.38
  ***************
  *** 462,467 ****
  --- 462,490 ----
    #endif
        
    #ifdef __EMX__    
  +     {
  +         /* Additions by Alec Kloss, to allow exec'ing of scripts under OS/2 */
  +         int is_script;
  +         char interpreter[2048]; /* hope this is large enough for the interpreter path */
  +         FILE * program;
  +         program = fopen (r->filename, "r");
  +         if (!program) {
  +             char err_string[HUGE_STRING_LEN];
  +             sprintf(err_string, "open of %s failed, errno is %d\n", r->filename, errno);
  +             /* write(2, err_string, strlen(err_string)); */
  +             /* exit(0); */
  +             log_unixerr("fopen", NULL, err_string, r->server);
  +             return;
  +         }
  +         fgets (interpreter, 2048, program);
  +         fclose (program);
  +         if (!strncmp (interpreter, "#!", 2)) {
  +             is_script = 1;
  +             interpreter[strlen(interpreter)-1] = '\0';
  +         } else {
  +             is_script = 0;
  +         }
  + 
        if ((!r->args) || (!r->args[0]) || (ind(r->args,'=') >= 0)) {
    	int emxloop;
    	char *emxtemp;
  ***************
  *** 472,477 ****
  --- 495,506 ----
    	for (emxloop=0; ((emxtemp = env[emxloop]) != NULL); emxloop++)
    	    putenv(emxtemp);
                    
  +     /* Additions by Alec Kloss, to allow exec'ing of scripts under OS/2 */
  +     if (is_script) {
  +         /* here's the stuff to run the interpreter */
  +         execl (interpreter+2, interpreter+2, r->filename, NULL);
  +     } else
  + 
    	if (strstr(strupr(r->filename), ".CMD") > 0) {
    	    /* Special case to allow use of REXX commands as scripts. */
    	    os2pathname(r->filename);
  ***************
  *** 498,503 ****
  --- 527,533 ----
    	}
    	else
    	    execv(r->filename, create_argv(r, argv0, r->args, NULL));
  +     }
        }
    #else
        if ( suexec_enabled &&