FreeRDP
printer_cups.c File Reference
#include <winpr/assert.h>
#include <freerdp/config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <time.h>
#include <cups/cups.h>
#include <winpr/crt.h>
#include <winpr/file.h>
#include <winpr/string.h>
#include <freerdp/channels/rdpdr.h>
#include <freerdp/client/printer.h>
#include <freerdp/channels/log.h>

Macros

#define TAG   CHANNELS_TAG("printer.client.cups")
 

Functions

static void printer_cups_get_printjob_name (char *buf, size_t size, size_t id)
 
static bool http_status_ok (http_status_t status)
 
static UINT write_printjob (rdpPrintJob *printjob, const BYTE *data, size_t size)
 
static UINT printer_cups_write_printjob (rdpPrintJob *printjob, const BYTE *data, size_t size)
 
static void printer_cups_close_printjob (rdpPrintJob *printjob)
 
static rdpPrintJob * printer_cups_create_printjob (rdpPrinter *printer, UINT32 id)
 
static rdpPrintJob * printer_cups_find_printjob (rdpPrinter *printer, UINT32 id)
 
static void printer_cups_free_printer (rdpPrinter *printer)
 
static void printer_cups_add_ref_printer (rdpPrinter *printer)
 
static void printer_cups_release_ref_printer (rdpPrinter *printer)
 
static rdpPrinter * printer_cups_new_printer (rdpCupsPrinterDriver *cups_driver, const char *name, const char *driverName, BOOL is_default)
 
static void printer_cups_release_enum_printers (rdpPrinter **printers)
 
static rdpPrinter ** printer_cups_enum_printers (rdpPrinterDriver *driver)
 
static rdpPrinter * printer_cups_get_printer (rdpPrinterDriver *driver, const char *name, const char *driverName, BOOL isDefault)
 
static void printer_cups_add_ref_driver (rdpPrinterDriver *driver)
 
static void printer_cups_release_ref_driver (rdpPrinterDriver *driver)
 
 if (!ppPrinter) return ERROR_INVALID_PARAMETER
 
 WINPR_ASSERT (uniq_cups_driver->driver.AddRef)
 

Variables

static rdpCupsPrinterDriver * uniq_cups_driver = NULL
 
ppPrinter = &uniq_cups_driver->driver
 
return CHANNEL_RC_OK
 

Macro Definition Documentation

◆ TAG

#define TAG   CHANNELS_TAG("printer.client.cups")

FreeRDP: A Remote Desktop Protocol Implementation Print Virtual Channel - CUPS driver

Copyright 2010-2011 Vic Lee Copyright 2015 Thincast Technologies GmbH Copyright 2015 DI (FH) Martin Haimberger marti.nosp@m.n.ha.nosp@m.imber.nosp@m.ger@.nosp@m.thinc.nosp@m.ast..nosp@m.com Copyright 2016 Armin Novak armin.nosp@m..nov.nosp@m.ak@gm.nosp@m.ail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ http_status_ok()

static bool http_status_ok ( http_status_t  status)
static
Here is the caller graph for this function:

◆ if()

if ( ppPrinter)
Here is the call graph for this function:

◆ printer_cups_add_ref_driver()

static void printer_cups_add_ref_driver ( rdpPrinterDriver *  driver)
static
Here is the caller graph for this function:

◆ printer_cups_add_ref_printer()

static void printer_cups_add_ref_printer ( rdpPrinter *  printer)
static
Here is the caller graph for this function:

◆ printer_cups_close_printjob()

static void printer_cups_close_printjob ( rdpPrintJob *  printjob)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_create_printjob()

static rdpPrintJob* printer_cups_create_printjob ( rdpPrinter *  printer,
UINT32  id 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_enum_printers()

static rdpPrinter** printer_cups_enum_printers ( rdpPrinterDriver *  driver)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_find_printjob()

static rdpPrintJob* printer_cups_find_printjob ( rdpPrinter *  printer,
UINT32  id 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_free_printer()

static void printer_cups_free_printer ( rdpPrinter *  printer)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_get_printer()

static rdpPrinter* printer_cups_get_printer ( rdpPrinterDriver *  driver,
const char *  name,
const char *  driverName,
BOOL  isDefault 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_get_printjob_name()

static void printer_cups_get_printjob_name ( char *  buf,
size_t  size,
size_t  id 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_new_printer()

static rdpPrinter* printer_cups_new_printer ( rdpCupsPrinterDriver *  cups_driver,
const char *  name,
const char *  driverName,
BOOL  is_default 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_release_enum_printers()

static void printer_cups_release_enum_printers ( rdpPrinter **  printers)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_release_ref_driver()

static void printer_cups_release_ref_driver ( rdpPrinterDriver *  driver)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_release_ref_printer()

static void printer_cups_release_ref_printer ( rdpPrinter *  printer)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ printer_cups_write_printjob()

static UINT printer_cups_write_printjob ( rdpPrintJob *  printjob,
const BYTE data,
size_t  size 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WINPR_ASSERT()

WINPR_ASSERT ( uniq_cups_driver->driver.  AddRef)
Here is the caller graph for this function:

◆ write_printjob()

static UINT write_printjob ( rdpPrintJob *  printjob,
const BYTE data,
size_t  size 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ CHANNEL_RC_OK

return CHANNEL_RC_OK

◆ ppPrinter

* ppPrinter = &uniq_cups_driver->driver

◆ uniq_cups_driver

uniq_cups_driver driver AddRef & uniq_cups_driver = NULL
static