+++ /dev/null
-dnl
-dnl "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $"
-dnl
-dnl OpenSSL/GNUTLS stuff for CUPS.
-dnl
-dnl Copyright 2007-2011 by Apple Inc.
-dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
-dnl
-dnl These coded instructions, statements, and computer programs are the
-dnl property of Apple Inc. and are protected by Federal copyright
-dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
-dnl which should have been included with this file. If this file is
-dnl file is missing or damaged, see the license at "http://www.cups.org/".
-dnl
-
-AC_ARG_ENABLE(ssl, [ --disable-ssl disable SSL/TLS support])
-AC_ARG_ENABLE(cdsassl, [ --enable-cdsassl use CDSA for SSL/TLS support, default=first])
-AC_ARG_ENABLE(gnutls, [ --enable-gnutls use GNU TLS for SSL/TLS support, default=second])
-AC_ARG_ENABLE(openssl, [ --enable-openssl use OpenSSL for SSL/TLS support, default=third])
-AC_ARG_WITH(openssl-libs, [ --with-openssl-libs set directory for OpenSSL library],
- LDFLAGS="-L$withval $LDFLAGS"
- DSOFLAGS="-L$withval $DSOFLAGS",)
-AC_ARG_WITH(openssl-includes, [ --with-openssl-includes set directory for OpenSSL includes],
- CFLAGS="-I$withval $CFLAGS"
- CPPFLAGS="-I$withval $CPPFLAGS",)
-
-SSLFLAGS=""
-SSLLIBS=""
-have_ssl=0
-
-if test x$enable_ssl != xno; then
- dnl Look for CDSA...
- if test $have_ssl = 0 -a "x$enable_cdsassl" != "xno"; then
- if test $uname = Darwin; then
- AC_CHECK_HEADER(Security/SecureTransport.h, [
- have_ssl=1
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_CDSASSL)
-
- dnl Check for the various security headers...
- AC_CHECK_HEADER(Security/SecureTransportPriv.h,
- AC_DEFINE(HAVE_SECURETRANSPORTPRIV_H))
- AC_CHECK_HEADER(Security/SecCertificate.h,
- AC_DEFINE(HAVE_SECCERTIFICATE_H))
- AC_CHECK_HEADER(Security/SecItem.h,
- AC_DEFINE(HAVE_SECITEM_H))
- AC_CHECK_HEADER(Security/SecItemPriv.h,
- AC_DEFINE(HAVE_SECITEMPRIV_H),,
- [#include <Security/SecItem.h>])
- AC_CHECK_HEADER(Security/SecPolicy.h,
- AC_DEFINE(HAVE_SECPOLICY_H))
- AC_CHECK_HEADER(Security/SecPolicyPriv.h,
- AC_DEFINE(HAVE_SECPOLICYPRIV_H))
- AC_CHECK_HEADER(Security/SecBasePriv.h,
- AC_DEFINE(HAVE_SECBASEPRIV_H))
- AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
- AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
-
- dnl Check for SSLSetProtocolVersionMax...
- SAVELIBS="$LIBS"
- LIBS="$LIBS -framework Security"
- AC_CHECK_FUNC(SSLSetProtocolVersionMax)
- LIBS="$SAVELIBS"
-
- dnl Check for SecCertificateCopyData..
- AC_MSG_CHECKING(for SecCertificateCopyData)
- if test $uversion -ge 100; then
- AC_DEFINE(HAVE_SECCERTIFICATECOPYDATA)
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
-
- dnl Check for SecIdentitySearchCreateWithPolicy...
- AC_MSG_CHECKING(for SecIdentitySearchCreateWithPolicy)
- if test $uversion -ge 80; then
- AC_DEFINE(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
-
- dnl Check for SecPolicyCreateSSL...
- AC_MSG_CHECKING(for SecPolicyCreateSSL)
- if test $uversion -ge 110; then
- AC_DEFINE(HAVE_SECPOLICYCREATESSL)
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi])
-
- AC_DEFINE(HAVE_CSSMERRORSTRING)
- fi
- fi
-
- dnl Then look for GNU TLS...
- if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
- AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
- if $PKGCONFIG --exists gnutls; then
- have_ssl=1
- SSLLIBS=`$PKGCONFIG --libs gnutls`
- SSLFLAGS=`$PKGCONFIG --cflags gnutls`
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_GNUTLS)
- elif test "x$LIBGNUTLSCONFIG" != x; then
- have_ssl=1
- SSLLIBS=`$LIBGNUTLSCONFIG --libs`
- SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_GNUTLS)
- fi
-
- if test $have_ssl = 1; then
- if $PKGCONFIG --exists gcrypt; then
- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
- elif test "x$LIBGCRYPTCONFIG" != x; then
- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
- fi
- fi
- fi
-
- dnl Check for the OpenSSL library last...
- if test $have_ssl = 0 -a "x$enable_openssl" != "xno"; then
- AC_CHECK_HEADER(openssl/ssl.h,
- dnl Save the current libraries so the crypto stuff isn't always
- dnl included...
- SAVELIBS="$LIBS"
-
- dnl Some ELF systems can't resolve all the symbols in libcrypto
- dnl if libcrypto was linked against RSAREF, and fail to link the
- dnl test program correctly, even though a correct installation
- dnl of OpenSSL exists. So we test the linking three times in
- dnl case the RSAREF libraries are needed.
-
- for libcrypto in \
- "-lcrypto" \
- "-lcrypto -lrsaref" \
- "-lcrypto -lRSAglue -lrsaref"
- do
- AC_CHECK_LIB(ssl,SSL_new,
- [have_ssl=1
- SSLFLAGS="-DOPENSSL_DISABLE_OLD_DES_SUPPORT"
- SSLLIBS="-lssl $libcrypto"
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_LIBSSL)],,
- $libcrypto)
-
- if test "x${SSLLIBS}" != "x"; then
- break
- fi
- done
-
- LIBS="$SAVELIBS")
- fi
-fi
-
-IPPALIASES="http"
-if test $have_ssl = 1; then
- AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
- AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
- IPPALIASES="http https ipps"
-elif test x$enable_cdsa = xyes -o x$enable_gnutls = xyes -o x$enable_openssl = xyes; then
- AC_MSG_ERROR([Unable to enable SSL support.])
-fi
-
-AC_SUBST(IPPALIASES)
-AC_SUBST(SSLFLAGS)
-AC_SUBST(SSLLIBS)
-
-EXPORT_SSLLIBS="$SSLLIBS"
-AC_SUBST(EXPORT_SSLLIBS)
-
-
-dnl
-dnl End of "$Id: cups-ssl.m4 7241 2008-01-22 22:34:52Z mike $".
-dnl
+++ /dev/null
-/*
- * "$Id: client.h 7935 2008-09-11 01:54:11Z mike $"
- *
- * Client definitions for the CUPS scheduler.
- *
- * Copyright 2007-2011 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
- *
- * These coded instructions, statements, and computer programs are the
- * 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/".
- */
-
-#ifdef HAVE_AUTHORIZATION_H
-# include <Security/Authorization.h>
-#endif /* HAVE_AUTHORIZATION_H */
-
-
-/*
- * HTTP client structure...
- */
-
-struct cupsd_client_s
-{
- http_t http; /* HTTP client connection */
- ipp_t *request, /* IPP request information */
- *response; /* IPP response information */
- cupsd_location_t *best; /* Best match for AAA */
- struct timeval start; /* Request start time */
- http_state_t operation; /* Request operation */
- off_t bytes; /* Bytes transferred for this request */
- int type; /* AuthType for username */
- char username[HTTP_MAX_VALUE],
- /* Username from Authorization: line */
- password[HTTP_MAX_VALUE],
- /* Password from Authorization: line */
- uri[HTTP_MAX_URI],
- /* Localized URL/URI for GET/PUT */
- *filename, /* Filename of output file */
- *command, /* Command to run */
- *options, /* Options for command */
- *query_string; /* QUERY_STRING environment variable */
- int file; /* Input/output file */
- int file_ready; /* Input ready on file/pipe? */
- int pipe_pid; /* Pipe process ID (or 0 if not a pipe) */
- int sent_header, /* Non-zero if sent HTTP header */
- got_fields, /* Non-zero if all fields seen */
- header_used; /* Number of header bytes used */
- char header[2048]; /* Header from CGI program */
- cups_lang_t *language; /* Language to use */
-#ifdef HAVE_SSL
- int auto_ssl; /* Automatic test for SSL/TLS */
-#endif /* HAVE_SSL */
- http_addr_t clientaddr; /* Client address */
- char servername[256];/* Server name for connection */
- int serverport; /* Server port for connection */
-#ifdef HAVE_GSSAPI
- int have_gss; /* Have GSS credentials? */
- uid_t gss_uid; /* User ID for local prints */
-#endif /* HAVE_GSSAPI */
-#ifdef HAVE_AUTHORIZATION_H
- AuthorizationRef authref; /* Authorization ref */
-#endif /* HAVE_AUTHORIZATION_H */
-};
-
-#define HTTP(con) &((con)->http)
-
-
-/*
- * HTTP listener structure...
- */
-
-typedef struct
-{
- int fd; /* File descriptor for this server */
- http_addr_t address; /* Bind address of socket */
- http_encryption_t encryption; /* To encrypt or not to encrypt... */
-} cupsd_listener_t;
-
-
-/*
- * Globals...
- */
-
-VAR int ListenBackLog VALUE(SOMAXCONN),
- /* Max backlog of pending connections */
- LocalPort VALUE(631),
- /* Local port to use */
- RemotePort VALUE(0);
- /* Remote port to use */
-VAR http_encryption_t LocalEncryption VALUE(HTTP_ENCRYPT_IF_REQUESTED);
- /* Local port encryption to use */
-VAR cups_array_t *Listeners VALUE(NULL);
- /* Listening sockets */
-VAR time_t ListeningPaused VALUE(0);
- /* Time when listening was paused */
-VAR cups_array_t *Clients VALUE(NULL),
- /* HTTP clients */
- *ActiveClients VALUE(NULL);
- /* Active HTTP clients */
-VAR char *ServerHeader VALUE(NULL);
- /* Server header in requests */
-VAR int CGIPipes[2] VALUE2(-1,-1);
- /* Pipes for CGI error/debug output */
-VAR cupsd_statbuf_t *CGIStatusBuffer VALUE(NULL);
- /* Status buffer for pipes */
-
-
-/*
- * Prototypes...
- */
-
-extern void cupsdAcceptClient(cupsd_listener_t *lis);
-extern void cupsdCloseAllClients(void);
-extern int cupsdCloseClient(cupsd_client_t *con);
-extern void cupsdDeleteAllListeners(void);
-extern int cupsdFlushHeader(cupsd_client_t *con);
-extern void cupsdPauseListening(void);
-extern int cupsdProcessIPPRequest(cupsd_client_t *con);
-extern void cupsdReadClient(cupsd_client_t *con);
-extern void cupsdResumeListening(void);
-extern int cupsdSendCommand(cupsd_client_t *con, char *command,
- char *options, int root);
-extern int cupsdSendError(cupsd_client_t *con, http_status_t code,
- int auth_type);
-extern int cupsdSendHeader(cupsd_client_t *con, http_status_t code,
- char *type, int auth_type);
-extern void cupsdShutdownClient(cupsd_client_t *con);
-extern void cupsdStartListening(void);
-extern void cupsdStopListening(void);
-extern void cupsdUpdateCGI(void);
-extern void cupsdWriteClient(cupsd_client_t *con);
-
-
-/*
- * End of "$Id: client.h 7935 2008-09-11 01:54:11Z mike $".
- */