[comp.protocols.appletalk] Appletalktype

deke@valhalla.ee.rochester.edu (12/22/88)

This is a followup to my recent article asking about setting the
'appletalktype' field on a LaserWriter.  Many people wrote and asked
me to summarize my findings.

My motivation was to hide actual LaserWriters from the Mac 'chooser' 
so that everyone would see the "spoolers" but nothing else.  This helps 
to avoid the situation where users reset the LaserWriter with 'old' version 
of LaserPrep (which breaks lots of things when you are depending on
a particular level of LaserPrep).  My department has about 200 users of
Macs and UNIX machines... its just not possible to control the versions
of LaserPrep hanging around (though I wish it were).

A local postscript hacker here in my own department helped me find
a minor bug in my PostScript program.  I now can change the appletalktype
on my LaserWriters to 'LaserPrinter' with the following:

	%!
	serverdict begin 0 exitserver
	statusdict begin
	statusdict /appletalktype (LaserPrinter) put
	end

As I feared, and as others pointed out, this breaks things.  The spooler
dies on the UNIX end, probably because nbpd(8) won't keep track of the
odd appletalktype (that's my uneducated guess).

I believe that a potential solution could be to allow for the spoolers
and the nbpd to recognize multiple or alternate appletalktypes either
through a configuration file, or even hardcoded but documented.

I invite comments on this idea.  I would like to hear both from Kinetics,
and other users.  Perhaps there are more obvious workarounds to the
problem I have described.

      ^Deke Kassabian,   deke@ee.rochester.edu   or   ur-valhalla!deke
   Univ of Rochester, Dept of EE, Rochester, NY 14627     (+1 716-275-3106)

inei@cs.glasgow.ac.UK (Nick Nei) (12/22/88)

I have successfully changed the product name of our LaserWriter in
Glasgow so that it does not appear in the chooser.  Instead the name
used by lwsrv appears in the Chooser.  This is part of my scheme to
prevent unauthorised access to the LaserWriters.  The PostScript that
effects this is:

	%!
	serverdict begin 0 exitserver
	statusdict begin
	(F091.LocalTalk:LazerWriter) setprintername

where "LazerWriter" (with the 'z' instead of the 's') is the new product name.  
Remember to update your /etc/cap.printers file with:

	lwf091=F091.LocalTalk:LazerWriter@*

If you invoke lwsrv as

	lwsrv -n F091 -p lwf091 ...

then the name "F091" will appear instead of "F091.LocalTalk" in the
Chooser.  (atlook will however see both.)

You should send the PostScript using lwpr like so:

	$ lwpr -pF091.LocalTalk:LaserWriter@\* rename

where "rename" is the file containing the PostScript.  This has worked
for me since September.  In fact I managed to embed non-printable ASCII
in the product name like "LazerWriter^A^B^C" to make it more difficult
for would be hackers.

ARPA:	inei%cs.glasgow.ac.uk@nss.cs.ucl.ac.uk USENET:	inei@cs.glasgow.uucp
Mail:	Nick Nei, Computing Science Dept., 
	Glasgow Univ., 17 Lilybank Gardens,
      	Glasgow G12 8QQ, UK.  Tel: (041) 339 8855