The branch, master has been updated via 8cf78ff55312768d0b454b1d7e0560e04e6296da (commit) from ab4b8c9c0438bc5afca17e3ebf05dde6f98bc0aa (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 8cf78ff55312768d0b454b1d7e0560e04e6296da Author: Jeremy Allison <j...@samba.org> Date: Thu Apr 30 15:26:43 2009 -0700 Get medieval on our ass about SMB1 file descriptors being 16 bits, not an int. Convert all uses of cli_open(), cli_nt_createXXX to NTSTATUS versions. This is smaller than it looks, it just fixes a lot of old code. Next up, ensure all cli_XX functions return NTSTATUS. Jeremy. ----------------------------------------------------------------------- Summary of changes: source3/client/client.c | 38 ++-- source3/client/clitar.c | 11 +- source3/client/smbspool.c | 5 +- source3/include/client.h | 2 +- source3/include/proto.h | 72 +++--- source3/libgpo/gpo_filesync.c | 6 +- source3/libsmb/clientgen.c | 2 +- source3/libsmb/clifile.c | 63 +++-- source3/libsmb/clioplock.c | 7 +- source3/libsmb/cliprint.c | 2 +- source3/libsmb/cliquota.c | 12 +- source3/libsmb/clirap.c | 6 +- source3/libsmb/clireadwrite.c | 12 +- source3/libsmb/clisecdesc.c | 4 +- source3/libsmb/libsmb_file.c | 16 +- source3/libsmb/libsmb_xattr.c | 21 +- source3/torture/denytest.c | 34 ++- source3/torture/locktest.c | 35 ++-- source3/torture/locktest2.c | 8 +- source3/torture/mangle_test.c | 8 +- source3/torture/masktest.c | 5 +- source3/torture/nbio.c | 18 +- source3/torture/scanner.c | 22 +- source3/torture/torture.c | 580 ++++++++++++++++----------------------- source3/torture/utable.c | 17 +- source3/utils/net_rpc.c | 7 +- source3/utils/net_rpc_printer.c | 31 +- source3/utils/smbcacls.c | 33 +-- source3/utils/smbcquotas.c | 4 +- 29 files changed, 482 insertions(+), 599 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/client/client.c b/source3/client/client.c index 7dda981..becb066 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -535,12 +535,12 @@ static void display_finfo(file_info *finfo, const char *dir) dir_total += finfo->size; } else { char *afname = NULL; - int fnum; + uint16_t fnum; /* skip if this is . or .. */ if ( strequal(finfo->name,"..") || strequal(finfo->name,".") ) return; - /* create absolute filename for cli_nt_create() FIXME */ + /* create absolute filename for cli_ntcreate() FIXME */ afname = talloc_asprintf(ctx, "%s%s%s", dir, @@ -554,8 +554,9 @@ static void display_finfo(file_info *finfo, const char *dir) d_printf( "MODE:%s\n", attrib_string(finfo->mode)); d_printf( "SIZE:%.0f\n", (double)finfo->size); d_printf( "MTIME:%s", time_to_asc(t)); - fnum = cli_nt_create(finfo->cli, afname, CREATE_ACCESS_READ); - if (fnum == -1) { + if (!NT_STATUS_IS_OK(cli_ntcreate(finfo->cli, afname, 0, + CREATE_ACCESS_READ, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, + FILE_OPEN, 0x0, 0x0, &fnum))) { DEBUG( 0, ("display_finfo() Failed to open %s: %s\n", afname, cli_errstr( finfo->cli))); @@ -999,7 +1000,8 @@ static NTSTATUS writefile_sink(char *buf, size_t n, void *priv) static int do_get(const char *rname, const char *lname_in, bool reget) { TALLOC_CTX *ctx = talloc_tos(); - int handle = 0, fnum; + int handle = 0; + uint16_t fnum; bool newhandle = false; struct timeval tp_start; uint16 attr; @@ -1028,9 +1030,7 @@ static int do_get(const char *rname, const char *lname_in, bool reget) GetTimeOfDay(&tp_start); - fnum = cli_open(targetcli, targetname, O_RDONLY, DENY_NONE); - - if (fnum == -1) { + if (!NT_STATUS_IS_OK(cli_open(targetcli, targetname, O_RDONLY, DENY_NONE, &fnum))) { d_printf("%s opening remote file %s\n",cli_errstr(cli),rname); return 1; } @@ -1618,7 +1618,7 @@ static int cmd_allinfo(void) static int do_put(const char *rname, const char *lname, bool reput) { TALLOC_CTX *ctx = talloc_tos(); - int fnum; + uint16_t fnum; XFILE *f; SMB_OFF_T start = 0; int rc = 0; @@ -1636,8 +1636,8 @@ static int do_put(const char *rname, const char *lname, bool reput) GetTimeOfDay(&tp_start); if (reput) { - fnum = cli_open(targetcli, targetname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum >= 0) { + status = cli_open(targetcli, targetname, O_RDWR|O_CREAT, DENY_NONE, &fnum); + if (NT_STATUS_IS_OK(status)) { if (!cli_qfileinfo(targetcli, fnum, NULL, &start, NULL, NULL, NULL, NULL, NULL) && !cli_getattrE(targetcli, fnum, NULL, &start, NULL, NULL, NULL)) { d_printf("getattrib: %s\n",cli_errstr(cli)); @@ -1645,10 +1645,10 @@ static int do_put(const char *rname, const char *lname, bool reput) } } } else { - fnum = cli_open(targetcli, targetname, O_RDWR|O_CREAT|O_TRUNC, DENY_NONE); + status = cli_open(targetcli, targetname, O_RDWR|O_CREAT|O_TRUNC, DENY_NONE, &fnum); } - if (fnum == -1) { + if (!NT_STATUS_IS_OK(status)) { d_printf("%s opening remote file %s\n",cli_errstr(targetcli),rname); return 1; } @@ -2207,7 +2207,7 @@ static int cmd_open(void) char *buf = NULL; char *targetname = NULL; struct cli_state *targetcli; - int fnum; + uint16_t fnum = (uint16_t)-1; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("open <filename>\n"); @@ -2226,10 +2226,12 @@ static int cmd_open(void) return 1; } - fnum = cli_nt_create(targetcli, targetname, FILE_READ_DATA|FILE_WRITE_DATA); - if (fnum == -1) { - fnum = cli_nt_create(targetcli, targetname, FILE_READ_DATA); - if (fnum != -1) { + if (!NT_STATUS_IS_OK(cli_ntcreate(targetcli, targetname, 0, + FILE_READ_DATA|FILE_WRITE_DATA, 0, + FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, 0x0, 0x0, &fnum))) { + if (NT_STATUS_IS_OK(cli_ntcreate(targetcli, targetname, 0, + FILE_READ_DATA, 0, + FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, 0x0, 0x0, &fnum))) { d_printf("open file %s: for read/write fnum %d\n", targetname, fnum); } else { d_printf("Failed to open file %s. %s\n", targetname, cli_errstr(cli)); diff --git a/source3/client/clitar.c b/source3/client/clitar.c index fd37576..3cc1a25 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -613,7 +613,7 @@ append one remote file to the tar file static void do_atar(const char *rname_in,char *lname,file_info *finfo1) { - int fnum = -1; + uint16_t fnum = (uint16_t)-1; uint64_t nread=0; char ftype; file_info2 finfo; @@ -660,9 +660,7 @@ static void do_atar(const char *rname_in,char *lname,file_info *finfo1) goto cleanup; } - fnum = cli_open(cli, rname, O_RDONLY, DENY_NONE); - - if (fnum == -1) { + if (!NT_STATUS_IS_OK(cli_open(cli, rname, O_RDONLY, DENY_NONE, &fnum))) { DEBUG(0,("%s opening remote file %s (%s)\n", cli_errstr(cli),rname, client_get_cur_dir())); goto cleanup; @@ -998,13 +996,14 @@ static int skip_file(int skipsize) static int get_file(file_info2 finfo) { - int fnum = -1, pos = 0, dsize = 0, bpos = 0; + uint16_t fnum; + int pos = 0, dsize = 0, bpos = 0; uint64_t rsize = 0; DEBUG(5, ("get_file: file: %s, size %.0f\n", finfo.name, (double)finfo.size)); if (ensurepath(finfo.name) && - (fnum=cli_open(cli, finfo.name, O_RDWR|O_CREAT|O_TRUNC, DENY_NONE)) == -1) { + (!NT_STATUS_IS_OK(cli_open(cli, finfo.name, O_RDWR|O_CREAT|O_TRUNC, DENY_NONE,&fnum)))) { DEBUG(0, ("abandoning restore\n")); return(False); } diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c index a276353..6b099db 100644 --- a/source3/client/smbspool.c +++ b/source3/client/smbspool.c @@ -553,7 +553,7 @@ smb_print(struct cli_state * cli, /* I - SMB connection */ char *title, /* I - Title/job name */ FILE * fp) { /* I - File to print */ - int fnum; /* File number */ + uint16_t fnum; /* File number */ int nbytes, /* Number of bytes read */ tbytes; /* Total bytes read */ char buffer[8192], /* Buffer for copy */ @@ -574,8 +574,7 @@ smb_print(struct cli_state * cli, /* I - SMB connection */ * Open the printer device... */ - fnum = cli_open(cli, title, O_RDWR | O_CREAT | O_TRUNC, DENY_NONE); - if (fnum == -1) { + if (!NT_STATUS_IS_OK(cli_open(cli, title, O_RDWR | O_CREAT | O_TRUNC, DENY_NONE, &fnum))) { fprintf(stderr, "ERROR: %s opening remote spool %s\n", cli_errstr(cli), title); return (get_exit_code(cli, cli_nt_error(cli))); diff --git a/source3/include/client.h b/source3/include/client.h index 6d84f48..6f56468 100644 --- a/source3/include/client.h +++ b/source3/include/client.h @@ -259,7 +259,7 @@ struct cli_state { bool use_level_II_oplocks; /* should we use level II oplocks? */ /* a oplock break request handler */ - bool (*oplock_handler)(struct cli_state *cli, int fnum, unsigned char level); + NTSTATUS (*oplock_handler)(struct cli_state *cli, uint16_t fnum, unsigned char level); bool force_dos_errors; bool case_sensitive; /* False by default. */ diff --git a/source3/include/proto.h b/source3/include/proto.h index 11fd45e..f60fc9d 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2375,12 +2375,7 @@ struct tevent_req *cli_rmdir_send(TALLOC_CTX *mem_ctx, const char *dname); NTSTATUS cli_rmdir_recv(struct tevent_req *req); NTSTATUS cli_rmdir(struct cli_state *cli, const char *dname); -int cli_nt_delete_on_close(struct cli_state *cli, int fnum, bool flag); -int cli_nt_create_full(struct cli_state *cli, const char *fname, - uint32_t CreatFlags, uint32_t DesiredAccess, - uint32_t FileAttributes, uint32_t ShareAccess, - uint32_t CreateDisposition, uint32_t CreateOptions, - uint8_t SecuityFlags); +int cli_nt_delete_on_close(struct cli_state *cli, uint16_t fnum, bool flag); struct tevent_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx, struct event_context *ev, struct cli_state *cli, @@ -2403,7 +2398,6 @@ NTSTATUS cli_ntcreate(struct cli_state *cli, uint32_t CreateOptions, uint8_t SecurityFlags, uint16_t *pfid); -int cli_nt_create(struct cli_state *cli, const char *fname, uint32_t DesiredAccess); uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str, size_t str_len, size_t *pconverted_size); struct tevent_req *cli_open_create(TALLOC_CTX *mem_ctx, @@ -2414,32 +2408,32 @@ struct tevent_req *cli_open_create(TALLOC_CTX *mem_ctx, struct tevent_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev, struct cli_state *cli, const char *fname, int flags, int share_mode); -NTSTATUS cli_open_recv(struct tevent_req *req, int *fnum); -int cli_open(struct cli_state *cli, const char *fname, int flags, int share_mode); +NTSTATUS cli_open_recv(struct tevent_req *req, uint16_t *fnum); +NTSTATUS cli_open(struct cli_state *cli, const char *fname, int flags, int share_mode, uint16_t *pfnum); struct tevent_req *cli_close_create(TALLOC_CTX *mem_ctx, struct event_context *ev, - struct cli_state *cli, int fnum, + struct cli_state *cli, uint16_t fnum, struct tevent_req **psubreq); struct tevent_req *cli_close_send(TALLOC_CTX *mem_ctx, struct event_context *ev, - struct cli_state *cli, int fnum); + struct cli_state *cli, uint16_t fnum); NTSTATUS cli_close_recv(struct tevent_req *req); -bool cli_close(struct cli_state *cli, int fnum); -bool cli_ftruncate(struct cli_state *cli, int fnum, uint64_t size); -NTSTATUS cli_locktype(struct cli_state *cli, int fnum, +bool cli_close(struct cli_state *cli, uint16_t fnum); +bool cli_ftruncate(struct cli_state *cli, uint16_t fnum, uint64_t size); +NTSTATUS cli_locktype(struct cli_state *cli, uint16_t fnum, uint32_t offset, uint32_t len, int timeout, unsigned char locktype); -bool cli_lock(struct cli_state *cli, int fnum, +bool cli_lock(struct cli_state *cli, uint16_t fnum, uint32_t offset, uint32_t len, int timeout, enum brl_type lock_type); -bool cli_unlock(struct cli_state *cli, int fnum, uint32_t offset, uint32_t len); -bool cli_lock64(struct cli_state *cli, int fnum, +bool cli_unlock(struct cli_state *cli, uint16_t fnum, uint32_t offset, uint32_t len); +bool cli_lock64(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len, int timeout, enum brl_type lock_type); -bool cli_unlock64(struct cli_state *cli, int fnum, uint64_t offset, uint64_t len); -bool cli_posix_lock(struct cli_state *cli, int fnum, +bool cli_unlock64(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len); +bool cli_posix_lock(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len, bool wait_lock, enum brl_type lock_type); -bool cli_posix_unlock(struct cli_state *cli, int fnum, uint64_t offset, uint64_t len); -bool cli_posix_getlock(struct cli_state *cli, int fnum, uint64_t *poffset, uint64_t *plen); +bool cli_posix_unlock(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len); +bool cli_posix_getlock(struct cli_state *cli, uint16_t fnum, uint64_t *poffset, uint64_t *plen); bool cli_getattrE(struct cli_state *cli, int fd, uint16_t *attr, SMB_OFF_T *size, time_t *change_time, @@ -2465,14 +2459,14 @@ NTSTATUS cli_dskattr_recv(struct tevent_req *req, int *bsize, int *total, int *avail); NTSTATUS cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail); int cli_ctemp(struct cli_state *cli, const char *path, char **tmp_path); -NTSTATUS cli_raw_ioctl(struct cli_state *cli, int fnum, uint32_t code, DATA_BLOB *blob); +NTSTATUS cli_raw_ioctl(struct cli_state *cli, uint16_t fnum, uint32_t code, DATA_BLOB *blob); bool cli_set_ea_path(struct cli_state *cli, const char *path, const char *ea_name, const char *ea_val, size_t ea_len); -bool cli_set_ea_fnum(struct cli_state *cli, int fnum, const char *ea_name, const char *ea_val, size_t ea_len); +bool cli_set_ea_fnum(struct cli_state *cli, uint16_t fnum, const char *ea_name, const char *ea_val, size_t ea_len); bool cli_get_ea_list_path(struct cli_state *cli, const char *path, TALLOC_CTX *ctx, size_t *pnum_eas, struct ea_struct **pea_list); -bool cli_get_ea_list_fnum(struct cli_state *cli, int fnum, +bool cli_get_ea_list_fnum(struct cli_state *cli, uint16_t fnum, TALLOC_CTX *ctx, size_t *pnum_eas, struct ea_struct **pea_list); @@ -2564,9 +2558,9 @@ struct tevent_req *cli_oplock_ack_send(TALLOC_CTX *mem_ctx, struct cli_state *cli, uint16_t fnum, uint8_t level); NTSTATUS cli_oplock_ack_recv(struct tevent_req *req); -bool cli_oplock_ack(struct cli_state *cli, int fnum, unsigned char level); +NTSTATUS cli_oplock_ack(struct cli_state *cli, uint16_t fnum, unsigned char level); void cli_oplock_handler(struct cli_state *cli, - bool (*handler)(struct cli_state *, int, unsigned char)); + NTSTATUS (*handler)(struct cli_state *, uint16_t, unsigned char)); /* The following definitions come from libsmb/cliprint.c */ @@ -2574,11 +2568,11 @@ int cli_print_queue(struct cli_state *cli, void (*fn)(struct print_job_info *)); int cli_printjob_del(struct cli_state *cli, int job); int cli_spl_open(struct cli_state *cli, const char *fname, int flags, int share_mode); -bool cli_spl_close(struct cli_state *cli, int fnum); +bool cli_spl_close(struct cli_state *cli, uint16_t fnum); /* The following definitions come from libsmb/cliquota.c */ -bool cli_get_quota_handle(struct cli_state *cli, int *quota_fnum); +NTSTATUS cli_get_quota_handle(struct cli_state *cli, uint16_t *quota_fnum); void free_ntquota_list(SMB_NTQUOTA_LIST **qt_list); bool cli_get_user_quota(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_STRUCT *pqt); bool cli_set_user_quota(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_STRUCT *pqt); @@ -2626,8 +2620,8 @@ bool cli_qpathinfo_streams(struct cli_state *cli, const char *fname, TALLOC_CTX *mem_ctx, unsigned int *pnum_streams, struct stream_struct **pstreams); -bool cli_qfilename(struct cli_state *cli, int fnum, char *name, size_t namelen); -bool cli_qfileinfo(struct cli_state *cli, int fnum, +bool cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name, size_t namelen); +bool cli_qfileinfo(struct cli_state *cli, uint16_t fnum, uint16 *mode, SMB_OFF_T *size, struct timespec *create_time, struct timespec *access_time, @@ -2636,7 +2630,7 @@ bool cli_qfileinfo(struct cli_state *cli, int fnum, SMB_INO_T *ino); bool cli_qpathinfo_basic( struct cli_state *cli, const char *name, SMB_STRUCT_STAT *sbuf, uint32 *attributes ); -bool cli_qfileinfo_test(struct cli_state *cli, int fnum, int level, char **poutdata, uint32 *poutlen); +bool cli_qfileinfo_test(struct cli_state *cli, uint16_t fnum, int level, char **poutdata, uint32 *poutlen); NTSTATUS cli_qpathinfo_alt_name(struct cli_state *cli, const char *fname, fstring alt_name); /* The following definitions come from libsmb/clirap2.c */ @@ -2693,12 +2687,12 @@ int cli_NetConnectionEnum(struct cli_state *cli, const char *qualifier, struct tevent_req *cli_read_andx_create(TALLOC_CTX *mem_ctx, struct event_context *ev, - struct cli_state *cli, int fnum, + struct cli_state *cli, uint16_t fnum, off_t offset, size_t size, struct tevent_req **psmbreq); struct tevent_req *cli_read_andx_send(TALLOC_CTX *mem_ctx, struct event_context *ev, - struct cli_state *cli, int fnum, + struct cli_state *cli, uint16_t fnum, off_t offset, size_t size); NTSTATUS cli_read_andx_recv(struct tevent_req *req, ssize_t *received, uint8_t **rcvbuf); @@ -2715,14 +2709,14 @@ NTSTATUS cli_pull(struct cli_state *cli, uint16_t fnum, off_t start_offset, SMB_OFF_T size, size_t window_size, NTSTATUS (*sink)(char *buf, size_t n, void *priv), void *priv, SMB_OFF_T *received); -ssize_t cli_read(struct cli_state *cli, int fnum, char *buf, +ssize_t cli_read(struct cli_state *cli, uint16_t fnum, char *buf, off_t offset, size_t size); -ssize_t cli_readraw(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size); +ssize_t cli_readraw(struct cli_state *cli, uint16_t fnum, char *buf, off_t offset, size_t size); ssize_t cli_write(struct cli_state *cli, - int fnum, uint16 write_mode, + uint16_t fnum, uint16 write_mode, const char *buf, off_t offset, size_t size); ssize_t cli_smbwrite(struct cli_state *cli, - int fnum, char *buf, off_t offset, size_t size1); + uint16_t fnum, char *buf, off_t offset, size_t size1); struct tevent_req *cli_write_andx_create(TALLOC_CTX *mem_ctx, struct event_context *ev, struct cli_state *cli, uint16_t fnum, @@ -2753,9 +2747,9 @@ NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode, /* The following definitions come from libsmb/clisecdesc.c */ -SEC_DESC *cli_query_secdesc(struct cli_state *cli, int fnum, +SEC_DESC *cli_query_secdesc(struct cli_state *cli, uint16_t fnum, TALLOC_CTX *mem_ctx); -bool cli_set_secdesc(struct cli_state *cli, int fnum, SEC_DESC *sd); +bool cli_set_secdesc(struct cli_state *cli, uint16_t fnum, SEC_DESC *sd); /* The following definitions come from libsmb/clispnego.c */ diff --git a/source3/libgpo/gpo_filesync.c b/source3/libgpo/gpo_filesync.c index 6d64d7b..d4b623a 100644 --- a/source3/libgpo/gpo_filesync.c +++ b/source3/libgpo/gpo_filesync.c @@ -39,15 +39,15 @@ NTSTATUS gpo_copy_file(TALLOC_CTX *mem_ctx, const char *unix_path) { NTSTATUS result; - int fnum; + uint16_t fnum; int fd = 0; char *data = NULL; static int io_bufsize = 64512; int read_size = io_bufsize; off_t nread = 0; - if ((fnum = cli_open(cli, nt_path, O_RDONLY, DENY_NONE)) == -1) { - result = NT_STATUS_NO_SUCH_FILE; + result = cli_open(cli, nt_path, O_RDONLY, DENY_NONE, &fnum); + if (!NT_STATUS_IS_OK(result)) { goto out; } diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index 45addc2..b06a6fa 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -234,7 +234,7 @@ bool cli_receive_smb(struct cli_state *cli) if (cli->oplock_handler) { int fnum = SVAL(cli->inbuf,smb_vwv2); unsigned char level = CVAL(cli->inbuf,smb_vwv3+1); - if (!cli->oplock_handler(cli, fnum, level)) { + if (!NT_STATUS_IS_OK(cli->oplock_handler(cli, fnum, level))) { return false; } } diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index 54c5947..0573041 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -1083,7 +1083,7 @@ NTSTATUS cli_rmdir(struct cli_state *cli, const char *dname) Set or clear the delete on close flag. ****************************************************************************/ -int cli_nt_delete_on_close(struct cli_state *cli, int fnum, bool flag) +int cli_nt_delete_on_close(struct cli_state *cli, uint16_t fnum, bool flag) { unsigned int data_len = 1; unsigned int param_len = 6; @@ -1125,6 +1125,7 @@ int cli_nt_delete_on_close(struct cli_state *cli, int fnum, bool flag) Used in smbtorture. ****************************************************************************/ +#if 0 int cli_nt_create_full(struct cli_state *cli, const char *fname, uint32_t CreatFlags, uint32_t DesiredAccess, uint32_t FileAttributes, uint32_t ShareAccess, @@ -1181,6 +1182,7 @@ int cli_nt_create_full(struct cli_state *cli, const char *fname, return SVAL(cli->inbuf,smb_vwv2 + 1); } +#endif struct cli_ntcreate_state { uint16_t vwv[24]; @@ -1344,6 +1346,7 @@ NTSTATUS cli_ntcreate(struct cli_state *cli, return status; } +#if 0 /**************************************************************************** Open a file. ****************************************************************************/ @@ -1353,6 +1356,7 @@ int cli_nt_create(struct cli_state *cli, const char *fname, uint32_t DesiredAcce return cli_nt_create_full(cli, fname, 0, DesiredAccess, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, 0x0, 0x0); } +#endif uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str, size_t str_len, @@ -1411,7 +1415,7 @@ uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, struct cli_open_state { uint16_t vwv[15]; - int fnum; + uint16_t fnum; struct iovec bytes; }; @@ -1544,7 +1548,7 @@ static void cli_open_done(struct tevent_req *subreq) tevent_req_done(req); } -NTSTATUS cli_open_recv(struct tevent_req *req, int *fnum) +NTSTATUS cli_open_recv(struct tevent_req *req, uint16_t *pfnum) { struct cli_open_state *state = tevent_req_data( req, struct cli_open_state); @@ -1553,18 +1557,17 @@ NTSTATUS cli_open_recv(struct tevent_req *req, int *fnum) if (tevent_req_is_nterror(req, &status)) { return status; } - *fnum = state->fnum; + *pfnum = state->fnum; return NT_STATUS_OK; } -int cli_open(struct cli_state *cli, const char *fname, int flags, - int share_mode) +NTSTATUS cli_open(struct cli_state *cli, const char *fname, int flags, + int share_mode, uint16_t *pfnum) { TALLOC_CTX *frame = talloc_stackframe(); struct event_context *ev; struct tevent_req *req; NTSTATUS status = NT_STATUS_OK; - int result = -1; if (cli_has_async_calls(cli)) { /* @@ -1591,13 +1594,13 @@ int cli_open(struct cli_state *cli, const char *fname, int flags, goto fail; } - cli_open_recv(req, &result); + status = cli_open_recv(req, pfnum); fail: TALLOC_FREE(frame); -- Samba Shared Repository