1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-02 00:22:11 +03:00

s3: Convert cli_qfilename to cli_qfileinfo

This commit is contained in:
Volker Lendecke
2010-10-23 09:43:31 +02:00
parent 9423257806
commit d864b1bace
3 changed files with 16 additions and 37 deletions

View File

@ -2327,7 +2327,8 @@ NTSTATUS cli_qpathinfo_streams(struct cli_state *cli, const char *fname,
TALLOC_CTX *mem_ctx, TALLOC_CTX *mem_ctx,
unsigned int *pnum_streams, unsigned int *pnum_streams,
struct stream_struct **pstreams); struct stream_struct **pstreams);
bool cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name, size_t namelen); NTSTATUS cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name,
size_t namelen);
bool cli_qfileinfo_basic(struct cli_state *cli, uint16_t fnum, bool cli_qfileinfo_basic(struct cli_state *cli, uint16_t fnum,
uint16 *mode, SMB_OFF_T *size, uint16 *mode, SMB_OFF_T *size,
struct timespec *create_time, struct timespec *create_time,

View File

@ -1097,47 +1097,25 @@ static bool parse_streams_blob(TALLOC_CTX *mem_ctx, const uint8_t *rdata,
Send a qfileinfo QUERY_FILE_NAME_INFO call. Send a qfileinfo QUERY_FILE_NAME_INFO call.
****************************************************************************/ ****************************************************************************/
bool cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name, size_t namelen) NTSTATUS cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name,
size_t namelen)
{ {
unsigned int data_len = 0; uint8_t *rdata;
unsigned int param_len = 0; uint32_t num_rdata;
uint16 setup = TRANSACT2_QFILEINFO; NTSTATUS status;
char param[4];
char *rparam=NULL, *rdata=NULL;
param_len = 4; status = cli_qfileinfo(talloc_tos(), cli, fnum,
SSVAL(param, 0, fnum); SMB_QUERY_FILE_NAME_INFO,
SSVAL(param, 2, SMB_QUERY_FILE_NAME_INFO); 4, cli->max_xmit,
&rdata, &num_rdata);
if (!cli_send_trans(cli, SMBtrans2, if (!NT_STATUS_IS_OK(status)) {
NULL, /* name */ return status;
-1, 0, /* fid, flags */
&setup, 1, 0, /* setup, length, max */
param, param_len, 2, /* param, length, max */
NULL, data_len, cli->max_xmit /* data, length, max */
)) {
return False;
}
if (!cli_receive_trans(cli, SMBtrans2,
&rparam, &param_len,
&rdata, &data_len)) {
return False;
}
if (!rdata || data_len < 4) {
SAFE_FREE(rparam);
SAFE_FREE(rdata);
return False;
} }
clistr_pull(cli->inbuf, name, rdata+4, namelen, IVAL(rdata, 0), clistr_pull(cli->inbuf, name, rdata+4, namelen, IVAL(rdata, 0),
STR_UNICODE); STR_UNICODE);
TALLOC_FREE(rdata);
SAFE_FREE(rparam); return NT_STATUS_OK;
SAFE_FREE(rdata);
return True;
} }
/**************************************************************************** /****************************************************************************

View File

@ -2984,7 +2984,7 @@ static bool run_trans2test(int dummy)
correct = False; correct = False;
} }
if (!cli_qfilename(cli, fnum, pname, sizeof(pname))) { if (!NT_STATUS_IS_OK(cli_qfilename(cli, fnum, pname, sizeof(pname)))) {
printf("ERROR: qfilename failed (%s)\n", cli_errstr(cli)); printf("ERROR: qfilename failed (%s)\n", cli_errstr(cli));
correct = False; correct = False;
} }