New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Printer channel driver name "hardwired" #3007
Comments
@szolnoki did you try with the /printer command line already?
I'm not sure that that the "addin syntax" (using /a) parses additional parameters if an extra parameter (like /printer) exists. |
I have tested. But not working. Absolutely same effect as "/a:printer". :( |
I continue to investigate this problem, and I found this. Version: 2.0.0-dev (git df81e84) Started the xfreerdp with option again and again: In remote Windows Devices&Printer settings, I see:
I added some extra logging "printf" to freeRDP printer channel driver, and I found the problem:
I think, freeRDP calls the printer registration twice. First within driver->GetPrinter, when I specify a driver with "/printer" option. And again when try to enumerate all printers (driver->EnumPrinters). This last enumartion is destroys the initilaized printers and driver names, and use the default "MS Imagesettler" driver_name. I made a quick test (and a fix for Me): I think, freeRDP printer handling is broken, because always enumerate (and "overwrite") all printers, regardess given as "/printer:name,driver" option. |
I dig a little deeper: But in rdpr_process_connect, settings->DeviceCount is 2 ! The DeviceArray[1] is fire the 2nd printer_DeviceServiceEntry, wich calls the EnumPrinters later, and re-install all printers with defult "MS Imagsettler" driver. |
any news about this issue, it seems that this issue persist with imagesetter... |
Hi @bmiklautz , Tried with /printer:, and not working, always appears iamgesetter, also tried with 'driver' Waht can I do? thanks |
@trentasis I confirm that the driver name is ignored and hardwired. I gave a look at the printer channel and it would need some love to fix that. I'll treat this when I'll have some time. |
Tell when to expect patches? Really need this feature. |
Does my pull work for you? |
System: Ubuntu 14.04 Linux lxhost38 3.13.0-77-generic #121-Ubuntu SMP Wed Jan 20 10:50:59 UTC 2016 i686 i686 i686 GNU/Linux Download last github master.zip. Compile switch: Run command: [13:18:19:503] [32323:32324] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr Segfault Syslog: I can provide file crash. |
Include #3171. Run command: Printer redirected with the right drivers. Print test page OK. Thank you for your work! |
@fedsed Good to know it works now :) |
I tested "This is FreeRDP version 2.0.0-dev (git n/a)" version.
I started freerdp with option:
/a:printer,HP4650_PCL,"HP Universal Printing PCL 6"
But HP_4650_PCL always use "Microsoft Publisher Imagesetter" driver on remote Windows.
("HP Universal Printing PCL 6" installed on remote Windows.)
My hotfix:
I changed "printer_cups.c"...
From:
cups_printer->printer.driver = "MS Publisher Imagesetter";
To:
cups_printer->printer.driver = "HP Universal Printing PCL 6";
And now, HP_4650 works at remote Windows with the "HP Universal Printing PCL 6" driver! :):):)
My solution works, but not nice... Why not use the specified driver name in command line, instead of default "Imagesettler"...
Why printer drive name "hardwired", when I set this option in command-line?
This problem is independent from printer type.
I would be better, if freerdp use the given driver name if specified instead of "Imagesettler".
The text was updated successfully, but these errors were encountered: