diff --git a/channels/printer/client/printer_main.c b/channels/printer/client/printer_main.c index d8848a241..b006a490e 100644 --- a/channels/printer/client/printer_main.c +++ b/channels/printer/client/printer_main.c @@ -971,10 +971,10 @@ FREERDP_API DeviceServiceEntry int i; char* name; char* driver_name; + BOOL default_backend = TRUE; RDPDR_PRINTER* device = NULL; rdpPrinterDriver* driver = NULL; - UINT error = CHANNEL_RC_OK; - size_t pos; + UINT error = CHANNEL_RC_OK; if (!pEntryPoints || !pEntryPoints->device) return ERROR_INVALID_PARAMETER; @@ -996,10 +996,24 @@ FREERDP_API DeviceServiceEntry const char* backend = sep + 1; *sep = '\0'; driver = printer_load_backend(backend); + default_backend = FALSE; } } - else - driver = printer_load_backend(""); + + if (!driver && default_backend) + { + const char* backend = +#if defined(WITH_CUPS) + "cups" +#elif defined(_WIN32) + "win" +#else + "" +#endif + ; + + driver = printer_load_backend(backend); + } if (!driver) { diff --git a/config.h.in b/config.h.in index 7b55240c2..2aa3427d9 100644 --- a/config.h.in +++ b/config.h.in @@ -36,6 +36,7 @@ #cmakedefine WITH_SSE2 #cmakedefine WITH_NEON #cmakedefine WITH_IPP +#cmakedefine WITH_CUPS #cmakedefine WITH_NATIVE_SSPI #cmakedefine WITH_JPEG #cmakedefine WITH_WIN8