diff options
Diffstat (limited to 'source4/printing/printfsp.c')
-rw-r--r-- | source4/printing/printfsp.c | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/source4/printing/printfsp.c b/source4/printing/printfsp.c deleted file mode 100644 index 5d230f8be4..0000000000 --- a/source4/printing/printfsp.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - Unix SMB/CIFS implementation. - printing backend routines for smbd - using files_struct rather - than only snum - Copyright (C) Andrew Tridgell 1992-2000 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "includes.h" - -/*************************************************************************** -open a print file and setup a fsp for it. This is a wrapper around -print_job_start(). -***************************************************************************/ - -files_struct *print_fsp_open(struct tcon_context *conn, char *fname) -{ - int jobid; - SMB_STRUCT_STAT sbuf; - extern struct current_user current_user; - files_struct *fsp = file_new(conn); - fstring name; - - if(!fsp) - return NULL; - - fstrcpy( name, "Remote Downlevel Document"); - if (fname) { - char *p = strrchr(fname, '/'); - fstrcat(name, " "); - if (!p) - p = fname; - fstrcat(name, p); - } - - jobid = print_job_start(¤t_user, SNUM(conn), name, NULL); - if (jobid == -1) { - file_free(fsp); - return NULL; - } - - /* Convert to RAP id. */ - fsp->rap_print_jobid = pjobid_to_rap(SNUM(conn), jobid); - if (fsp->rap_print_jobid == 0) { - /* We need to delete the entry in the tdb. */ - pjob_delete(SNUM(conn), jobid); - file_free(fsp); - return NULL; - } - - /* setup a full fsp */ - fsp->fd = print_job_fd(SNUM(conn),jobid); - GetTimeOfDay(&fsp->open_time); - fsp->vuid = current_user.vuid; - fsp->size = 0; - fsp->pos = -1; - fsp->can_lock = True; - fsp->can_read = False; - fsp->can_write = True; - fsp->share_mode = 0; - fsp->print_file = True; - fsp->modified = False; - fsp->oplock_type = NO_OPLOCK; - fsp->sent_oplock_break = NO_BREAK_SENT; - fsp->is_directory = False; - fsp->directory_delete_on_close = False; - string_set(&fsp->fsp_name,print_job_fname(SNUM(conn),jobid)); - fsp->wbmpx_ptr = NULL; - fsp->wcp = NULL; - conn->vfs_ops.fstat(fsp,fsp->fd, &sbuf); - fsp->mode = sbuf.st_mode; - fsp->inode = sbuf.st_ino; - fsp->dev = sbuf.st_dev; - - conn->num_files_open++; - - return fsp; -} - -/**************************************************************************** -print a file - called on closing the file -****************************************************************************/ -void print_fsp_end(files_struct *fsp, BOOL normal_close) -{ - uint32 jobid; - int snum; - - if (fsp->share_mode == FILE_DELETE_ON_CLOSE) { - /* - * Truncate the job. print_job_end will take - * care of deleting it for us. JRA. - */ - sys_ftruncate(fsp->fd, 0); - } - - if (fsp->fsp_name) { - string_free(&fsp->fsp_name); - } - - if (!rap_to_pjobid(fsp->rap_print_jobid, &snum, &jobid)) { - DEBUG(3,("print_fsp_end: Unable to convert RAP jobid %u to print jobid.\n", - (unsigned int)fsp->rap_print_jobid )); - return; - } - - print_job_end(SNUM(fsp->conn),jobid, normal_close); -} |