home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.unix.admin:4291 comp.sys.sun.admin:4917
- Newsgroups: comp.unix.admin,comp.sys.sun.admin
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!eff!ckd
- From: ckd@eff.org (Christopher Davis)
- Subject: Re: HELP: /etc/resolv.conf for a SUN IPC
- In-Reply-To: nws@stout.atd.ucar.edu's message of Thu, 23 Jul 1992 16:01:56 GMT
- Message-ID: <CKD.92Jul23164651@loiosh.eff.org>
- Sender: usenet@eff.org (NNTP News Poster)
- Nntp-Posting-Host: loiosh.eff.org
- Organization: Electronic Frontier Foundation Tech Central
- References: <1992Jul23.160156.7101@ncar.ucar.edu>
- Date: Thu, 23 Jul 1992 20:49:09 GMT
- Lines: 271
-
- Eddie> == Eddie Roberts (The National Weather Service) <nws@stout.atd.ucar.edu>
-
- Eddie> I am trying to get my system (SUN IPC 4.1.2) to use nameservers
- Eddie> recently installed. I added the following lines into the
- Eddie> /etc/resolv.conf file.
-
- Can I kill Sun now? Can I?
-
- The problem is that Sun assumes we all love and use NIS, and DNS is only
- "supported" through setting magic cookies in the NIS hosts map, etc.
-
- Here's a repost of Greg Earle's explanation as to how to fix this (IMHO,
- extremely annoying) situation.
-
- Newsgroups: comp.sys.sun.admin
- From: earle@poseur.JPL.NASA.GOV (Greg Earle - Sun JPL on-site Software Support)
- Subject: Re: Domain Name Server
- Organization: Sun Microsystems - JPL on-site Software Support
-
- In article <1992Jun19.193017.2952@asihub.sd.cadence.com> Eric D. Williams <ericw@sd.cadence.com> writes:
- >In article <1992Jun3.123530.20956@hp9000.csc.cuhk.hk> ST Wong writes:
- >>I'm configuring our Sparc2, running SunOS 4.1. My problem is that I
- >>uses HP 845S as our domain name server while the Sparc2 is a client
- >>only. I follow the instructions in the Network Admin. manual of SunOS
- >>to set up those files needed but, it doesn't work. When I uses inet
- >>services (e.g. telnet, ftp, etc), it only searches the /etc/hosts file.
- >>However, when I uses nslookup, it points to the domain name server !
- >>
- >>I don't know what's wrong with that.
- >>
- >>Would anyone please help ? Any help will be much appreciated.
- >
- > Well sure I can help you, but you won't like the answer. Sun makes
- > it look like it supports DNS, but they really don't. SunOS will only
- > use either local files or NIS to resolve names. It doesn't matter if
- > /etc/resolve.conf is set up correctly or not. That's because all the
- > name resolver libraries won't look to the nameserver, only to NIS.
- > To get DNS to work on a Sun, you need to:
- >
- > 1. Run NIS.
- > 2. Make *all* you NIS servers be Suns.
- > 3. When you start ypserv (on your Sun server), you specify
- > a special switch on the command line to do DNS lookups.
- > Of cource only SunOS supports this switch.
- >
- > Only the ypserv process will use the correct DNS resolver routines to
- > access the nameserver. So Sun is really doing their DNS lookups
- > through NIS. But what if you don't run NIS?? Tough. Even a lowly
- > Macintosh or PC has the right stuff to access a name server, but a
- > Sun? Forget it.
-
- It is my greatest fear that someone on the Net will read this posting and
- actually consider it to be something authoritative as opposed to the
- unmitigated rubbish it, in fact, is.
-
- For your future edification, I present the following 12 Step program for your
- rehabilitation:
-
- 1. Ensure that the "Shlib Custom" optional software category has been loaded
- from your SunOS 4.1.x O/S media.
-
- 2. cd to "/usr/lib/shlib.etc", and shove the prepared README file to README-
-
- 3. Replace said README file with the version to follow at the end of this
-
- 4. Follow the instructions contained within said README, paying close attention
- once you've reached step #4
-
- 5. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 6. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 7. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 8. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 9. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 10. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 11. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- 12. Repeat after me, "Hmmn, this crow sure is mighty tasty!"
-
- Enjoy your meal.
-
- ------------------------------ >8 Cut here 8< ------------------------------
-
- This is a procedure you can use to substitute or add
- a module in your shared libc library.
-
- Note! if you are interested in a System V libc, please substitute
- libcs5_pic.a for libc_pic.a in step 3,
- libcs5.so.x.y.z for libc.so.x.y.z in step 14.
-
- -------------------------------------------------------------------------
-
- 1. Become super user
- % su
-
- 2. Make a temporary directory
- % mkdir tmp
-
- 3. Change to the "tmp" directory just made, extract the pic .o from
- libc_pic.a and rm the file __.SYMDEF. The reason you need to do
- the 2 "mv" commands is because "ar" truncated filenames over
- 16 characters.
- % cd tmp
- % ar x ../libc_pic.a
- % rm __.SYMDEF
- % mv rpc_dtablesize. rpc_dtablesize.o
- % mv rpc_commondata. rpc_commondata.o
- % mv xccs_multibyte. xccs_multibyte.o
-
- Note: this last mv command is not present in the original version of the
- README file that comes in /usr/lib/shlib.etc/README. If this step is
- omitted, you will produce a shared libc.so that does not contain the
- xccs_multibyte.o module. This module contains versions of the library
- functions "mbtowc", "wctomb", "mbstowcs" and "wcstombs" (see mblen(3) for
- more info on these multi-byte character functions), which operate on the
- Xerox XCCS codeset standard. Specifically, the missing functions will be
-
- _mbtowc_xccs(pwc, s, n)
- _wctomb_xccs(s, pwc)
- _mbstowcs_xccs(pwc, s, n)
- _wcstombs_xccs(s, pwc, n)
-
- These are called by the corresponding "mbtowc", "wctomb", "mbstowcs" and
- "wcstombs" functions if the codeset is XCCS (other codesets include EUC,
- ISO 2022, and a default). In short, if you use any Internationalization
- features and need to handle multi-byte character sets, do not forget this
- step.
-
- 4. If you are doing this to specifically create a libc.so that contains
- the DNS resolver routines for doing hostname/hostaddr lookups via the
- Domain Name Service (and not NIS/YP), do these additional steps. If not,
- please skip down to step 10.
-
- 5. Extract the contents of /usr/lib/libresolv.a into the tmp directory:
- % ar x /usr/lib/libresolv.a
- % rm __.SYMDEF
-
- The libresolv.a contains object modules that are position
- independant, so they can be added to the libc_pic modules without fear.
-
- NOTE: You may wish to install Sun patch 100465-01 *first* before taking
- this step, as it provides a newer patched version of /usr/lib/libresolv.a.
- This fixes a serious bug that causes DNS nameserver lookups to fail if the
- first name server query yields ECONNREFUSED (Connection refused), even if
- the other nameservers specified in /etc/resolv.conf are both up & working:
-
- Patch i.d. Bug i.d's SunOS Description
- ---------- --------- ----- -----------
- 100465-01 1076977
- 4.1 4.1 4.1.2 DNS res_send() fails if first nameserver
- in /etc/resolv.conf returns ECONNREFUSED
-
- 6. Remove the old routine to do the hostname/addr resolution:
- % rm gethostent.o
-
- 7. Remove the libresolv module that contains `strncasecmp' (which is now
- in the main C library, so it is redundant):
- % rm strcasecmp.o
-
- 8. As also mentioned below (in step 11), edit the file `lorder-sparc' in the ..
- directory. Remove the reference to `gethostent.o' and add the
- references to the resolver library routines by applying this patch:
-
- % cd ..
- % diff -rc2 lorder-sparc.orig lorder-sparc
- *** lorder-sparc.orig Thu Feb 8 05:27:46 1990
- --- lorder-sparc Mon Apr 9 12:58:59 1990
- ***************
- *** 150,154 ****
- getwd.o
- getnetgrent.o
- ! gethostent.o
- ypxdr.o
- ttyname.o
- --- 150,161 ----
- getwd.o
- getnetgrent.o
- ! gethostnamadr.o
- ! sethostent.o
- ! res_query.o
- ! res_mkquery.o
- ! res_send.o
- ! res_debug.o
- ! res_comp.o
- ! res_init.o
- ypxdr.o
- ttyname.o
-
- 9. If you are running under SunOS 4.1.2, you will want to add the entry
- "mblib.o" to the very end of the "lorder-sparc" file. If you aren't running
- SunOS 4.1.2, you may now skip down to step 13.
-
- Also, you will need to patch the Makefile, as follows:
-
- *** Makefile.orig Wed Oct 23 10:13:00 1991
- --- Makefile Mon Feb 24 18:38:08 1992
- ***************
- *** 9,13 ****
-
- libc.so:
- ! ld -assert pure-text `${OBJSORT} lorder-sparc tmp`
- /bin/ls /usr/lib/libc.so.* > TMP_FILE
- mv a.out libc.so.`cat TMP_FILE | awk -f ${AWKFILE}`
- --- 9,13 ----
-
- libc.so:
- ! ld -assert pure-text `${OBJSORT} lorder-sparc tmp` -ldl
- /bin/ls /usr/lib/libc.so.* > TMP_FILE
- mv a.out libc.so.`cat TMP_FILE | awk -f ${AWKFILE}`
- ***************
- *** 15,19 ****
-
- libcs5.so:
- ! ld -assert pure-text `${OBJSORT} lorder-sparc tmp`
- /bin/ls /usr/5lib/libc.so.* > TMP_FILE
- mv a.out libc.so.`cat TMP_FILE | awk -f ${AWKFILE}`
- --- 15,19 ----
-
- libcs5.so:
- ! ld -assert pure-text `${OBJSORT} lorder-sparc tmp` -ldl
- /bin/ls /usr/5lib/libc.so.* > TMP_FILE
- mv a.out libc.so.`cat TMP_FILE | awk -f ${AWKFILE}`
-
- 10. Replace or add the .o that you wanted by doing a copy. Please
- note here that you are advised to create your object with
- the following compiler option, i.e "cc -c -pic yourprogram.c" to make
- it shareable.
- % cp your.o .
-
- 11. If you add a new module then you need to do this step.
- You need to edit the file "lorder-sparc" and add the name of the file
- you have copied from step 4 at the end of this file.
- % vi ../lorder-sparc
-
- 12. % cd ..
-
- 13. % make libc.so
-
- 14. Now you should have some libc.so.x.y.z built in the current directory.
- It is recommended that you tested out this library at this point
- before installing it. You can do so by setting the environment
- LD_LIBRARY_PATH to the current directory for example:
- % setenv LD_LIBRARY_PATH `pwd`
- % your_favorite_test_cmd
- Once you are satisfied that the new library worked, you can proceed
- to install it with the following commands:
- % cp libc.so.x.y.z /usr/lib
- % ldconfig
- % unsetenv LD_LIBRARY_PATH
-
- 15. You are now running with the new library. You can verify this by
- doing a trace command of, let's say, "date".
- % trace date
- The output should informed you that the new library is being used.
- --
- ______ ,__,~~, \
- / / \ ______________________________________________________________ ` ~^ \ _|
- / "Who would have ever believed that I could include an ASCII \ ()^()---|/@) \ picture of myself in my .signature file!" ___ / /_ )'
- \______________________________________________________,' \_\__ | . / | `-' \___, / \ Greg Earle earle@poseur.JPL.NASA.GOV \`
-
-
- --
- Christopher Davis * ckd@eff.org * System Administrator, EFF * +1 617 864 0665
- ``The First Amendment is often inconvenient. But that is besides the
- point. Inconvenience does not absolve the government of its obligation
- to tolerate speech.'' --Justice Anthony Kennedy, in 91-155
-