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/05/27 19:22:20 UTC

cvs commit: apache/src CHANGES [Chuck Murcko ]

(had to forward by hand coz it triggered a majordomo admin check - ugh!)

--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
brian@hyperreal.com     http://www.apache.org     http://www.organic.com/jobs

---------- Forwarded message ----------
Date: Tue, 27 May 1997 01:01:14 -0700 (PDT)
From: apache-cvs-owner@apache.org
To: apache-cvs-owner@apache.org
Subject: BOUNCE apache-cvs@apache.org:     Admin request of type /\bchange\b.*\badress\b/ at line 7  

>From chuck@hyperreal.com  Tue May 27 01:01:12 1997
Received: (from chuck@localhost)
	by hyperreal.com (8.8.5/8.8.5) id BAA09870
	for apache-cvs; Tue, 27 May 1997 01:01:12 -0700 (PDT)
Date: Tue, 27 May 1997 01:01:12 -0700 (PDT)
From: Chuck Murcko <ch...@hyperreal.com>
Message-Id: <19...@hyperreal.com>
To: apache-cvs@hyperreal.com
Subject: cvs commit: apache/src CHANGES

chuck       97/05/27 01:01:11

  Modified:    src/modules/proxy  proxy_util.c
               src       CHANGES
  Log:
  Obtained from:Jozsef Hollosi <ho...@sbcm.com>
  change proxy_host2addr() to return the original IP adress when
  gethostbyaddr() fails due to reverse DNS lookup problems. Also make sure
  we don't leak memory, slowly.
  
  Revision  Changes    Path
  1.14      +14 -3     apache/src/modules/proxy/proxy_util.c
  
  Index: proxy_util.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_util.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -C3 -r1.13 -r1.14
  *** proxy_util.c	1997/04/12 06:17:45	1.13
  --- proxy_util.c	1997/05/27 08:00:48	1.14
  ***************
  *** 694,700 ****
    {
        int i;
        struct hostent *hp;
  !     u_long ipaddr;
    
        for (i=0; host[i] != '\0'; i++)
    	if (!isdigit(host[i]) && host[i] != '.')
  --- 694,701 ----
    {
        int i;
        struct hostent *hp;
  !     static struct hostent hpbuf;
  !     static u_long ipaddr;
    
        for (i=0; host[i] != '\0'; i++)
    	if (!isdigit(host[i]) && host[i] != '.')
  ***************
  *** 709,718 ****
        {
    	ipaddr = inet_addr(host);
    	hp = gethostbyaddr((char *)&ipaddr, sizeof(u_long), AF_INET);
  ! 	if (hp == NULL)
  ! 	    return "Address not found";
        }
        memcpy(reqhp, hp, sizeof(struct hostent));
        return NULL;
    }
    
  --- 710,729 ----
        {
    	ipaddr = inet_addr(host);
    	hp = gethostbyaddr((char *)&ipaddr, sizeof(u_long), AF_INET);
  ! 	if (hp == NULL) {
  ! 	    memchr(&hpbuf, 0, sizeof(hpbuf));
  ! 	    hpbuf.h_name = 0;
  ! 	    hpbuf.h_addrtype = AF_INET;
  ! 	    hpbuf.h_length = sizeof(u_long);
  ! 	    hpbuf.h_addr_list = malloc(2 * sizeof(char*));
  ! 	    hpbuf.h_addr_list[0] = (char*)&ipaddr;
  ! 	    hpbuf.h_addr_list[1] = 0;
  ! 	    hp = &hpbuf;
  ! 	}
        }
        memcpy(reqhp, hp, sizeof(struct hostent));
  +     if (hpbuf.h_addr_list != NULL)
  + 	free(hpbuf.h_addr_list);
        return NULL;
    }
    
  
  
  
  1.280     +5 -0      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.279
  retrieving revision 1.280
  diff -C3 -r1.279 -r1.280
  *** CHANGES	1997/05/27 04:41:48	1.279
  --- CHANGES	1997/05/27 08:01:10	1.280
  ***************
  *** 1,5 ****
  --- 1,10 ----
    Changes with Apache 1.2
    
  +   *) Added code to return the requested IP address from proxy_host2addr()
  +      if gethostbyaddr() fails due to reverse DNS lookup problems. Original
  +      change submitted by Jozsef Hollosi <ho...@sbcm.com>.
  +      [Chuck Murcko] PR#614
  + 
      *) If multiple requests on a single connection are used to retrieve
         data from different virtual hosts, the virtual host list would be
         scanned starting with the most recently used VH instead of the first,