You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@hyperreal.org on 1997/12/19 15:30:15 UTC

cvs commit: apachen/src/ap ap_slack.c Makefile.tmpl

coar        97/12/19 06:30:14

  Modified:    src/main util.c
               src/ap   Makefile.tmpl
  Added:       src/ap   ap_slack.c
  Log:
  	Move the ap_slack() function stuff out of util.c into the ap
  	directory.
  
  Reviewed by:	Dean Gaudet, Jim Jagieslski
  
  Revision  Changes    Path
  1.78      +0 -46     apachen/src/main/util.c
  
  Index: util.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/util.c,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- util.c	1997/11/13 17:05:15	1.77
  +++ util.c	1997/12/19 14:30:12	1.78
  @@ -1618,52 +1618,6 @@
   }
   #endif
   
  -#ifndef NO_SLACK
  -int ap_slack(int fd, int line)
  -{
  -#if !defined(F_DUPFD)
  -    return fd;
  -#else
  -    static int low_warned;
  -    int new_fd;
  -
  -#ifdef HIGH_SLACK_LINE
  -    if (line == AP_SLACK_HIGH && fd < HIGH_SLACK_LINE) {
  -	new_fd = fcntl(fd, F_DUPFD, HIGH_SLACK_LINE);
  -	if (new_fd != -1) {
  -	    close(fd);
  -	    return new_fd;
  -	}
  -    }
  -#endif
  -    /* otherwise just assume line == AP_SLACK_LOW */
  -    if (fd >= LOW_SLACK_LINE) {
  -	return fd;
  -    }
  -    new_fd = fcntl(fd, F_DUPFD, LOW_SLACK_LINE);
  -    if (new_fd == -1) {
  -	if (!low_warned) {
  -	    /* Give them a warning here, because we really can't predict
  -	     * how libraries and such are going to fail.  If we can't
  -	     * do this F_DUPFD there's a good chance that apache has too
  -	     * few descriptors available to it.  Note we don't warn on
  -	     * the high line, because if it fails we'll eventually try
  -	     * the low line...
  -	     */
  -	    aplog_error(APLOG_MARK, APLOG_ERR, NULL,
  -		"unable to open a file descriptor above %u, "
  -		"you may need to increase the number of descriptors",
  -		LOW_SLACK_LINE);
  -	    low_warned = 1;
  -	}
  -	return fd;
  -    }
  -    close(fd);
  -    return new_fd;
  -#endif
  -}
  -#endif /* NO_SLACK */
  -
   #if defined(NEED_DIFFTIME)
   double difftime(time_t time1, time_t time0)
   {
  
  
  
  1.3       +2 -1      apachen/src/ap/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/ap/Makefile.tmpl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Makefile.tmpl	1997/11/16 16:23:21	1.2
  +++ Makefile.tmpl	1997/12/19 14:30:13	1.3
  @@ -6,7 +6,7 @@
   
   LIB=libap.a
   
  -OBJS=ap_signal.o
  +OBJS=ap_signal.o ap_slack.o
   
   .c.o:
   	$(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $<
  @@ -25,3 +25,4 @@
   
   # dependencies
   ap_signal.o: $(INCDIR)/httpd.h
  +ap_slack.o: $(INCDIR)/httpd.h $(INCDIR)/http_log.h
  
  
  
  1.1                  apachen/src/ap/ap_slack.c
  
  Index: ap_slack.c
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1997 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
   *    apache@apache.org.
   *
   * 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/>.
   *
   */
  
  /*
   * ap_slack.c: File descriptor preallocation
   * 
   * 3/21/93 Rob McCool
   * 1995-96 Many changes by the Apache Group
   * 
   */
  
  #include "httpd.h"
  #include "http_log.h"
  
  #ifndef NO_SLACK
  int ap_slack(int fd, int line)
  {
  #if !defined(F_DUPFD)
      return fd;
  #else
      static int low_warned;
      int new_fd;
  
  #ifdef HIGH_SLACK_LINE
      if (line == AP_SLACK_HIGH && fd < HIGH_SLACK_LINE) {
  	new_fd = fcntl(fd, F_DUPFD, HIGH_SLACK_LINE);
  	if (new_fd != -1) {
  	    close(fd);
  	    return new_fd;
  	}
      }
  #endif
      /* otherwise just assume line == AP_SLACK_LOW */
      if (fd >= LOW_SLACK_LINE) {
  	return fd;
      }
      new_fd = fcntl(fd, F_DUPFD, LOW_SLACK_LINE);
      if (new_fd == -1) {
  	if (!low_warned) {
  	    /* Give them a warning here, because we really can't predict
  	     * how libraries and such are going to fail.  If we can't
  	     * do this F_DUPFD there's a good chance that apache has too
  	     * few descriptors available to it.  Note we don't warn on
  	     * the high line, because if it fails we'll eventually try
  	     * the low line...
  	     */
  	    aplog_error(APLOG_MARK, APLOG_ERR, NULL,
  		        "unable to open a file descriptor above %u, "
  			"you may need to increase the number of descriptors",
  			LOW_SLACK_LINE);
  	    low_warned = 1;
  	}
  	return fd;
      }
      close(fd);
      return new_fd;
  #endif
  }
  #endif /* NO_SLACK */