s3-printing: store print jobid as part of struct printjob
[ddiss/samba.git] / source3 / include / printing.h
index 1bbb72c7be6c8d7fb38b134df0a7e6279bdecd24..aa28b78fdd026efdf31d828b8906469df38f2bd8 100644 (file)
@@ -69,6 +69,7 @@ typedef struct {
 /* Information for print jobs */
 struct printjob {
        pid_t pid; /* which process launched the job */
+       uint32_t jobid; /* the spoolss print job identifier */
        int sysjob; /* the system (lp) job number */
        int fd; /* file descriptor of open file if open */
        time_t starttime; /* when the job started spooling */
@@ -124,7 +125,7 @@ extern struct printif       iprint_printif;
 #ifndef PRINT_SPOOL_PREFIX
 #define PRINT_SPOOL_PREFIX "smbprn."
 #endif
-#define PRINT_DATABASE_VERSION 7
+#define PRINT_DATABASE_VERSION 8
 
 #ifdef AIX
 #define DEFAULT_PRINTING PRINT_AIX
@@ -176,15 +177,16 @@ struct tdb_print_db {
 
 NTSTATUS print_spool_open(files_struct *fsp,
                          const char *fname,
-                         uint16_t current_vuid);
+                         uint64_t current_vuid);
 
 int print_spool_write(files_struct *fsp, const char *data, uint32_t size,
-                     SMB_OFF_T offset, uint32_t *written);
+                     off_t offset, uint32_t *written);
 
 void print_spool_end(files_struct *fsp, enum file_close_type close_type);
 
 void print_spool_terminate(struct connection_struct *conn,
                           struct print_file_data *print_file);
+uint16_t print_spool_rap_jobid(struct print_file_data *print_file);
 
 /* The following definitions come from printing/printing.c  */
 
@@ -198,13 +200,13 @@ bool print_job_set_name(struct tevent_context *ev,
                        struct messaging_context *msg_ctx,
                        const char *sharename, uint32 jobid, const char *name);
 bool print_job_get_name(TALLOC_CTX *mem_ctx, const char *sharename, uint32_t jobid, char **name);
-WERROR print_job_delete(const struct auth_serversupplied_info *server_info,
+WERROR print_job_delete(const struct auth_session_info *server_info,
                        struct messaging_context *msg_ctx,
                        int snum, uint32_t jobid);
-bool print_job_pause(const struct auth_serversupplied_info *server_info,
+bool print_job_pause(const struct auth_session_info *server_info,
                     struct messaging_context *msg_ctx,
                     int snum, uint32 jobid, WERROR *errcode);
-bool print_job_resume(const struct auth_serversupplied_info *server_info,
+bool print_job_resume(const struct auth_session_info *server_info,
                      struct messaging_context *msg_ctx,
                      int snum, uint32 jobid, WERROR *errcode);
 ssize_t print_job_write(struct tevent_context *ev,
@@ -212,7 +214,7 @@ ssize_t print_job_write(struct tevent_context *ev,
                        int snum, uint32 jobid, const char *buf, size_t size);
 int print_queue_length(struct messaging_context *msg_ctx, int snum,
                       print_status_struct *pstatus);
-WERROR print_job_start(const struct auth_serversupplied_info *server_info,
+WERROR print_job_start(const struct auth_session_info *server_info,
                       struct messaging_context *msg_ctx,
                       const char *clientmachine,
                       int snum, const char *docname, const char *filename,
@@ -224,18 +226,16 @@ NTSTATUS print_job_end(struct messaging_context *msg_ctx, int snum,
 int print_queue_status(struct messaging_context *msg_ctx, int snum,
                       print_queue_struct **ppqueue,
                       print_status_struct *status);
-WERROR print_queue_pause(const struct auth_serversupplied_info *server_info,
+WERROR print_queue_pause(const struct auth_session_info *server_info,
                         struct messaging_context *msg_ctx, int snum);
-WERROR print_queue_resume(const struct auth_serversupplied_info *server_info,
+WERROR print_queue_resume(const struct auth_session_info *server_info,
                          struct messaging_context *msg_ctx, int snum);
-WERROR print_queue_purge(const struct auth_serversupplied_info *server_info,
+WERROR print_queue_purge(const struct auth_session_info *server_info,
                         struct messaging_context *msg_ctx, int snum);
 uint16 pjobid_to_rap(const char* sharename, uint32 jobid);
 bool rap_to_pjobid(uint16 rap_jobid, fstring sharename, uint32 *pjobid);
 void rap_jobid_delete(const char* sharename, uint32 jobid);
 bool print_backend_init(struct messaging_context *msg_ctx);
-void start_background_queue(struct tevent_context *ev,
-                           struct messaging_context *msg);
 void printing_end(void);
 
 /* The following definitions come from printing/lpq_parse.c  */