*** CHANGES	1996/06/06 20:19:05	8.37
--- CHANGES	1996/06/23 02:04:22
***************
*** 1,4 ****
--- 1,22 ----
  $Id: CHANGES,v 8.37 1996/06/06 20:19:05 vixie Exp vixie $
  
+ 	--- 4.9.4-t5b released ---
+ 
+ 642. [bug]	SOA serial checking was not trying backup servers.
+ 
+ 641. [doc]	added doc/rfc/rfc1713.
+ 
+ 640. [bug]	don't try to purge the cache on nonrecursive servers.
+ 
+ 639. [bug]	sysquery() was not recovering from lack of root servers.
+ 
+ 638. [bug]	dnsquery.c wasn't calling res_init().
+ 
+ 637. [bug]	ns_resp() was erroneously detecting name errors.
+ 
+ 636. [bug]	nslookup() was returning failure even when fwdrs were avail.
+ 
+ 635. [bug]	inet_pton() was returning EINVAL rather than EAFNOSUPPORT.
+ 
  	--- 4.9.4-t4b released ---
  
*** Makefile	1996/06/06 20:19:05	8.36
--- Makefile	1996/06/23 02:04:22
***************
*** 57,61 ****
  ## --Copyright--
  
! VER = 4.9.4-T4B
  SHELL = /bin/sh
  MAKE = make
--- 57,61 ----
  ## --Copyright--
  
! VER = 4.9.4-T5B
  SHELL = /bin/sh
  MAKE = make
*** named/ns_forw.c	1996/05/17 09:10:46	8.12
--- named/ns_forw.c	1996/06/23 01:26:45
***************
*** 638,642 ****
  	dprintf(3, (ddt, "nslookup: %d ns addrs total\n", n));
  	qp->q_naddr = n;
! 	if (n == 0 && potential_ns == 0) {
  		static char *complaint = "No possible A RRs";
  		if (sysloginfo && syslogdname &&
--- 638,642 ----
  	dprintf(3, (ddt, "nslookup: %d ns addrs total\n", n));
  	qp->q_naddr = n;
! 	if (n == 0 && potential_ns == 0 && !fwdtab) {
  		static char *complaint = "No possible A RRs";
  		if (sysloginfo && syslogdname &&
*** named/ns_maint.c	1996/05/17 09:10:46	8.14
--- named/ns_maint.c	1996/06/23 01:45:09
***************
*** 166,170 ****
  #ifdef CLEANCACHE
  	if ((cache_time + cache_interval) <= tt.tv_sec) {
! 		if (cache_time)
  			remove_zone(hashtab, 0, 0);
  		cache_time = tt.tv_sec;
--- 166,170 ----
  #ifdef CLEANCACHE
  	if ((cache_time + cache_interval) <= tt.tv_sec) {
! 		if (cache_time && !NoRecurse && !NoFetchGlue)
  			remove_zone(hashtab, 0, 0);
  		cache_time = tt.tv_sec;
*** named/ns_resp.c	1996/05/21 07:32:38	8.25
--- named/ns_resp.c	1996/06/23 01:57:21
***************
*** 644,649 ****
  
  			qserial_answer(qp, serial);
  		}
- 		qremove(qp);
  		return;
  	}
--- 644,651 ----
  
  			qserial_answer(qp, serial);
+ 			qremove(qp);
+ 		} else {
+ 			retry(qp);
  		}
  		return;
  	}
***************
*** 1450,1454 ****
  		else
  			context = mailname_ctx;
! 		if (!ns_nameok((char *)data, class, response_trans, context)) {
  			hp->rcode = FORMERR;
  			return (-1);
--- 1452,1456 ----
  		else
  			context = mailname_ctx;
! 		if (!ns_nameok((char *)cp1, class, response_trans, context)) {
  			hp->rcode = FORMERR;
  			return (-1);
***************
*** 1480,1484 ****
  			return (-1);
  		}
! 		if (!ns_nameok((char *)data, class, response_trans,
  			       hostname_ctx)) {
  			hp->rcode = FORMERR;
--- 1482,1486 ----
  			return (-1);
  		}
! 		if (!ns_nameok((char *)cp1, class, response_trans,
  			       hostname_ctx)) {
  			hp->rcode = FORMERR;
***************
*** 1507,1511 ****
  			return (-1);
  		}
! 		if (!ns_nameok((char *)data, class, response_trans,
  			       domain_ctx)) {
  			hp->rcode = FORMERR;
--- 1509,1513 ----
  			return (-1);
  		}
! 		if (!ns_nameok((char *)cp1, class, response_trans,
  			       domain_ctx)) {
  			hp->rcode = FORMERR;
***************
*** 1520,1524 ****
  			return (-1);
  		}
! 		if (!ns_nameok((char *)data, class, response_trans,
  			       domain_ctx)) {
  			hp->rcode = FORMERR;
--- 1522,1526 ----
  			return (-1);
  		}
! 		if (!ns_nameok((char *)cp1, class, response_trans,
  			       domain_ctx)) {
  			hp->rcode = FORMERR;
***************
*** 2122,2125 ****
--- 2124,2129 ----
  				   "sysquery: no addrs found for root NS (%s)",
  				       dname);
+ 				if (class == C_IN && !priming)
+ 					needs_prime_cache = 1;
  				goto err2;
  			}
*** res/inet_pton.c	1996/05/22 04:56:30	8.4
--- res/inet_pton.c	1996/06/09 07:20:23
***************
*** 60,64 ****
  		return (inet_pton6(src, dst));
  	default:
! 		errno = EINVAL;
  		return (-1);
  	}
--- 60,64 ----
  		return (inet_pton6(src, dst));
  	default:
! 		errno = EAFNOSUPPORT;
  		return (-1);
  	}
*** tools/dnsquery.c	1995/12/06 20:34:52	8.2
--- tools/dnsquery.c	1996/06/23 01:37:47
***************
*** 188,195 ****
  	 * gethostbyname above
  	*/
! 	if (debug) 
! 		_res.options |= RES_DEBUG;
! 	if (stream)
! 		 _res.options |= RES_USEVC;
  
  	/* if the -n flag was used, add them to the resolver's list */
--- 188,202 ----
  	 * gethostbyname above
  	*/
! 	if (debug || stream) {
! 		if (!(_res.options & RES_INIT))
! 			if (res_init() == -1) {
! 				fprintf(stderr, "res_init() failed\n");
! 				exit(-1);
! 			}
! 		if (debug) 
! 			_res.options |= RES_DEBUG;
! 		if (stream)
! 		 	_res.options |= RES_USEVC;
! 	}
  
  	/* if the -n flag was used, add them to the resolver's list */
