[comp.sys.sun] Sun-Spots Digest, v6n187

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
***********************