#ifdef HAVE_LIBSLP
# include <slp.h>
#endif
#ifdef HAVE_LDAP
# ifdef __sun
# include <lber.h>
# endif
# include <ldap.h>
# ifdef HAVE_LDAP_SSL_H
# include <ldap_ssl.h>
# endif
#endif
#define BROWSE_CUPS 1
#define BROWSE_SLP 2
#define BROWSE_LDAP 4
#define BROWSE_DNSSD 8
#define BROWSE_SMB 16
#define BROWSE_LPD 32
#define BROWSE_ALL 63
typedef struct
{
char iface[32];
http_addr_t to;
} cupsd_dirsvc_addr_t;
typedef struct
{
cupsd_authmask_t from;
http_addr_t to;
} cupsd_dirsvc_relay_t;
typedef struct
{
char hostname[64];
int port;
int pid;
} cupsd_dirsvc_poll_t;
VAR int Browsing VALUE(TRUE),
BrowseWebIF VALUE(FALSE),
BrowseLocalProtocols
VALUE(BROWSE_ALL),
BrowseRemoteProtocols
VALUE(BROWSE_ALL),
BrowseShortNames VALUE(TRUE),
BrowseSocket VALUE(-1),
BrowsePort VALUE(IPP_PORT),
BrowseInterval VALUE(DEFAULT_INTERVAL),
BrowseTimeout VALUE(DEFAULT_TIMEOUT),
UseNetworkDefault VALUE(CUPS_DEFAULT_USE_NETWORK_DEFAULT),
NumBrowsers VALUE(0);
VAR char *BrowseLocalOptions
VALUE(NULL),
*BrowseRemoteOptions
VALUE(NULL);
VAR cupsd_dirsvc_addr_t *Browsers VALUE(NULL);
VAR cupsd_location_t *BrowseACL VALUE(NULL);
VAR cupsd_printer_t *BrowseNext VALUE(NULL);
VAR int NumRelays VALUE(0);
VAR cupsd_dirsvc_relay_t *Relays VALUE(NULL);
VAR int NumPolled VALUE(0);
VAR cupsd_dirsvc_poll_t *Polled VALUE(NULL);
VAR int PollPipe VALUE(0);
VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
#ifdef HAVE_DNSSD
VAR char *DNSSDComputerName VALUE(NULL),
*DNSSDHostName VALUE(NULL);
VAR cups_array_t *DNSSDAlias VALUE(NULL);
VAR int DNSSDPort VALUE(0);
VAR cups_array_t *DNSSDPrinters VALUE(NULL);
VAR DNSServiceRef DNSSDRef VALUE(NULL),
WebIFRef VALUE(NULL),
RemoteRef VALUE(NULL);
#endif
#ifdef HAVE_LIBSLP
VAR SLPHandle BrowseSLPHandle VALUE(NULL);
VAR time_t BrowseSLPRefresh VALUE(0);
#endif
#ifdef HAVE_LDAP
VAR LDAP *BrowseLDAPHandle VALUE(NULL);
VAR time_t BrowseLDAPRefresh VALUE(0);
VAR char *BrowseLDAPBindDN VALUE(NULL),
*BrowseLDAPDN VALUE(NULL),
*BrowseLDAPPassword VALUE(NULL),
*BrowseLDAPServer VALUE(NULL);
VAR int BrowseLDAPUpdate VALUE(TRUE);
# ifdef HAVE_LDAP_SSL
VAR char *BrowseLDAPCACertFile VALUE(NULL);
# endif
#endif
VAR char *LPDConfigFile VALUE(NULL),
*SMBConfigFile VALUE(NULL);
extern void cupsdDeregisterPrinter(cupsd_printer_t *p, int removeit);
extern void cupsdLoadRemoteCache(void);
extern void cupsdRegisterPrinter(cupsd_printer_t *p);
extern void cupsdRestartPolling(void);
extern void cupsdSaveRemoteCache(void);
extern void cupsdSendBrowseList(void);
extern void cupsdStartBrowsing(void);
extern void cupsdStartPolling(void);
extern void cupsdStopBrowsing(void);
extern void cupsdStopPolling(void);
#ifdef HAVE_DNSSD
extern void cupsdUpdateDNSSDName(void);
#endif
#ifdef HAVE_LDAP
extern void cupsdUpdateLDAPBrowse(void);
#endif
extern void cupsdUpdateSLPBrowse(void);