mirror of
https://github.com/samba-team/samba.git
synced 2025-12-14 20:23:54 +03:00
converted smbd to use NTSTATUS by default
major changes include: - added NSTATUS type - added automatic mapping between dos and nt error codes - changed all ERROR() calls to ERROR_DOS() and many to ERROR_NT() these calls auto-translate to the client error code system - got rid of the cached error code and the writebmpx code We eventually will need to also: - get rid of BOOL, so we don't lose error info - replace all ERROR_DOS() calls with ERROR_NT() calls but that is too much for one night
This commit is contained in:
@@ -67,16 +67,14 @@
|
||||
#define FNUM_OK(fsp,c) (OPEN_FSP(fsp) && (c)==(fsp)->conn)
|
||||
|
||||
#define CHECK_FSP(fsp,conn) if (!FNUM_OK(fsp,conn)) \
|
||||
return(ERROR(ERRDOS,ERRbadfid)); \
|
||||
return(ERROR_DOS(ERRDOS,ERRbadfid)); \
|
||||
else if((fsp)->fd == -1) \
|
||||
return(ERROR(ERRDOS,ERRbadaccess))
|
||||
return(ERROR_DOS(ERRDOS,ERRbadaccess))
|
||||
|
||||
#define CHECK_READ(fsp) if (!(fsp)->can_read) \
|
||||
return(ERROR(ERRDOS,ERRbadaccess))
|
||||
return(ERROR_DOS(ERRDOS,ERRbadaccess))
|
||||
#define CHECK_WRITE(fsp) if (!(fsp)->can_write) \
|
||||
return(ERROR(ERRDOS,ERRbadaccess))
|
||||
#define CHECK_ERROR(fsp) if (HAS_CACHED_ERROR(fsp)) \
|
||||
return(CACHED_ERROR(fsp))
|
||||
return(ERROR_DOS(ERRDOS,ERRbadaccess))
|
||||
|
||||
/* translates a connection number into a service number */
|
||||
#define SNUM(conn) ((conn)?(conn)->service:-1)
|
||||
@@ -134,22 +132,15 @@
|
||||
#define SMB_LARGE_LKLEN_OFFSET_HIGH(indx) (12 + (20 * (indx)))
|
||||
#define SMB_LARGE_LKLEN_OFFSET_LOW(indx) (16 + (20 * (indx)))
|
||||
|
||||
/* Macro to cache an error in a write_bmpx_struct */
|
||||
#define CACHE_ERROR(w,c,e) ((w)->wr_errclass = (c), (w)->wr_error = (e), \
|
||||
w->wr_discard = True, -1)
|
||||
/* 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__)
|
||||
|
||||
/* these are the datagram types */
|
||||
#define DGRAM_DIRECT_UNIQUE 0x10
|
||||
|
||||
#define ERROR(class,x) error_packet(inbuf,outbuf,class,x,__LINE__)
|
||||
#define ERROR_DOS(class,code) error_packet(outbuf,0,class,code,__LINE__)
|
||||
#define ERROR_NT(status) error_packet(outbuf,status,0,0,__LINE__)
|
||||
#define ERROR_BOTH(status,class,code) error_packet(outbuf,status,class,code,__LINE__)
|
||||
|
||||
/* this is how errors are generated */
|
||||
#define UNIXERROR(defclass,deferror) unix_error_packet(inbuf,outbuf,defclass,deferror,__LINE__)
|
||||
#define UNIXERROR(defclass,deferror) unix_error_packet(outbuf,defclass,deferror,__LINE__)
|
||||
|
||||
#define SMB_ROUNDUP(x,g) (((x)+((g)-1))&~((g)-1))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user