Subject: Re: Changes to lpd to run if and of on remote printers
To: NetBSD Miscellaneous Technical Discussion List <tech-misc@NetBSD.ORG>
From: David Brownlee <abs@NetBSD.ORG>
List: tech-misc
Date: 08/29/2002 15:49:16
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-815399108-1030632556=:21266
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Thu, 29 Aug 2002, Greg A. Woods wrote:

> [ On Wednesday, August 28, 2002 at 15:38:44 (+0100), David Brownlee wrote: ]
> > Subject: Changes to lpd to run if and of on remote printers
> >
> > 	lpd has a '-r' option to run 'of' for remote printers, but it
> > 	doesn't actually pass the contents of any files through it.
> >
> > 	I've come up with a set of patches that handles this - does
> > 	anyone have any thought/objections/comments?
>
> It sounds like a good idea -- I've wanted to do something like this in
> the past myself, though in that case I ened up using a different host
> with a different print spooling implementation.

	This is an updated version that doesn't pass the control file
	through the filter (awarded myself 73 dork points and a clue by
	four to the head for that)...

-- 
		David/absolute          -- www.netbsd.org: No hype required --

--0-815399108-1030632556=:21266
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=diff
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.44.0208291549160.21266@moss.i.formula1.com>
Content-Description: 
Content-Disposition: attachment; filename=diff

SW5kZXg6IGxwZC9wcmludGpvYi5jDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmFzZXNyYy91c3Iuc2Jpbi9scHIvbHBk
L3ByaW50am9iLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjM0DQpkaWZm
IC11IC1CIC1yMS4zNCBwcmludGpvYi5jDQotLS0gbHBkL3ByaW50am9iLmMJ
MjAwMi8wNy8xNCAxNToyODowMAkxLjM0DQorKysgbHBkL3ByaW50am9iLmMJ
MjAwMi8wOC8yOSAxNDo0NzoyMg0KQEAgLTExNyw2ICsxMTcsNyBAQA0KIHN0
YXRpYyBjaGFyCXB4bGVuZ3RoWzEwXSA9ICIteSI7CS8qIHBhZ2UgbGVuZ3Ro
IGluIHBpeGVscyAqLw0KIHN0YXRpYyBjaGFyCXB4d2lkdGhbMTBdID0gIi14
IjsJLyogcGFnZSB3aWR0aCBpbiBwaXhlbHMgKi8NCiBzdGF0aWMgY2hhcgl0
ZW1wZmlsZVtdID0gImVycnNYWFhYWFgiOyAvKiBmaWxlIG5hbWUgZm9yIGZp
bHRlciBvdXRwdXQgKi8NCitzdGF0aWMgY2hhcgl0ZW1wcmVtb3RlW10gPSAi
cmVtb3RlWFhYWFhYIjsgLyogZmlsZSBuYW1lIGZvciByZW1vdGUgZmlsdGVy
ICovDQogc3RhdGljIGNoYXIJd2lkdGhbMTBdID0gIi13IjsJLyogcGFnZSB3
aWR0aCBpbiBzdGF0aWMgY2hhcmFjdGVycyAqLw0KIA0KIHN0YXRpYyB2b2lk
CWFib3J0cHIoaW50KTsNCkBAIC0xMjQsMTQgKzEyNSwxNSBAQA0KIHN0YXRp
YyBpbnQJZG9mb3JrKGludCk7DQogc3RhdGljIGludAlkcm9waXQoaW50KTsN
CiBzdGF0aWMgdm9pZAlpbml0KHZvaWQpOw0KK3N0YXRpYyB2b2lkCXNldHVw
X29maWx0ZXIoaW50KTsNCitzdGF0aWMgdm9pZAljbG9zZV9vZmlsdGVyKHZv
aWQpOw0KIHN0YXRpYyB2b2lkCW9wZW5wcih2b2lkKTsNCiBzdGF0aWMgdm9p
ZAlvcGVubmV0KGNoYXIgKik7DQogc3RhdGljIHZvaWQJb3BlbnR0eSh2b2lk
KTsNCiBzdGF0aWMgdm9pZAlvcGVucmVtKHZvaWQpOw0KIHN0YXRpYyBpbnQJ
cHJpbnQoaW50LCBjaGFyICopOw0KIHN0YXRpYyBpbnQJcHJpbnRpdChjaGFy
ICopOw0KLXN0YXRpYyB2b2lkCXBzdGF0dXMoY29uc3QgY2hhciAqLCAuLi4p
DQotCV9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18oX19wcmludGZfXywgMSwg
MikpKTsNCitzdGF0aWMgdm9pZAlwc3RhdHVzKGNvbnN0IGNoYXIgKiwgLi4u
KTsNCiBzdGF0aWMgY2hhcglyZXNwb25zZSh2b2lkKTsNCiBzdGF0aWMgdm9p
ZAlzY2FuX291dChpbnQsIGNoYXIgKiwgaW50KTsNCiBzdGF0aWMgY2hhcgkq
c2NubGluZShpbnQsIGNoYXIgKiwgaW50KTsNCkBAIC0xNjcsNiArMTY5LDcg
QEANCiAJc2lnbmFsKFNJR1RFUk0sIGFib3J0cHIpOw0KIA0KIAkodm9pZClt
a3RlbXAodGVtcGZpbGUpOwkJLyogT0sgKi8NCisJKHZvaWQpbWt0ZW1wKHRl
bXByZW1vdGUpOwkvKiBPSyAqLw0KIA0KIAkvKg0KIAkgKiB1c2VzIHNob3J0
IGZvcm0gZmlsZSBuYW1lcw0KQEAgLTI1NiwxMyArMjU5LDggQEANCiAJCWVs
c2UgaWYgKGkgPT0gUkVQUklOVCAmJiArK2VycmNudCA8IDUpIHsNCiAJCQkv
KiB0cnkgcmVwcmludGluZyB0aGUgam9iICovDQogCQkJc3lzbG9nKExPR19J
TkZPLCAicmVzdGFydGluZyAlcyIsIHByaW50ZXIpOw0KLQkJCWlmIChvZmls
dGVyID4gMCkgew0KLQkJCQlraWxsKG9maWx0ZXIsIFNJR0NPTlQpOwkvKiB0
byBiZSBzdXJlICovDQotCQkJCSh2b2lkKWNsb3NlKG9mZCk7DQotCQkJCXdo
aWxlICgoaSA9IHdhaXQoTlVMTCkpID4gMCAmJiBpICE9IG9maWx0ZXIpDQot
CQkJCQk7DQotCQkJCW9maWx0ZXIgPSAwOw0KLQkJCX0NCisJCQlpZiAob2Zp
bHRlciA+IDApDQorCQkJCWNsb3NlX29maWx0ZXIoKTsNCiAJCQkodm9pZClj
bG9zZShwZmQpOwkvKiBjbG9zZSBwcmludGVyICovDQogCQkJaWYgKGZ0cnVu
Y2F0ZShsZmQsIHBpZG9mZikgPCAwKQ0KIAkJCQlzeXNsb2coTE9HX1dBUk5J
TkcsICIlczogJXM6ICVtIiwgcHJpbnRlciwgTE8pOw0KQEAgLTI5OCw2ICsy
OTYsNyBAQA0KIAkJCQkodm9pZCl3cml0ZShvZmQsIFRSLCBzdHJsZW4oVFIp
KTsNCiAJCX0NCiAJCSh2b2lkKXVubGluayh0ZW1wZmlsZSk7DQorCQkodm9p
ZCl1bmxpbmsodGVtcHJlbW90ZSk7DQogCQlleGl0KDApOw0KIAl9DQogCWdv
dG8gYWdhaW47DQpAQCAtODU0LDcgKzg1MywzMCBAQA0KIAlzdHJ1Y3Qgc3Rh
dCBzdGI7DQogCWNoYXIgYnVmW0JVRlNJWl07DQogCWludCBzaXplcnIsIHJl
c3A7DQorCWV4dGVybiBpbnQgcmZsYWc7DQorDQorCWlmICh0eXBlID09ICdc
MicgJiYgcmZsYWcgJiYgKE9GIHx8IElGKSkgew0KKwkJaW50CXNhdmVfcGZk
ID0gcGZkOw0KIA0KKwkJKHZvaWQpdW5saW5rKHRlbXByZW1vdGUpOw0KKwkJ
cGZkID0gb3Blbih0ZW1wcmVtb3RlLCBPX1dST05MWXxPX0NSRUFUfE9fVFJV
TkN8T19FWENMLCAwNjY0KTsNCisJCWlmIChwZmQgPT0gLTEpIHsNCisJCQlw
ZmQgPSBzYXZlX3BmZDsNCisJCQlyZXR1cm4gRVJST1I7DQorCQl9DQorCQlz
ZXR1cF9vZmlsdGVyKDEpOw0KKwkJc3dpdGNoIChpID0gcHJpbnQoJ2YnLCBm
aWxlKSkgew0KKwkJY2FzZSBFUlJPUjoNCisJCWNhc2UgUkVQUklOVDoNCisJ
CWNhc2UgRklMVEVSRVJSOg0KKwkJY2FzZSBBQ0NFU1M6DQorCQkJcmV0dXJu
KGkpOw0KKwkJfQ0KKwkJY2xvc2Vfb2ZpbHRlcigpOw0KKwkJcGZkID0gc2F2
ZV9wZmQ7DQorCQlmaWxlID0gdGVtcHJlbW90ZTsNCisJfQ0KKw0KIAlpZiAo
bHN0YXQoZmlsZSwgJnN0YikgPCAwIHx8IChmID0gb3BlbihmaWxlLCBPX1JE
T05MWSkpIDwgMCkNCiAJCXJldHVybihFUlJPUik7DQogCS8qDQpAQCAtMTE2
NCw2ICsxMTg3LDcgQEANCiAJCQlpbml0Z3JvdXBzKHB3LT5wd19uYW1lLCBw
dy0+cHdfZ2lkKTsNCiAJCQlzZXRnaWQocHctPnB3X2dpZCk7DQogCQkJc2V0
dWlkKERVKTsNCisJCQlzaWduYWwoU0lHQ0hMRCwgU0lHX0RGTCk7DQogCQl9
DQogCQlyZXR1cm4gKHBpZCk7DQogCX0NCkBAIC0xMTg4LDYgKzEyMTIsNyBA
QA0KIGFib3J0cHIoaW50IHNpZ25vKQ0KIHsNCiAJKHZvaWQpdW5saW5rKHRl
bXBmaWxlKTsNCisJKHZvaWQpdW5saW5rKHRlbXByZW1vdGUpOw0KIAlraWxs
KDAsIFNJR0lOVCk7DQogCWlmIChvZmlsdGVyID4gMCkNCiAJCWtpbGwob2Zp
bHRlciwgU0lHQ09OVCk7DQpAQCAtMTI3NiwzNCArMTMwMSwxOSBAQA0KIAl0
b2YgPSAoY2dldGNhcChicCwgImZvIiwgJzonKSA9PSBOVUxMKTsNCiB9DQog
DQotLyoNCi0gKiBBY3F1aXJlIGxpbmUgcHJpbnRlciBvciByZW1vdGUgY29u
bmVjdGlvbi4NCi0gKi8NCisvKiAgICAgIA0KKyAqIFNldHVwIG91dHB1dCBm
aWx0ZXIgLSBjYWxsZWQgb25jZSBmb3IgbG9jYWwgcHJpbnRlciwgb3IgKGlm
IC1yIGdpdmVuIHRvIGxwZCkNCisgKiBvbmNlIHBlciBmaWxlIGZvciByZW1v
dGUgcHJpbnRlcnMNCisgKi8gICAgIA0KIHN0YXRpYyB2b2lkDQotb3BlbnBy
KHZvaWQpDQorc2V0dXBfb2ZpbHRlcihpbnQgY2hlY2tfcmZsYWcpDQogew0K
LQlpbnQgaSwgbm9maWxlOw0KLQljaGFyICpjcDsNCiAJZXh0ZXJuIGludCBy
ZmxhZzsNCi0NCi0JaWYgKCFyZW1vdGUgJiYgKkxQKSB7DQotCQlpZiAoKGNw
ID0gc3RyY2hyKExQLCAnQCcpKSkNCi0JCQlvcGVubmV0KGNwKTsNCi0JCWVs
c2UNCi0JCQlvcGVudHR5KCk7DQotCX0gZWxzZSBpZiAocmVtb3RlKSB7DQot
CQlvcGVucmVtKCk7DQotCX0gZWxzZSB7DQotCQlzeXNsb2coTE9HX0VSUiwg
IiVzOiBubyBsaW5lIHByaW50ZXIgZGV2aWNlIG9yIGhvc3QgbmFtZSIsDQot
CQkJcHJpbnRlcik7DQotCQlleGl0KDEpOw0KLQl9DQogDQotCS8qDQotCSAq
IFN0YXJ0IHVwIGFuIG91dHB1dCBmaWx0ZXIsIGlmIG5lZWRlZC4NCi0JICov
DQotCWlmICgoIXJlbW90ZSB8fCByZmxhZykgJiYgT0YpIHsNCisJaWYgKE9G
ICYmICghcmVtb3RlIHx8IChjaGVja19yZmxhZyAmJiByZmxhZykpKSB7DQog
CQlpbnQgcFsyXTsNCisJCWludCBpLCBub2ZpbGU7DQorCQljaGFyICpjcDsN
CiANCiAJCXBpcGUocCk7DQogCQlpZiAoKG9maWx0ZXIgPSBkb2ZvcmsoRE9B
Qk9SVCkpID09IDApIHsJLyogY2hpbGQgKi8NCkBAIC0xMzI3LDYgKzEzMzcs
NTEgQEANCiAJCW9mZCA9IHBmZDsNCiAJCW9maWx0ZXIgPSAwOw0KIAl9DQor
fQ0KKw0KKy8qDQorICogQ2xvc2UgdGhlIG91dHB1dCBmaWx0ZXIgYW5kIHJl
c2V0IG9mZCBiYWNrIHRvIHRoZSBtYWluIHBmZCBkZXNjcmlwdG9yDQorICov
DQorc3RhdGljIHZvaWQNCitjbG9zZV9vZmlsdGVyKHZvaWQpDQorew0KKwlp
bnQgaTsNCisNCisJaWYgKG9maWx0ZXIpIHsNCisJCWtpbGwob2ZpbHRlciwg
U0lHQ09OVCk7CS8qIHRvIGJlIHN1cmUgKi8NCisJCSh2b2lkKWNsb3NlKG9m
ZCk7DQorCQlvZmQgPSBwZmQ7DQorCQl3aGlsZSAoKGkgPSB3YWl0KE5VTEwp
KSA+IDAgJiYgaSAhPSBvZmlsdGVyKQ0KKwkJCTsNCisJCW9maWx0ZXIgPSAw
Ow0KKwl9DQorfQ0KKw0KKy8qDQorICogQWNxdWlyZSBsaW5lIHByaW50ZXIg
b3IgcmVtb3RlIGNvbm5lY3Rpb24uDQorICovDQorc3RhdGljIHZvaWQNCitv
cGVucHIodm9pZCkNCit7DQorCWNoYXIgKmNwOw0KKw0KKwlpZiAoIXJlbW90
ZSAmJiAqTFApIHsNCisJCWlmICgoY3AgPSBzdHJjaHIoTFAsICdAJykpKQ0K
KwkJCW9wZW5uZXQoY3ApOw0KKwkJZWxzZQ0KKwkJCW9wZW50dHkoKTsNCisJ
fSBlbHNlIGlmIChyZW1vdGUpIHsNCisJCW9wZW5yZW0oKTsNCisJfSBlbHNl
IHsNCisJCXN5c2xvZyhMT0dfRVJSLCAiJXM6IG5vIGxpbmUgcHJpbnRlciBk
ZXZpY2Ugb3IgaG9zdCBuYW1lIiwNCisJCQlwcmludGVyKTsNCisJCWV4aXQo
MSk7DQorCX0NCisNCisJLyoNCisJICogU3RhcnQgdXAgYW4gb3V0cHV0IGZp
bHRlciwgaWYgbmVlZGVkLg0KKwkgKi8NCisJc2V0dXBfb2ZpbHRlcigwKTsN
CiB9DQogDQogLyoNCg==
--0-815399108-1030632556=:21266--