]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/client.h
Remove all of the Subversion keywords from various source files.
[thirdparty/cups.git] / scheduler / client.h
index 9322637da00283e5dc4438e7b5af34f15ce50584..a7811fa781a6c224de8535dcd99cbc711c9b30c3 100644 (file)
@@ -1,16 +1,14 @@
 /*
- * "$Id: client.h 7935 2008-09-11 01:54:11Z mike $"
+ * Client definitions for the CUPS scheduler.
  *
- *   Client definitions for the Common UNIX Printing System (CUPS) scheduler.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
- *   Copyright 2007-2009 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/".
+ * 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
@@ -24,7 +22,8 @@
 
 struct cupsd_client_s
 {
-  http_t               http;           /* HTTP client connection */
+  int                  number;         /* Connection number */
+  http_t               *http;          /* HTTP client connection */
   ipp_t                        *request,       /* IPP request information */
                        *response;      /* IPP response information */
   cupsd_location_t     *best;          /* Best match for AAA */
@@ -32,8 +31,10 @@ struct cupsd_client_s
   http_state_t         operation;      /* Request operation */
   off_t                        bytes;          /* Bytes transferred for this request */
   int                  type;           /* AuthType for username */
-  char                 username[256],  /* Username from Authorization: line */
-                       password[33],   /* Password from Authorization: line */
+  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 */
@@ -43,6 +44,7 @@ struct cupsd_client_s
   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) */
+  http_status_t                pipe_status;    /* HTTP status from pipe process */
   int                  sent_header,    /* Non-zero if sent HTTP header */
                        got_fields,     /* Non-zero if all fields seen */
                        header_used;    /* Number of header bytes used */
@@ -51,21 +53,21 @@ struct cupsd_client_s
 #ifdef HAVE_SSL
   int                  auto_ssl;       /* Automatic test for SSL/TLS */
 #endif /* HAVE_SSL */
-  http_addr_t          clientaddr;     /* Client address */
+  http_addr_t          clientaddr;     /* Client's server address */
+  char                 clientname[256];/* Client's server name for connection */
+  int                  clientport;     /* Client's server port for connection */
   char                 servername[256];/* Server name for connection */
   int                  serverport;     /* Server port for connection */
 #ifdef HAVE_GSSAPI
-  gss_cred_id_t        gss_creds;      /* Credentials from client header */
-  unsigned             gss_flags;      /* Credential flags */
-  gss_buffer_desc      gss_output_token;
-                                       /* Output token for Negotiate header */
+  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)
+#define HTTP(con) ((con)->http)
 
 
 /*
@@ -77,6 +79,9 @@ 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... */
+#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+  int                  on_demand;      /* Is this a socket from launchd/systemd? */
+#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
 } cupsd_listener_t;
 
 
@@ -84,7 +89,9 @@ typedef struct
  * Globals...
  */
 
-VAR int                        ListenBackLog   VALUE(SOMAXCONN),
+VAR int                        LastClientNumber VALUE(0),
+                                       /* Last client connection number */
+                       ListenBackLog   VALUE(SOMAXCONN),
                                        /* Max backlog of pending connections */
                        LocalPort       VALUE(631),
                                        /* Local port to use */
@@ -116,7 +123,6 @@ 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);
@@ -133,7 +139,7 @@ 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 $".
- */
+#ifdef HAVE_SSL
+extern int     cupsdEndTLS(cupsd_client_t *con);
+extern int     cupsdStartTLS(cupsd_client_t *con);
+#endif /* HAVE_SSL */