Merge branch 'master' of ssh://git.samba.org/data/git/abartlet/samba into extended...
[abartlet/samba.git/.git] / source3 / printing / printfsp.c
index a247cd84276106e7a819bffdc0b9789b15fd0eb3..5481d95650ce056f403da035e62638e9a0d7d512 100644 (file)
@@ -27,19 +27,13 @@ print_job_start().
 
 NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
                        const char *fname,
-                       uint16_t current_vuid, files_struct **result)
+                       uint16_t current_vuid, files_struct *fsp)
 {
        int jobid;
        SMB_STRUCT_STAT sbuf;
-       files_struct *fsp;
        fstring name;
        NTSTATUS status;
 
-       status = file_new(req, conn, &fsp);
-       if(!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
-
        fstrcpy( name, "Remote Downlevel Document");
        if (fname) {
                const char *p = strrchr(fname, '/');
@@ -53,7 +47,6 @@ NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
        jobid = print_job_start(conn->server_info, SNUM(conn), name, NULL);
        if (jobid == -1) {
                status = map_nt_error_from_unix(errno);
-               file_free(req, fsp);
                return status;
        }
 
@@ -62,7 +55,6 @@ NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
        if (fsp->rap_print_jobid == 0) {
                /* We need to delete the entry in the tdb. */
                pjob_delete(lp_const_servicename(SNUM(conn)), jobid);
-               file_free(req, fsp);
                return NT_STATUS_ACCESS_DENIED; /* No errno around here */
        }
 
@@ -81,14 +73,11 @@ NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
        fsp->sent_oplock_break = NO_BREAK_SENT;
        fsp->is_directory = False;
        string_set(&fsp->fsp_name,print_job_fname(lp_const_servicename(SNUM(conn)),jobid));
-       fsp->wcp = NULL; 
+       fsp->wcp = NULL;
        SMB_VFS_FSTAT(fsp, &sbuf);
        fsp->mode = sbuf.st_mode;
        fsp->file_id = vfs_file_id_from_sbuf(conn, &sbuf);
 
-       conn->num_files_open++;
-
-       *result = fsp;
        return NT_STATUS_OK;
 }