[FreeNX-kNX] printing

Alastair Johnson alastair at solutiontrax.com
Wed Feb 8 17:20:26 UTC 2006


> Did you dig deeper already? If you find something out, I would like to know
> it. ;)
kdeprint mishandles Digest authentication. Querying /printers works, but it 
then presents the same authentication data (with uri="/printers") when it 
requests /classes. Since cups uses the uri of the request not the uri in the 
authentication string, the checksums don't match and the authentication 
refused. kdeprint takes this refusal as total, and despite being granted 
access to /printers it removes the printer it's just added, and says it can't 
talk to the cups server.

From the cups changelog the behaviour of digest authentication was changed in 
v1.1.21 so it may be that (my version of) kdeprint is working the way cups 
used to.

I don't understand how authentication is supposed to work in a chain of cups 
servers. Unless I configure the usermode cupsd on the client and the server 
to use the same authentication type, username and password then 
authentication fails. The one on the server seems to give the one on the 
client the same sort that it (the one on the server) requires, not the sort 
the one on the client wants. I expect this is because I've misconfigured 
something, but I don't know what. At this rate I'll have to write a HowNotTo!

So I gave up on trying to get it to work the way I think it's supposed to, and 
went back to the cups-to-cups idea. As a proof of concept I tweaked the 
nxclient to use authtype basicdigest, and the server to point kdeprintrc at 
the client's cups server. Setting the password's a little more complicated 
since kde now hides passwords in unicode. The function in question is 
KStringHandler::obscure but it would be better to deal with the config file 
through the CupsInfos class than to edit it directly.  I''m sure a little 
prog to back up the user's current settings and replace them with the new 
ones would be trivial for someone familiar with c++ but alas that someone 
isn't me...

Setting the password manually in the above method works like a charm. There's 
no need to run usermode cupsd on the server, no need to select printer 
drivers, and the file transfer for printing is probably quicker as the file 
to print is probably smaller than the raster file that would otherwise be 
generated. As proof of concept this is fine. As a general solution it's not, 
at least with the nomachine client.

Since my problems are primarily kdeprint and cups I should really direct my 
questions to those mailing lists. I will follow up here if I make any 
progress.

>
> I will keep you informed when I have a go at it again.
>
> Regards,




More information about the FreeNX-kNX mailing list