Brandon Allbery <[email protected]> writes: > IPP is the protocol that CUPS speaks. There may be other > implementations, but Linux having adopted CUPS /en masse/ makes it > somewhat unlikely.
IPP is the protocol that all modern network printer speaks. It predates CUPS by several years. Some printers also support LPDP for historical reasons, but as previously mentioned, there is no proper spec for LPDP, and it's a shitty protocol anyway. To summarize, lpr / lpd were originally written to run on a single host and communicate solely through the filesystem; later on, someone tacked on network support in the form of what is effectively a file transfer protocol that lets lpd on one host write to another host's spool. And I do mean a file transfer protocol; there are practically no constraints on what the client may send. Until 1997, if you could connect to lpd, you could write anywhere on the filesystem that lpd could access. Still today, you can fill the spool with garbage that lpd will never process or delete, and under some circumstances remotely delete files you didn't create, possibly including lpd's own lock file. All of this with no authentication whatsoever beyond a simple source address:port check. DES -- Dag-Erling Smørgrav - [email protected]
