From d864b1bace0038b86cb393ca811dcce2e938bebd Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 23 Oct 2010 09:43:31 +0200 Subject: s3: Convert cli_qfilename to cli_qfileinfo --- source3/libsmb/clirap.c | 48 +++++++++++++----------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) (limited to 'source3/libsmb') diff --git a/source3/libsmb/clirap.c b/source3/libsmb/clirap.c index 025a86b833..0b141d7497 100644 --- a/source3/libsmb/clirap.c +++ b/source3/libsmb/clirap.c @@ -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. ****************************************************************************/ -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; - unsigned int param_len = 0; - uint16 setup = TRANSACT2_QFILEINFO; - char param[4]; - char *rparam=NULL, *rdata=NULL; - - param_len = 4; - SSVAL(param, 0, fnum); - SSVAL(param, 2, SMB_QUERY_FILE_NAME_INFO); - - if (!cli_send_trans(cli, SMBtrans2, - NULL, /* name */ - -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, ¶m_len, - &rdata, &data_len)) { - return False; - } + uint8_t *rdata; + uint32_t num_rdata; + NTSTATUS status; - if (!rdata || data_len < 4) { - SAFE_FREE(rparam); - SAFE_FREE(rdata); - return False; + status = cli_qfileinfo(talloc_tos(), cli, fnum, + SMB_QUERY_FILE_NAME_INFO, + 4, cli->max_xmit, + &rdata, &num_rdata); + if (!NT_STATUS_IS_OK(status)) { + return status; } clistr_pull(cli->inbuf, name, rdata+4, namelen, IVAL(rdata, 0), STR_UNICODE); - - SAFE_FREE(rparam); - SAFE_FREE(rdata); - - return True; + TALLOC_FREE(rdata); + return NT_STATUS_OK; } /**************************************************************************** -- cgit