Subject: BIND 4.9.3-BETA24 Support for NCR (ne AT&T-GIS) 3000, MP-RAS 2.03.01, vendor-supplied "cc"
From: "Kevin Darcy" <[email-masked]>
To: [email-masked]
Date: Mon, 10 Jul 1995 20:49:30 -0400 (EDT)

The only really squirrelly things about the NCR 3000 OS, as compared to other 
i386 SRV4 platforms, are:

	a) the networking code can't tolerate the IP_OPTIONS stuff 
	   (getsockopt() returns an error (EOPNOTSUPP), thereby triggering
 	   closure of the fd). This diff hacks out the IP_OPTIONS code

	b) -D_INET_H_ is necessary to suppress certain function declarations 
	   in arpa/inet.h, which on the NCR 3000 (as of release 2.03.01) are
	   incompatible with the corresponding declarations in the 
	   subsequently-#included /usr/include/netinet/in.h

	c) unlike other SVR4's, NCR 3000's require a combination of 
	   DESTSBIN = /usr/etc, DESTEXEC = /usr/etc, and XFER_INDOT = (null) 
	   to be compatible with the vendor-supplied pathnames

Please include this diff, either as a replacement for the old doc/info/NCR, or 
as "doc/info/NCR.too" (the doc/info/RUNSON patch band can of course simply be 
incorporated into the general release, if desired): the old doc/info/NCR (from 
Anders Tjader) reports serious fuzzes and offsets when patched, and does not 
result in a compilable BIND on MP-RAS version 2.03.01.

							- Kevin

*** ../bind-4.9.3-BETA24.dist/doc/info/RUNSON	Sun Jun 25 02:45:07 1995
--- doc/info/RUNSON	Mon Jul 10 20:15:50 1995
***************
*** 17,22 ****
--- 17,23 ----
  HP-UX	B09.00	hp300	gcc2.5.7	piete brooks	production primary
  HP-UX	A09.04	hp800	cc		todd martin	production secondary
  IRIX	5	mips	mips cc		paul vixie	courtesy of SGI
+ NCR MP-R2.03.01 i386	cc		kevin darcy	"compiles and runs"
  NEXTSTEP3.0	m68k	gcc1.39		artur romao	"compiles and runs"
  NEXTSTEP3.2	m68k	cc		scott mcintyre	"compiles and runs"
  NEXTSTEP3.3	hppa	cc		allan nathanson "compiles and runs"
*** ../bind-4.9.3-BETA24.dist/Makefile	Fri Jul  7 03:33:32 1995
--- Makefile	Mon Jul 10 19:46:02 1995
***************
*** 477,498 ****
  #set to empty. also, use 'make install' at your own risk.
  #don't include sys/stream.h via netinet/in.h by defining _SYS_STREAM_H.
  #CC = gcc $(CPPFLAGS)
! #CPPFLAGS = -DSVR4 -DBSD_COMP -DUSE_POSIX -D_SYS_STREAM_H
! #CDEBUG = -O
! #LEX = lex
  #INDOT = in.
! #XFER_INDOT =
! #PIDDIR = /etc
! #INSTALL = /usr/ucb/install
! #LIBS = -ll -lsocket -lnsl
! #DESTSBIN = /usr/sbin
! #DESTEXEC = /usr/sbin
! #LDS = @:
! #RANLIB = @:
! #ARPREF = `lorder
! #ARSUFF = | tsort`
! #CATEXT = $$$$N
! #PS = ps -p
  
  #(ISC4.0 using GCC)
  #CC = gcc -DISC -posix
--- 477,498 ----
  #set to empty. also, use 'make install' at your own risk.
  #don't include sys/stream.h via netinet/in.h by defining _SYS_STREAM_H.
  #CC = gcc $(CPPFLAGS)
! CPPFLAGS = -DSVR4 -DBSD_COMP -DUSE_POSIX -D_INET_H_ -D_SYS_STREAM_H
! CDEBUG = -O
! LEX = lex
  #INDOT = in.
! XFER_INDOT =
! PIDDIR = /etc
! INSTALL = /usr/ucb/install
! LIBS = -ll -lsocket -lnsl
! DESTSBIN = /usr/etc
! DESTEXEC = /usr/etc
! LDS = @:
! RANLIB = @:
! ARPREF = `lorder
! ARSUFF = | tsort`
! CATEXT = $$$$N
! PS = ps -p
  
  #(ISC4.0 using GCC)
  #CC = gcc -DISC -posix
*** ../bind-4.9.3-BETA24.dist/named/ns_main.c	Thu Jun 29 05:26:22 1995
--- named/ns_main.c	Mon Jul 10 19:22:09 1995
***************
*** 742,775 ****
  				(void) my_close(rfd);
  				continue;
  			}
- #if defined(IP_OPTIONS)
- 			len = sizeof ip_opts;
- 			if (getsockopt(rfd, IPPROTO_IP, IP_OPTIONS,
- 				       (char *)ip_opts, &len) < 0) {
- 				syslog(LOG_INFO,
- 				       "getsockopt(rfd, IP_OPTIONS): %m");
- 				(void) my_close(rfd);
- 				continue;
- 			}
- 			if (len != 0) {
- 				nameserIncr(from_addr.sin_addr, nssRcvdOpts);
- 				if (!haveComplained((char*)
- 						    from_addr.sin_addr.s_addr,
- 						    "rcvd ip options")) {
- 					syslog(LOG_INFO,
- 				      "rcvd IP_OPTIONS from [%s].%d (ignored)",
- 					       inet_ntoa(from_addr.sin_addr),
- 					       ntohs(from_addr.sin_port));
- 				}
- 				if (setsockopt(rfd, IPPROTO_IP, IP_OPTIONS,
- 					       NULL, 0) < 0) {
- 					syslog(LOG_INFO,
- 					       "setsockopt(!IP_OPTIONS): %m");
- 					(void) my_close(rfd);
- 					continue;
- 				}
- 			}
- #endif
  			if (setsockopt(rfd, SOL_SOCKET, SO_SNDBUF,
  				      (char*)&sbufsize, sizeof(sbufsize)) < 0){
  				syslog(LOG_INFO,
--- 742,747 ----