[comp.sys.encore] named

jsol@bu-cs.BU.EDU (Jon Solomon) (03/09/89)

Does anyone have a copy of named 4.8 (it must be 4.8) for the encore?

--jsol

clyde@ut-emx.UUCP (Clyde W. Hoover) (03/09/89)

We run BIND 4.8 (and resolver) on under UMAX 4.2 (rev 3.2) send mail to address below for more information (its not really a port, but there were some changes made).

	-Clyde Hoover

Shouter-To-Dead-Parrots @ Univ. of Texas Computation Center; Austin, Texas  
	clyde@emx.utexas.edu; ...!cs.utexas.edu!ut-emx!clyde

"You really have to take a broad perspective when giving pat answers
 to other people's problems."  - Eyebeam

loverso@Xylogics.COM (John Robert LoVerso) (03/10/89)

In article <28537@bu-cs.BU.EDU> jsol@bu-cs.BU.EDU (Jon Solomon) writes:
> Does anyone have a copy of named 4.8 (it must be 4.8) for the encore?

Bind4.8 ports readily to UMAX4.2.  The version we're using here (Xylogics)
on our MM310 is actually the version from the "redistributable" BSD sources
available on uunet.uu.net.  That version, among other things, has had some
bugfixes applied to it over the original Bind4.8 distribution (Mike Karels
posted at least 3 bugfixes).  For the most part, I'm not running with any
other changes other than these two:

In named/ns_main.c, "#ifdef notdef" the SIOCGIFADDR ioctl.  It doesn't work
in UMAX4.2 R3.2 [I'm not sure why and I no longer have access to kernel source],
but thats ok because the SIOCGIFFLAGS directly above it returns the interface
address, too.

In tools/nslookup/res.h, add the lines
	#ifdef NAME_LEN
	#undef NAME_LEN
	#endif
directly before the #define of NAME_LEN.  This is because some include file
in /usr/include (I forget which one) defines NAME_LEN, and so they conflict.

In addition to that, I am also using the cleaver trick Stuart Levy mailed to
the bind list that allows the 4.3 struct hostent to be binary compatible with
the 4.2 one; i.e., my netdb.h has:

struct	hostent {
	char	*h_name;	/* official name of host */
	char	**h_aliases;	/* alias list */
	int	h_addrtype;	/* host address type */
	int	h_length;	/* length of address */
#define	h_addr	h_addr_0	/* Dummy to make resolver think we're 4.3 */
	char	*h_addr_0;	/* This field for 4.2 binary compatibility. */
	char	**h_addr_list;	/* list of addresses from name server */
};

and change res/named/gethostnamadr.c, around line 120, to:

#if BSD >= 43 || defined(h_addr)	/* new-style hostent structure */
		*hap = NULL;
#endif
		host.h_addr = h_addr_ptrs[0];
		return (&host);

This change means that you can still put the bind netdb.h in /usr/include,
and leave the original Encore 4.2 code libc.a.  Someone linking against
the old gethostbyname & friends with the new netdb.h will still work.
But, I've just got a libresolv.a contains the new gethostbyname & friends
(actually, it has all the 4.3tahoe src/lib/libc/net code).  While I was at
it, I also added in some additions from 4.3tahoe libc, such as strcasecmp and
setenv.

Good news: Encore's "4.3" os (UMAX R4.0) will have Bind.
Bad news: Last I heard, they were going with Bind 4.3 (off the 4.3 tapes).
(sigh)

John
--
John Robert LoVerso, Annex Software Engineer
Xylogics, Inc., 617/272-8140
[formerly with Encore Computer Corp]
encore!xylogics!loverso, loverso%Xylogics.COM@Encore.COM

rww@ibuki.UUCP (Richard Weyhrauch) (03/11/89)

d 102