Sun-Spots-Request@RICE.EDU (William LeFebvre) (08/18/88)
SUN-SPOTS DIGEST Tuesday, 16 August 1988 Volume 6 : Issue 187 Today's Topics: Re: making yp do name server lookups Re: Problems with groups under PC-NFS Re: Sun's Public Image NFS for IBM PC (*not* PC-NFS) Summary: Proxy ARP on SUN /dev/rst0 vs /dev/rst8 strangeness, SunOS3.5, 3/60M Sun 386i versus ATT 6386? Program to disable the CAPS LOCK key (2) Send contributions to: sun-spots@rice.edu Send subscription add/delete requests to: sun-spots-request@rice.edu Bitnet readers can subscribe directly with the CMS command: TELL LISTSERV AT RICE SUBSCRIBE SUNSPOTS My Full Name Recent backissues are available via anonymous FTP from "titan.rice.edu". For volume X, issue Y, "get sun-spots/vXnY". They are also accessible through the archive server: mail the request "send sun-spots vXnY" to "archive-server@rice.edu" or mail the word "help" to the same address for more information. ---------------------------------------------------------------------- Date: Thu, 11 Aug 88 09:53:24 CST From: Mark Prior <munnari!sirius.ua.oz.au!mrp@uunet.uu.net> Subject: Re: making yp do name server lookups Reference: v6n170 > "makedbm -b" adds a magic entry to your hosts database, YP_INTERDOMAIN or > some such, that tells ypserv that if it can't find a host in the database, > go off and try the nameserver. If only this would work. > I believe you have to have a "fixed" ypserv, and i'm not sure where to get > it If anyone actually gets one that really works let me know. The last `fix' I got from Sun worked great as long as you didn't actually want to login to the machine running it across the net!!! Mark. PS When Sun talk about `The Network is the Computer' they certainly aren't talking about themselves. ------------------------------ Date: Wed, 10 Aug 88 16:24:18 EDT From: Roger Hartmuller <roger@tis.com> Subject: Re: Problems with groups under PC-NFS I previously call the SUN hot-line to ask about the groups problem, and was told that that was a bug in PC-NFS. I was offered no fix for it. Roger Hartmuller Trusted Information Systems roger@tis.com (301)854-6889 ------------------------------ Date: Wed, 10 Aug 88 15:48:41 cdt From: Brain in Neutral <bin@rhesus.primate.wisc.edu> Subject: Re: Sun's Public Image Reference: v6n177 csrobe@icase.arpa (Charles S. (Chip) Roberson): > Over the past year I have noticed what I perceive to be a change in Sun's > image on the net (sun-spots, sun-nets, etc). It seems that cheers are > down and jeers are way up (RARP, YP, Academic Source Licenses, AT&T, > unbundling software, host tables vs. name servers). Does anyone else > share this contention or is the mist just clearing from my eyes. I was just thinking this myself the other day. I guess it really struck me when the message about how awful PC-NFS is came out in sun-spots. Yours, Paul DuBois dubois@rhesus.primate.wisc.edu rhesus!dubois bin@rhesus.primate.wisc.edu rhesus!bin ------------------------------ Date: Wed, 10 Aug 88 13:08:39 EDT From: Carl Beame <attcan!utzoo!utgpu!maccs!beame@uunet.uu.net> Subject: NFS for IBM PC (*not* PC-NFS) We are currently involved in the creation of the commercial product BW-NFS, an implementation of Network File System for the PC (client version). Now that the alpha-test stage is complete, we are looking for interested parties to participate in beta-testing. The physical requirements are PCs with 3Com 3C501 ethernet cards, and DOS 3.x. Servers which implement NFS, RPC and XDR and have a C compiler are a must. - Carl Beame Beame@McMaster.CA ... !uunet!attcan!utzoo!utgpu!maccs!beame (416) 648-6556 ------------------------------ Date: Wed, 10 Aug 88 09:22:01 EDT From: Barry Shein <bzs%bu-cs.bu.edu%bu-it.bu.edu%ntt-sh.ntt.jp@RELAY.CS.NET> Subject: Summary: Proxy ARP on SUN [[ This message was forwarded from the tcp-ip list to the list by Stephen Carr <carrs@trout.nosc.mil>. --wnl ]] Here's the deal: I wrote a proxy arp based upon Sun's rarpd server which has been in production here at BU for over a year. The mainline is definitely Sun's but I call out to a bunch of routines which I wrote and put in a separate file, mainly the logic like "does this packet need a proxy rarp?" and the formatting of the reply and read-in of a table of networks to do Proxy arp for. So I've distributed it only as the .o (binary) of Sun's stuff and my added sources for relinking with a makefile and manual page. Some folks reported problems, the bit shift thing can be easily fixed but the "unaligned read" is a little mysterious (gee, works here, same machine, same OS, I'll have a look.) I don't believe any of this will work under Sun O.S. 4.0 (at least one try to recompile indicated some things had changed and 4.0 sources might be needed to make it work again.) So it's a little shaky at best, got me thru the night. Some of my tardiness in replying to people is explained by the fact that I am currently changing jobs and just haven't been around, I'm catching up (gee, these net requestors are harsh taskmasters!) The good news is this: A) I'll put what I have up for anonymous FTP soon, anyone that has a copy of my stuff should of course feel free to redistribute as stated above, binary of the mainline etc., as I distributed it. B) Haavard Eidnes claims to have completely written a new Proxyd from scratch based on my basic design (not the Sun sources) and I assume will make all sources available. He recently asked if he could just re-work the manual page I distributed and of course I said yes (Haavard: if you still haven't gotten my permission here it is again, if I didn't want people using my stuff I wouldn't give it out!) SOOOOOO... You should probably wait for B) to become available and that will solve all sorts of problems. My Proxyd kind of got out there by accident when someone mentioned I had given them a copy on one of the major lists. I knew it was a bit kinky and never really intended it for wide distribution nor thought all the problems could be worked out w/o a complete re-write due to its being based on the Sun rarpd (tho it was a good idea at the time, it was up in an hour or two.) And, of course, you might also consider Sun's product. Also, as I understand it you can get some limited amount of proxy arping by just sticking published arptab entries in with /etc/arp under SunOS or 4.3 (and probably others.) That's a limited hack as it's per-host rather than per-network so either you need large tables or small networks, but I thought I'd mention it. -Barry Shein ------------------------------ Date: Tue, 9 Aug 88 22:51:28 PDT From: Jason Venner <kadmon.UUCP!jason@spar.slb.com> Subject: /dev/rst0 vs /dev/rst8 strangeness, SunOS3.5, 3/60M I wrote a simple program to see how much data I could fit on a 450ft cartridge tape (included below), and after running it, I was rather purplexed by the results. The results said that I got about the same amount of data on the tape in in ether of the /dev/rst0 (QIC11) or /dev/rst8 (QIC24) formats. It has always been my understanding that I should be able to put on the order of 2 times as much data on the tape in QiC24 format. What gives? I was able to put aproximately 720 126block records on the tape for around 45Megbytes. #include <stdio.h> /* * This program is used to determine just how much data a tape can hold at a * given density/block size... */ #define USAGE "blocksize tapedev" char *name; main( argc, argv ) int argc; char **argv; { int fd; int i; int blocksize; int writesize; char *tape; char *block; char* malloc(); extern char *name; extern int errno; name = argv[0]; if( argc != 3 ) { fprintf( stderr, "Usage:%s %s\n", name, USAGE ); exit( 1 ); } blocksize = atoi( argv[1] ); blocksize *= 512; tape = argv[2]; if( !(block = malloc( (unsigned) blocksize )) ) { fprintf( stderr, "%s:unable to alloc %d blocks", name, blocksize / 512 ); perror( "" ); exit( 2 ); } if( !(fd = open( tape, 1 )) ) { fprintf( stderr, "%s:unable to open %s for writing", name, tape ); perror( "" ); exit( 3 ); } errno = 0; for( i = 0; write( fd, block, blocksize)) == blocksize; i++ ) { ; } } if( errno ) { perror( "write failed" ); } printf( "%s:wrote %d blocks of %d size = %d bytes = %d, total %dMeg\n", name, i+1, blocksize / 512, blocksize, blocksize * (i + 1), blocksize * (i + 1) /1024); exit( 0 ); } -- Jason jason@spar.slb.com jason@violet.berkeley.edu ------------------------------ Date: 11 Aug 88 00:42:15 GMT From: beowulf!marina@ucsd.edu (Marina Roesler) Subject: Sun 386i versus ATT 6386? My new employer wants to give me an ATT 6386 workstation to work with. However, he will instead consider my request for a Sun 386i IF I can justify it ... I've been using Sun 3s for the past 2 years, mainly to write research papers (I make extensive use of Tex/Latex, DviTool, Gremlin, PostScript Previewers, etc). I feel comfortable with this environment and would like to continue using it (or a better one). At my new job I will apparently be needing to run some DOS applications. Thus, the Sun 386i became my natural choice (but not my employers choice, yet). Does anyone out there have had any experience with these two machines? I would very much appreciate any comments on extra capabilities that the Sun 386i may offer, pointers, etc. Thank you, Marina. (arpa : marina@sdcsvax.ucsd.edu) p.s. By the way, the local area network at this place is is not Ethernet but a DATAKIT-like network. Would I have any problems with that if I get the Sun? ------------------------------ Date: Wed, 10 Aug 88 00:01:03 EST From: munnari!cluster.cs.su.oz.au!rex@uunet.uu.net Subject: Program to disable the CAPS LOCK key (1) We too wanted to disable the caps lock key on the keyboard. The following program disable the CAPS key totally. It takes it out of the keyboard table. I think that this program was based upon a program that I saw on the net, but it was a while ago so I can't remember where the original came from. Rex. # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by pengo!rex on Tue Aug 9 23:43:03 EST 1988 # Contents: Makefile caps.1 caps.c echo x - Makefile sed 's/^@//' > "Makefile" <<'@//E*O*F Makefile//' # # Caps Makefile # CFLAGS = -g INSTALL = /usr/local MANDIR = /usr/manl/man1 PROG = caps MAN = caps.1 caps: caps.o $(CC) $(CFLAGS) caps.o -o caps install: $(INSTALL)/$(PROG) $(MANDIR)/$(MAN) $(INSTALL)/$(PROG): $(PROG) install -s -m 511 -o bin $(PROG) $(INSTALL) $(MANDIR)/$(MAN): $(MAN) install -c -m 644 -o man $(MAN) $(MANDIR) clean: rm -f $(PROG) core *.o @//E*O*F Makefile// chmod u=rw,g=rw,o=r Makefile echo x - caps.1 sed 's/^@//' > "caps.1" <<'@//E*O*F caps.1//' @.\" @(#)caps.1 1.0 88/03/18; @.TH CAPS 1 "18 March 1988" @.SH NAME caps \- enable or disable the CAPS key @.SH SYNOPSIS @.B caps [ @.B n ] [ @.B y ] @.SH DESCRIPTION @.IX "caps command" "" "\fLcaps\fP \(em enable or disable the CAPS key @.I Caps with argument @.B n disable the CAPS key on a SUN 3 keyboard. @.I Caps with argument @.B y enables the CAPS key. All by itself, @.I caps reports the current state without changing it. @.SH FILES /dev/kbd @.SH DIAGNOSTICS Exit status is 0 if CAPS is enabled, 1 if not, 2 on error. @//E*O*F caps.1// chmod u=rw,g=rw,o=r caps.1 echo x - caps.c sed 's/^@//' > "caps.c" <<'@//E*O*F caps.c//' /* * Program to control caps key on sun 3 keyboard. * caps [y|n] in the style of mesg. */ #include <sys/types.h> #include <sundev/kbd.h> #include <sundev/kbio.h> #include <stdio.h> int masks[] = { /* masks for keyboard not UPMASK, done seperately */ 0, CAPSMASK, SHIFTMASK, CTRLMASK, }; main(argc,argv) int argc; char *argv[]; { int kb; int t; int x; int e; struct kiockey key; key.kio_station = 0x77; /* CAPS key position */ if ((kb = open("/dev/kbd", 2)) < 0) { fprintf(stderr, "%s: Cannot open kbd\n", *argv); exit(2); } if (ioctl(kb, KIOCTYPE, &t) < 0) { fprintf(stderr, "%s: KIOCTYPE ioctl failed on kbd\n", *argv); exit(2); } if (t != KB_SUN3) { fprintf(stderr, "%s: Not a sun-3 keyboard\n", *argv); exit(2); } if (argc == 1) { /* return current status of CAPS */ if (ioctl(kb, KIOCGETKEY, &key) < 0) { fprintf(stderr, "%s: KIOCGETKEY failed\n", *argv); exit(2); } printf("is %c\n", (key.kio_entry == NOP) ? 'n' : 'y'); exit ((key.kio_entry == NOP) ? 1 : 0); } else switch (*(argv[1])) { case 'y': case 'Y': key.kio_entry = SHIFTKEYS + CAPSLOCK; e = 0; break; case 'n': case 'N': key.kio_entry = NOP; e = 1; break; default: fprintf(stderr, "%s: Invalid option %c\n", *argv, *(argv[1])); exit(2); } for (x = 0; x < (sizeof(masks)/sizeof(masks[0])); x++) { key.kio_tablemask = masks[x]; if (ioctl(kb, KIOCSETKEY, &key) < 0) { fprintf(stderr, "%s: KIOCSETKEY failed\n", *argv); exit(2); } } key.kio_tablemask = UPMASK; key.kio_entry = NOP; if (ioctl(kb, KIOCSETKEY, &key) < 0) { fprintf(stderr, "%s: KIOCSETKEY failed\n", *argv); exit(2); } exit(e); } @//E*O*F caps.c// chmod u=rw,g=r,o=r caps.c exit 0 ------------------------------ Date: Wed, 10 Aug 88 11:12:20 EDT From: sally.cs.utexas.edu!harvard!srs!matt@cs.utexas.edu Subject: Program to disable the CAPS LOCK key (2) Funny wnl should mention it, but we've used this program for well over a year. I've sent it to a couple of people as an example of how to remap the keyboard... This is not a shell archive and there is no makefile because you don't need one (just say "make nolock") or, if you wish to be optimal, try "cc -O -o nolock nolock.c". Usage is: nolock [on | off] nolock will tell you its current state with no argument. Matt Goheen uucp: {rutgers,ames}!rochester!srs!matt elsewhere: matt@srs.uucp OR matt%srs.uucp@harvard.harvard.edu ----- cut here and save in "nolock.c" ----- #include <sys/types.h> #include <sundev/kbd.h> #include <sundev/kbio.h> #include <sys/file.h> #include <stdio.h> extern int errno; /* nolock: Disable the CAPS key on the Sun-3 keyboard. Works by turning ** the CAPS key into a NOP for the UNSHIFTED and SHIFTED states. You ** can still get into CAPS-LOCK mode by hitting CTRL-CAPS. You can ** get out by just hitting the CAPS key (because you are in the CAPS- ** LOCK mode). SHIFT-CAPS will NOT get you out due to the priority ** assignments for the translation tables. ** ** Could check to see if it was being run on the console to avoid ** (some) problems with other people re-mapping keyboards. */ main(argc, argv) register int argc; register char **argv; { struct kiockey thekey; register int fd, on; int type; if (argc > 2) { fprintf(stderr, "%s: too many args\n", *argv); exit(1); } else if ((argc==2) && (on=strcmp("on", argv[1])) && strcmp("off", argv[1])) { fprintf(stderr, "%s: bad arg (\"%s\")\n", *argv, argv[1]); exit(1); } if ((fd = open("/dev/kbd", O_RDONLY)) == -1) { fprintf(stderr, "%s: can't open kbd\n", *argv); exit(1); } if (ioctl(fd, KIOCTYPE, &type) == -1) { fprintf(stderr, "%s: can't get kbd type (errno: %d)\n", *argv, errno); exit(1); } if (type == KB_SUN3) { thekey.kio_tablemask = 0; /* unshifted */ thekey.kio_station = 0x77; /* Sun-3 Caps Lock key */ if (argc==1) { if (ioctl(fd, KIOCGETKEY, &thekey) == -1) { fprintf(stderr, "%s: bad return from ioctl (%d)\n", argv[0], errno); exit(1); } if (thekey.kio_entry == NOP) printf("is on\n"); else printf("is off\n"); exit(0); } else if (!on) thekey.kio_entry = NOP; else thekey.kio_entry = SHIFTKEYS + CAPSLOCK; if (ioctl(fd, KIOCSETKEY, &thekey) == -1) { fprintf(stderr, "%s: bad return from ioctl (%d)\n", argv[0], errno); exit(1); } thekey.kio_tablemask = SHIFTMASK; /* shifted */ if (ioctl(fd, KIOCSETKEY, &thekey) == -1) { fprintf(stderr, "%s: bad return from ioctl (%d)\n", argv[0], errno); exit(1); } } else { fprintf(stderr, "%s: not a SUN-3 keyboard\n", *argv); exit(1); } } ------------------------------ End of SUN-Spots Digest ***********************