Think I've got this pretty much figured out.
First, ps_eoj@ was causing problems because ifhp was looking for messages
like "%%[ echo: ... ]%%\n", but the printer wasn't putting a newline at
the end. I gather this is due to the way the ps_status_code string is
read in from ifhp.conf; adding an extra PostScript comment line at the end
fixed it (I added "%%EOF" for good measure).
Second, netatalk's pap silently discarded nearly all of the status
messages. I hacked pap.c to instead put the messages on stderr,
surrounded by "%%[ " and " ]%%\n" (and throttled the message rate a bit,
as there were cases when pap was grabbing status _far_ too often). In
order to work with this modification, ifhp needed the following options:
ps_eoj@,ps_ctrl_t@,end_status=idle:busy:waiting:busy;:waiting;
I admit this isn't the most elegant of solutions, but it lets AppleTalk
printing work without having to resort to status@.
_Rob
On April 11th, Rob Joyce wrote:
> Thanks. The latest version I see on ftp.lprng.com is 3.5.8alpha2, dated
> April 3.
>
> One thing I noticed is that ps_eoj@ and ps_eoj_at_end@ didn't have any
> effect until I added the following to vars.c:
>
> { "Ps_eoj", "ps_eoj", (char **)&Ps_eoj, FLGV,0 },
> { "Ps_eoj_at_end", "ps_eoj_at_end", (char **)&Ps_eoj_at_end, FLGV,0 },
>
> Even completely quashing the ^D's doesn't quite solve the problem, as the
> printer will wait for data as long as the connection's open. From what I
> gather, ^T and ^D are technically invalid over non-serial-line PostScript
> channels. Looking at netatalk's pap.c source, it appears that status
> requests (^T) and EOJ (^D) are sent out-of-band, so it would be
> impossible(*) for ifhp to send these over a pipe to lp=|/path/to/pap.
>
> As pap gathers status information anyway, one can pretty easily modify
> pap.c to put this on stdout or stderr. My question now is, how does one
> format/route this information so it's visible in lpq? (It would be
> helpful, e.g., to see "paper out" status messages in lpq.) I tried
> forcing both ifhp's and lprng's poll_for_status on, but that didn't work.
> I did -- once -- see a PostScript status message in the Status: (not
> Filter_status:) line of lpq, but I've been unable to repeat it.
>
> Thanks,
> _Rob
>
> (*) I guess the Adobe TBCP standard would help, but I'm a little hesitant
> to try that.
>
>
> On April 10th, Patrick Powell wrote:
>
> > > Date: Mon, 8 Apr 2002 20:57:47 -0400
> > > From: Rob Joyce <[EMAIL PROTECTED]>
> > > To: [EMAIL PROTECTED]
> > > Subject: LPRng: Netatalk, LaserWriter, and ^D
> > >
> > > Hi all,
> > >
> > > We have LPRng 3.8.10 and ifhp 3.5.7 running on Solaris 7, and can print
> > > just fine to HP/Jetdirect printers and others. But for some reason
> > > printing via AppleTalk fails to both Apple and HP printers (that normally
> > > can do AppleTalk); they seem to issue PostScript errors about ^D.
> > > netatalk is 1.4b2+asun2.1.4 from May 2000, and
> > > "cat test.ps | /usr/local/bin/pap -e -p 'printer name'" works fine.
> > >
> > > lpd_printcap contains:
> > >
> > > iss
> > > :tc=.cf_server
> > > :cm=B327, LaserWriter Pro 630, ISS Group
> > > :lp=| -$ /usr/local/bin/pap -e -p "iss - B317, LaserWriter Pro 630"
> > > :ifhp=model=apple,debug=1
> > >
> > > .cf_server
> > > :server
> > > :filter=/usr/local/libexec/filters/ifhp
> > > :sd=/var/spool/lpd/%P
> > > :mx=0
> > > :mc=0
> > >
> > > Adding ",ps_eoj@,ps_eoj_at_start@,ps_eoj_at_end@" to the end of the ifhp=
> > > string doesn't help.
> > >
> > > The "lpq -Piss -L" output is attached (where the first job has the default
> > > ps_eoj* settings and the second has the ps_eoj*@ stuff).
> > >
> > > Why would the printer be so upset about the ^D ?
> >
> > I don't know... but I have found a possible cause... Please get
> > ifhp-3.5.8 (next release) and try it.
> >
> > Patrick Powell Astart Technologies,
> > [EMAIL PROTECTED] 9475 Chesapeake Drive, Suite D,
> > Network and System San Diego, CA 92123
> > Consulting 858-874-6543 FAX 858-279-8424
> > LPRng - Print Spooler (http://www.lprng.com)
>
>
>
-----------------------------------------------------------------------------
YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST
The address you post from MUST be your subscription address
If you need help, send email to [EMAIL PROTECTED] (or lprng-requests
or lprng-digest-requests) with the word 'help' in the body. For the impatient,
to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED]
with: | example:
subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED]
unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED]
If you have major problems, send email to [EMAIL PROTECTED] with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------