]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/dirsvc.h
Merge changes from CUPS 1.5svn-r9641
[thirdparty/cups.git] / scheduler / dirsvc.h
index ff659e5806f3f3a8434c86d3074dc6883d915545..933a057ba5cc615006a27cf11f339ddd8ee6d882 100644 (file)
@@ -1,26 +1,16 @@
 /*
- * "$Id: dirsvc.h 5020 2006-01-28 13:36:15Z mike $"
+ * "$Id: dirsvc.h 7933 2008-09-11 00:44:58Z mike $"
  *
- *   Directory services definitions for the Common UNIX Printing System
- *   (CUPS) scheduler.
+ *   Directory services definitions for the CUPS scheduler.
  *
- *   Copyright 1997-2005 by Easy Software Products, all rights reserved.
+ *   Copyright 2007-2010 by Apple Inc.
+ *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  *   These coded instructions, statements, and computer programs are the
- *   property of Easy Software Products and are protected by Federal
- *   copyright law.  Distribution and use rights are outlined in the file
- *   "LICENSE.txt" which should have been included with this file.  If this
- *   file is missing or damaged please contact Easy Software Products
- *   at:
- *
- *       Attn: CUPS Licensing Information
- *       Easy Software Products
- *       44141 Airport View Drive, Suite 204
- *       Hollywood, Maryland 20636 USA
- *
- *       Voice: (301) 373-9600
- *       EMail: cups-info@cups.org
- *         WWW: http://www.cups.org
+ *   property of Apple Inc. and are protected by Federal copyright
+ *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ *   which should have been included with this file.  If this file is
+ *   file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
 #  include <slp.h>
 #endif /* HAVE_LIBSLP */
 
+#ifdef HAVE_LDAP
+#  ifdef __sun
+#    include <lber.h>
+#  endif /* __sun */
+#  include <ldap.h>
+#  ifdef HAVE_LDAP_SSL_H
+#    include <ldap_ssl.h>
+#  endif /* HAVE_LDAP_SSL_H */
+#endif /* HAVE_LDAP */
 
 /*
  * Browse protocols...
 
 #define BROWSE_CUPS    1               /* CUPS */
 #define        BROWSE_SLP      2               /* SLPv2 */
-#define BROWSE_LDAP    4               /* LDAP (not supported yet) */
-#define BROWSE_DNSSD   8               /* DNS Service Discovery aka Bonjour */
-#define BROWSE_ALL     15              /* All protocols */
+#define BROWSE_LDAP    4               /* LDAP */
+#define BROWSE_DNSSD   8               /* DNS Service Discovery (aka Bonjour) */
+#define BROWSE_SMB     16              /* SMB/Samba */
+#define BROWSE_LPD     32              /* LPD via xinetd or launchd */
+#define BROWSE_ALL     63              /* All protocols */
 
 
 /*
@@ -60,7 +61,7 @@ typedef struct
 
 typedef struct
 {
-  cupsd_authmask_t     from;           /* Source address/name mask */
+  cups_array_t         *from;          /* Source address/name mask(s) */
   http_addr_t          to;             /* Destination address */
 } cupsd_dirsvc_relay_t;
 
@@ -83,6 +84,8 @@ typedef struct
 
 VAR int                        Browsing        VALUE(TRUE),
                                        /* Whether or not browsing is enabled */
+                       BrowseWebIF     VALUE(FALSE),
+                                       /* Whether the web interface is advertised */
                        BrowseLocalProtocols
                                        VALUE(BROWSE_ALL),
                                        /* Protocols to support for local printers */
@@ -99,6 +102,8 @@ VAR int                      Browsing        VALUE(TRUE),
                                        /* Broadcast interval in seconds */
                        BrowseTimeout   VALUE(DEFAULT_TIMEOUT),
                                        /* Time out for printers in seconds */
+                       UseNetworkDefault VALUE(CUPS_DEFAULT_USE_NETWORK_DEFAULT),
+                                       /* Use the network default printer? */
                        NumBrowsers     VALUE(0);
                                        /* Number of broadcast addresses */
 VAR char               *BrowseLocalOptions
@@ -126,6 +131,27 @@ VAR int                    PollPipe        VALUE(0);
 VAR cupsd_statbuf_t    *PollStatusBuffer VALUE(NULL);
                                        /* Status buffer for pollers */
 
+#ifdef HAVE_DNSSD
+VAR char               *DNSSDComputerName VALUE(NULL),
+                                       /* Computer/server name */
+                       *DNSSDHostName  VALUE(NULL),
+                                       /* Hostname */
+                       *DNSSDRegType VALUE(NULL);
+                                       /* Bonjour registration type */
+VAR cups_array_t       *DNSSDAlias     VALUE(NULL);
+                                       /* List of dynamic ServerAlias's */
+VAR int                        DNSSDPort       VALUE(0);
+                                       /* Port number to register */
+VAR cups_array_t       *DNSSDPrinters  VALUE(NULL);
+                                       /* Printers we have registered */
+VAR DNSServiceRef      DNSSDRef        VALUE(NULL),
+                                       /* Master DNS-SD service reference */
+                       WebIFRef        VALUE(NULL),
+                                       /* Service reference for the web interface */
+                       RemoteRef       VALUE(NULL);
+                                       /* Remote printer browse reference */
+#endif /* HAVE_DNSSD */
+
 #ifdef HAVE_LIBSLP
 VAR SLPHandle          BrowseSLPHandle VALUE(NULL);
                                        /* SLP API handle */
@@ -133,31 +159,55 @@ VAR time_t                BrowseSLPRefresh VALUE(0);
                                        /* Next SLP refresh time */
 #endif /* HAVE_LIBSLP */
 
+#ifdef HAVE_LDAP
+VAR LDAP               *BrowseLDAPHandle VALUE(NULL);
+                                       /* Handle to LDAP server */
+VAR time_t             BrowseLDAPRefresh VALUE(0);
+                                       /* Next LDAP refresh time */
+VAR char               *BrowseLDAPBindDN VALUE(NULL),
+                                       /* LDAP login DN */
+                       *BrowseLDAPDN   VALUE(NULL),
+                                       /* LDAP search DN */
+                       *BrowseLDAPPassword VALUE(NULL),
+                                       /* LDAP login password */
+                       *BrowseLDAPServer VALUE(NULL);
+                                       /* LDAP server to use */
+VAR int                        BrowseLDAPUpdate VALUE(TRUE);
+                                       /* enables LDAP updates */
+#  ifdef HAVE_LDAP_SSL
+VAR char               *BrowseLDAPCACertFile VALUE(NULL);
+                                       /* LDAP CA CERT file to use */
+#  endif /* HAVE_LDAP_SSL */
+#endif /* HAVE_LDAP */
+VAR char               *LPDConfigFile  VALUE(NULL),
+                                       /* LPD configuration file */
+                       *SMBConfigFile  VALUE(NULL);
+                                       /* SMB configuration file */
+
 
 /*
  * Prototypes...
  */
 
+extern void    cupsdDeregisterPrinter(cupsd_printer_t *p, int removeit);
 extern void    cupsdLoadRemoteCache(void);
-extern void    cupsdProcessBrowseData(const char *uri, cups_ptype_t type,
-                                      ipp_pstate_t state, const char *location,
-                                      const char *info, const char *make_model,
-                                      int num_attrs, cups_option_t *attrs);
-extern void    cupsdProcessImplicitClasses(void);
+extern void    cupsdRegisterPrinter(cupsd_printer_t *p);
+extern void    cupsdRestartPolling(void);
 extern void    cupsdSaveRemoteCache(void);
-extern void    cupsdSendBrowseDelete(cupsd_printer_t *p);
 extern void    cupsdSendBrowseList(void);
-extern void    cupsdSendCUPSBrowse(cupsd_printer_t *p);
-extern void    cupsdSendSLPBrowse(cupsd_printer_t *p);
 extern void    cupsdStartBrowsing(void);
 extern void    cupsdStartPolling(void);
 extern void    cupsdStopBrowsing(void);
 extern void    cupsdStopPolling(void);
-extern void    cupsdUpdateCUPSBrowse(void);
-extern void    cupsdUpdatePolling(void);
+#ifdef HAVE_DNSSD
+extern void    cupsdUpdateDNSSDName(void);
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_LDAP
+extern void    cupsdUpdateLDAPBrowse(void);
+#endif /* HAVE_LDAP */
 extern void    cupsdUpdateSLPBrowse(void);
 
 
 /*
- * End of "$Id: dirsvc.h 5020 2006-01-28 13:36:15Z mike $".
+ * End of "$Id: dirsvc.h 7933 2008-09-11 00:44:58Z mike $".
  */