/* * Policy definitions for the CUPS scheduler. * * Copyright 2007-2010 by Apple Inc. * Copyright 1997-2005 by Easy Software Products, all rights reserved. * * Licensed under Apache License v2.0. See the file "LICENSE" for more information. */ /* * Policy structure... */ typedef struct { char *name; /* Policy name */ cups_array_t *job_access, /* Private users/groups for jobs */ *job_attrs, /* Private attributes for jobs */ *sub_access, /* Private users/groups for subscriptions */ *sub_attrs, /* Private attributes for subscriptions */ *ops; /* Operations */ } cupsd_policy_t; typedef struct cupsd_printer_s cupsd_printer_t; /* * Globals... */ VAR cups_array_t *Policies VALUE(NULL); /* Policies */ /* * Prototypes... */ extern cupsd_policy_t *cupsdAddPolicy(const char *policy); extern cupsd_location_t *cupsdAddPolicyOp(cupsd_policy_t *p, cupsd_location_t *po, ipp_op_t op); extern http_status_t cupsdCheckPolicy(cupsd_policy_t *p, cupsd_client_t *con, const char *owner); extern void cupsdDeleteAllPolicies(void); extern cupsd_policy_t *cupsdFindPolicy(const char *policy); extern cupsd_location_t *cupsdFindPolicyOp(cupsd_policy_t *p, ipp_op_t op); extern cups_array_t *cupsdGetPrivateAttrs(cupsd_policy_t *p, cupsd_client_t *con, cupsd_printer_t *printer, const char *owner);