You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Dean Gaudet <dg...@hyperreal.com> on 1997/03/15 21:49:11 UTC

cvs commit: apache/src CHANGES http_main.c

dgaudet     97/03/15 12:49:10

  Modified:    src       CHANGES http_main.c
  Log:
  Possible workaround to a compiler bug that causes SunOS 4.1.x to panic.
  
  Submitted by:	Roy Fielding
  
  Revision  Changes    Path
  1.198     +3 -0      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.197
  retrieving revision 1.198
  diff -C3 -r1.197 -r1.198
  *** CHANGES	1997/03/14 03:27:31	1.197
  --- CHANGES	1997/03/15 20:49:08	1.198
  ***************
  *** 1,5 ****
  --- 1,8 ----
    Changes with Apache 1.2b8
    
  +   *) Workaround to a compiler bug that causes SunOS 4.1.x to panic.
  +      [Roy Fielding]
  + 
      *) Negotiation changes: Don't output empty content-type in variant list;
         Output charset in variant list; Return sooner from handle_multi() if
         no variants found; Add handling of '*' wildcard in Accept-Charset.
  
  
  
  1.129     +12 -13    apache/src/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_main.c,v
  retrieving revision 1.128
  retrieving revision 1.129
  diff -C3 -r1.128 -r1.129
  *** http_main.c	1997/03/11 06:04:39	1.128
  --- http_main.c	1997/03/15 20:49:09	1.129
  ***************
  *** 1552,1567 ****
        /* The Nagle algorithm says that we should delay sending partial
         * packets in hopes of getting more data.  We don't want to do
         * this; we are not telnet.  There are bad interactions between
  !      * P-HTTP and Nagle's algorithm that have very severe performance
  !      * penalties.  (Failing to do disable Nagle is not much of a
         * problem with simple HTTP.)
         *
         * In spite of these problems, failure here is not a shooting offense.
         */
  !     const int just_say_no = 1;
    
  !     if (0 != setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char*)&just_say_no,
  ! 			sizeof just_say_no))
    	fprintf(stderr, "httpd: could not set socket option TCP_NODELAY\n");
    }
    #else
  --- 1552,1567 ----
        /* The Nagle algorithm says that we should delay sending partial
         * packets in hopes of getting more data.  We don't want to do
         * this; we are not telnet.  There are bad interactions between
  !      * persistent connections and Nagle's algorithm that have very severe
  !      * performance penalties.  (Failing to disable Nagle is not much of a
         * problem with simple HTTP.)
         *
         * In spite of these problems, failure here is not a shooting offense.
         */
  !     int just_say_no = 1;
    
  !     if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char*)&just_say_no,
  !                    sizeof(int)) < 0)
    	fprintf(stderr, "httpd: could not set socket option TCP_NODELAY\n");
    }
    #else
  ***************
  *** 1842,1849 ****
    make_sock(pool *pconf, const struct sockaddr_in *server)
    {
        int s;
  !     const int one = 1;
  !     const int keepalive_value = 1;  
    
        if ((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == -1) {
            perror("socket");
  --- 1842,1848 ----
    make_sock(pool *pconf, const struct sockaddr_in *server)
    {
        int s;
  !     int one = 1;
    
        if ((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == -1) {
            perror("socket");
  ***************
  *** 1855,1868 ****
        
    #ifndef MPE
    /* MPE does not support SO_REUSEADDR and SO_KEEPALIVE */
  !     if((setsockopt(s, SOL_SOCKET,SO_REUSEADDR,(char *)&one,sizeof(one)))
  !        == -1) {
    	perror("setsockopt(SO_REUSEADDR)");
    	fprintf(stderr,"httpd: could not set socket option SO_REUSEADDR\n");
            exit(1);
        }
  !     if((setsockopt(s, SOL_SOCKET,SO_KEEPALIVE,(char *)&keepalive_value,
  !         sizeof(keepalive_value))) == -1) {
    	perror("setsockopt(SO_KEEPALIVE)"); 
            fprintf(stderr,"httpd: could not set socket option SO_KEEPALIVE\n"); 
            exit(1); 
  --- 1854,1866 ----
        
    #ifndef MPE
    /* MPE does not support SO_REUSEADDR and SO_KEEPALIVE */
  !     if (setsockopt(s, SOL_SOCKET,SO_REUSEADDR,(char *)&one,sizeof(int)) < 0) {
    	perror("setsockopt(SO_REUSEADDR)");
    	fprintf(stderr,"httpd: could not set socket option SO_REUSEADDR\n");
            exit(1);
        }
  !     one = 1;
  !     if (setsockopt(s, SOL_SOCKET,SO_KEEPALIVE,(char *)&one,sizeof(int)) < 0) {
    	perror("setsockopt(SO_KEEPALIVE)"); 
            fprintf(stderr,"httpd: could not set socket option SO_KEEPALIVE\n"); 
            exit(1); 
  ***************
  *** 1883,1889 ****
    	li.l_linger = 900;
    
    	if (setsockopt(s, SOL_SOCKET, SO_LINGER,
  ! 	    (char *)&li, sizeof(struct linger)) < 0) {
    	    perror("setsockopt(SO_LINGER)");
    	    fprintf(stderr,"httpd: could not set socket option SO_LINGER\n");
    	    exit(1);
  --- 1881,1887 ----
    	li.l_linger = 900;
    
    	if (setsockopt(s, SOL_SOCKET, SO_LINGER,
  ! 	               (char *)&li, sizeof(struct linger)) < 0) {
    	    perror("setsockopt(SO_LINGER)");
    	    fprintf(stderr,"httpd: could not set socket option SO_LINGER\n");
    	    exit(1);
  ***************
  *** 1912,1918 ****
         * If no size is specified, use the kernel default.
         */
        if (server_conf->send_buffer_size) {
  !         if((setsockopt(s, SOL_SOCKET, SO_SNDBUF, (char*)&server_conf->send_buffer_size, sizeof(int))) < 0) {
    	    perror("setsockopt(SO_SNDBUF), using default buffer size"); 
    	    /* Fail soft. */
    	}
  --- 1910,1917 ----
         * If no size is specified, use the kernel default.
         */
        if (server_conf->send_buffer_size) {
  !         if (setsockopt(s, SOL_SOCKET, SO_SNDBUF,
  !               (char *)&server_conf->send_buffer_size, sizeof(int)) < 0) {
    	    perror("setsockopt(SO_SNDBUF), using default buffer size"); 
    	    /* Fail soft. */
    	}