uint32 time;
} UTIME;
-/* Structure used when SMBwritebmpx is active */
-typedef struct {
- size_t wr_total_written; /* So we know when to discard this */
- int32 wr_timeout;
- int32 wr_errclass; /* Cached errors */
- int32 wr_error; /* Cached errors */
- NTSTATUS wr_status; /* Cached errors */
- BOOL wr_mode; /* write through mode) */
- BOOL wr_discard; /* discard all further data */
-} write_bmpx_struct;
-
typedef struct write_cache {
SMB_OFF_T file_size;
SMB_OFF_T offset;
mode_t mode;
uint16 file_pid;
uint16 vuid;
- write_bmpx_struct *wbmpx_ptr;
write_cache *wcp;
struct timeval open_time;
uint32 access_mask; /* NTCreateX access bits (FILE_READ_DATA etc.) */
#define SMB_LARGE_LKLEN_OFFSET_HIGH(indx) (12 + (20 * (indx)))
#define SMB_LARGE_LKLEN_OFFSET_LOW(indx) (16 + (20 * (indx)))
-/* Macro to test if an error has been cached for this fnum */
-#define HAS_CACHED_ERROR(fsp) ((fsp)->wbmpx_ptr && \
- (fsp)->wbmpx_ptr->wr_discard)
-/* Macro to turn the cached error into an error packet */
-#define CACHED_ERROR(fsp) cached_error_packet(inbuf,outbuf,fsp,__LINE__,__FILE__)
-
#define ERROR_DOS(class,code) error_packet(inbuf,outbuf,class,code,NT_STATUS_OK,__LINE__,__FILE__)
#define ERROR_NT(status) error_packet(inbuf,outbuf,0,0,status,__LINE__,__FILE__)
#define ERROR_FORCE_NT(status) error_packet(inbuf,outbuf,-1,-1,status,__LINE__,__FILE__)
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->wbmpx_ptr = NULL;
fsp->wcp = NULL;
SMB_VFS_FSTAT(fsp,fsp->fh->fd, &sbuf);
fsp->mode = sbuf.st_mode;
}
conn->num_files_open--;
- SAFE_FREE(fsp->wbmpx_ptr);
return status;
}
extern uint32 global_client_caps;
-/****************************************************************************
- Create an error packet from a cached error.
-****************************************************************************/
-
-int cached_error_packet(const char *inbuf,char *outbuf,files_struct *fsp,int line,const char *file)
-{
- write_bmpx_struct *wbmpx = fsp->wbmpx_ptr;
- int32 eclass = wbmpx->wr_errclass;
- int32 err = wbmpx->wr_error;
- NTSTATUS ntstatus = wbmpx->wr_status;
-
- /* We can now delete the auxiliary struct */
- SAFE_FREE(fsp->wbmpx_ptr);
- return error_packet(inbuf,outbuf,eclass,err,ntstatus,line,file);
-}
-
/****************************************************************************
Create an error packet from errno.
****************************************************************************/