randy       98/02/02 18:41:22

  Modified:    src/ap   Makefile.tmpl
               src/include ap.h
               src/main buff.c
  Added:       src/ap   ap_read.c ap_write.c
  Log:
  Abstract read() and write() to the ap library to make it easier
  to add in different types of read/write libraries in a central
  location. This mainly keeps buff.c less messy with #ifdefs.
  
  Revision  Changes    Path
  1.10      +4 -1      apache-1.3/src/ap/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/ap/Makefile.tmpl,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Makefile.tmpl     1998/02/01 15:56:21     1.9
  +++ Makefile.tmpl     1998/02/03 02:41:19     1.10
  @@ -6,7 +6,8 @@
   
   LIB=libap.a
   
  -OBJS=ap_signal.o ap_slack.o ap_snprintf.o ap_strings.o ap_cpystrn.o 
ap_execve.o
  +OBJS=ap_signal.o ap_slack.o ap_snprintf.o ap_strings.o ap_cpystrn.o \
  +     ap_execve.o ap_read.o ap_write.o
   
   .c.o:
        $(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $<
  @@ -30,3 +31,5 @@
   ap_strings.o: $(INCDIR)/httpd.h
   ap_cpystrn.o: $(INCDIR)/httpd.h
   ap_execve.o: $(INCDIR)/httpd.h $(INCDIR)/http_log.h
  +ap_read.o: $(INCDIR)/httpd.h
  +ap_write.o: $(INCDIR)/httpd.h
  
  
  
  1.1                  apache-1.3/src/ap/ap_read.c
  
  Index: ap_read.c
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1998 The Apache Group.  All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. All advertising materials mentioning features or use of this
   *    software must display the following acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * 4. The names "Apache Server" and "Apache Group" must not be used to
   *    endorse or promote products derived from this software without
   *    prior written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   *
   * 5. Redistributions of any form whatsoever must retain the following
   *    acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   * OF THE POSSIBILITY OF SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Group and was originally based
   * on public domain software written at the National Center for
   * Supercomputing Applications, University of Illinois, Urbana-Champaign.
   * For more information on the Apache Group and the Apache HTTP server
   * project, please see <http://www.apache.org/>.
   *
   */
  
  #include "httpd.h"
  
  /* the lowest level reading primitive */
  
  API_EXPORT(int) ap_read(BUFF *fb, void *buf, int nbyte)
  {
      int rv;
      
      rv = read(fb->fd_in, buf, nbyte);
      
      return rv;
  }
  
  
  
  
  1.1                  apache-1.3/src/ap/ap_write.c
  
  Index: ap_write.c
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1998 The Apache Group.  All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. All advertising materials mentioning features or use of this
   *    software must display the following acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * 4. The names "Apache Server" and "Apache Group" must not be used to
   *    endorse or promote products derived from this software without
   *    prior written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   *
   * 5. Redistributions of any form whatsoever must retain the following
   *    acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   * OF THE POSSIBILITY OF SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Group and was originally based
   * on public domain software written at the National Center for
   * Supercomputing Applications, University of Illinois, Urbana-Champaign.
   * For more information on the Apache Group and the Apache HTTP server
   * project, please see <http://www.apache.org/>.
   *
   */
  
  #include "httpd.h"
  
  /* the lowest level writing primitive */
  
  API_EXPORT(int) ap_write(BUFF *fb, const void *buf, int nbyte)
  {
      int rv;
      
  #if defined (B_SFIO)
      rv = sfwrite(fb->sf_out, buf, nbyte);
  #else
      rv = write(fb->fd, buf, nbyte);
  #endif
      
      return rv;
  }
  
  
  
  1.5       +2 -0      apache-1.3/src/include/ap.h
  
  Index: ap.h
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/include/ap.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ap.h      1998/01/25 16:13:11     1.4
  +++ ap.h      1998/02/03 02:41:21     1.5
  @@ -57,6 +57,8 @@
   #ifndef APACHE_AP_H
   #define APACHE_AP_H
   
  +API_EXPORT(int) ap_read(BUFF *fb, void *buf, int nbyte);
  +API_EXPORT(int) ap_write(BUFF *fb, const void *buf, int nbyte);
   API_EXPORT(char *) ap_cpystrn(char *, const char *, size_t);
   int ap_slack(int, int);
   API_EXPORT(char *) ap_escape_quotes(pool *, const char *);
  
  
  
  1.61      +5 -7      apache-1.3/src/main/buff.c
  
  Index: buff.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/buff.c,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- buff.c    1998/01/27 05:35:32     1.60
  +++ buff.c    1998/02/03 02:41:22     1.61
  @@ -233,9 +233,9 @@
            errno = WSAGetLastError();
       }
       else
  -     rv = read(fb->fd_in, buf, nbyte);
  +     rv = ap_read(fb, buf, nbyte);
   #else
  -    rv = read(fb->fd_in, buf, nbyte);
  +    rv = ap_read(fb, buf, nbyte);
   #endif /* WIN32 */
       return rv;
   }
  @@ -252,11 +252,9 @@
            errno = WSAGetLastError();
       }
       else
  -     rv = write(fb->fd, buf, nbyte);
  -#elif defined (B_SFIO)
  -    rv = sfwrite(fb->sf_out, buf, nbyte);
  +     rv = ap_write(fb, buf, nbyte);
   #else
  -    rv = write(fb->fd, buf, nbyte);
  +    rv = ap_write(fb, buf, nbyte);
   #endif /* WIN32 */
       return rv;
   }
  @@ -569,7 +567,7 @@
   
   int bsfio_write(Sfio_t * f, char *buf, int nbyte, apache_sfio *disc)
   {
  -    return write(disc->buff->fd, buf, nbyte);
  +    return ap_write(disc->buff, buf, nbyte);
   }
   
   Sfdisc_t *bsfio_new(pool *p, BUFF *b)
  
  
  

Reply via email to