2013-08-08 02:54:05 +04:00
/*
Unix SMB / CIFS implementation .
smb2 wrapper client routines
Copyright ( C ) Jeremy Allison 2013
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef __SMB2CLI_FNUM_H__
# define __SMB2CLI_FNUM_H__
struct smbXcli_conn ;
struct smbXcli_session ;
struct cli_state ;
struct file_info ;
2014-06-20 12:23:47 +04:00
struct tevent_req * cli_smb2_create_fnum_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
const char * fname ,
uint32_t create_flags ,
uint32_t desired_access ,
uint32_t file_attributes ,
uint32_t share_access ,
uint32_t create_disposition ,
uint32_t create_options ) ;
NTSTATUS cli_smb2_create_fnum_recv ( struct tevent_req * req , uint16_t * pfnum ,
struct smb_create_returns * cr ) ;
2013-08-08 02:54:05 +04:00
NTSTATUS cli_smb2_create_fnum ( struct cli_state * cli ,
const char * fname ,
uint32_t create_flags ,
uint32_t desired_access ,
uint32_t file_attributes ,
uint32_t share_access ,
uint32_t create_disposition ,
uint32_t create_options ,
uint16_t * pfid ,
2014-05-09 07:08:41 +04:00
struct smb_create_returns * cr ) ;
2013-08-08 02:54:05 +04:00
2014-06-27 13:47:36 +04:00
struct tevent_req * cli_smb2_close_fnum_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
uint16_t fnum ) ;
NTSTATUS cli_smb2_close_fnum_recv ( struct tevent_req * req ) ;
2013-08-08 02:54:05 +04:00
NTSTATUS cli_smb2_close_fnum ( struct cli_state * cli , uint16_t fnum ) ;
2017-06-20 09:35:13 +03:00
struct tevent_req * cli_smb2_delete_on_close_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
uint16_t fnum ,
bool flag ) ;
NTSTATUS cli_smb2_delete_on_close_recv ( struct tevent_req * req ) ;
NTSTATUS cli_smb2_delete_on_close ( struct cli_state * cli , uint16_t fnum , bool flag ) ;
2013-08-08 02:54:05 +04:00
NTSTATUS cli_smb2_mkdir ( struct cli_state * cli , const char * dirname ) ;
NTSTATUS cli_smb2_rmdir ( struct cli_state * cli , const char * dirname ) ;
NTSTATUS cli_smb2_unlink ( struct cli_state * cli , const char * fname ) ;
NTSTATUS cli_smb2_list ( struct cli_state * cli ,
const char * pathname ,
2013-11-13 03:55:51 +04:00
uint16_t attribute ,
2013-08-08 02:54:05 +04:00
NTSTATUS ( * fn ) ( const char * ,
struct file_info * ,
const char * ,
void * ) ,
void * state ) ;
NTSTATUS cli_smb2_qpathinfo_basic ( struct cli_state * cli ,
const char * name ,
SMB_STRUCT_STAT * sbuf ,
uint32_t * attributes ) ;
NTSTATUS cli_smb2_qpathinfo_alt_name ( struct cli_state * cli ,
const char * name ,
fstring alt_name ) ;
NTSTATUS cli_smb2_qfileinfo_basic ( struct cli_state * cli ,
uint16_t fnum ,
uint16_t * mode ,
off_t * size ,
struct timespec * create_time ,
struct timespec * access_time ,
struct timespec * write_time ,
struct timespec * change_time ,
SMB_INO_T * ino ) ;
NTSTATUS cli_smb2_getattrE ( struct cli_state * cli ,
uint16_t fnum ,
uint16_t * attr ,
off_t * size ,
time_t * change_time ,
time_t * access_time ,
time_t * write_time ) ;
NTSTATUS cli_smb2_getatr ( struct cli_state * cli ,
const char * name ,
uint16_t * attr ,
off_t * size ,
time_t * write_time ) ;
NTSTATUS cli_smb2_qpathinfo2 ( struct cli_state * cli ,
const char * fname ,
struct timespec * create_time ,
struct timespec * access_time ,
struct timespec * write_time ,
struct timespec * change_time ,
off_t * size ,
uint16_t * mode ,
SMB_INO_T * ino ) ;
NTSTATUS cli_smb2_qpathinfo_streams ( struct cli_state * cli ,
const char * name ,
TALLOC_CTX * mem_ctx ,
unsigned int * pnum_streams ,
struct stream_struct * * pstreams ) ;
NTSTATUS cli_smb2_setatr ( struct cli_state * cli ,
const char * fname ,
uint16_t attr ,
time_t mtime ) ;
NTSTATUS cli_smb2_setattrE ( struct cli_state * cli ,
uint16_t fnum ,
time_t change_time ,
time_t access_time ,
time_t write_time ) ;
NTSTATUS cli_smb2_dskattr ( struct cli_state * cli ,
2016-01-06 01:08:25 +03:00
const char * path ,
2014-06-05 01:19:30 +04:00
uint64_t * bsize ,
uint64_t * total ,
uint64_t * avail ) ;
2016-09-20 14:32:06 +03:00
NTSTATUS cli_smb2_get_fs_attr_info ( struct cli_state * cli , uint32_t * fs_attr ) ;
2013-08-08 02:54:05 +04:00
NTSTATUS cli_smb2_query_security_descriptor ( struct cli_state * cli ,
uint16_t fnum ,
uint32_t sec_info ,
TALLOC_CTX * mem_ctx ,
struct security_descriptor * * ppsd ) ;
NTSTATUS cli_smb2_set_security_descriptor ( struct cli_state * cli ,
uint16_t fnum ,
uint32_t sec_info ,
const struct security_descriptor * sd ) ;
NTSTATUS cli_smb2_rename ( struct cli_state * cli ,
2017-03-22 00:02:48 +03:00
const char * fname_src ,
const char * fname_dst ,
bool replace ) ;
2013-08-08 02:54:05 +04:00
NTSTATUS cli_smb2_set_ea_fnum ( struct cli_state * cli ,
uint16_t fnum ,
const char * ea_name ,
const char * ea_val ,
size_t ea_len ) ;
NTSTATUS cli_smb2_get_ea_list_path ( struct cli_state * cli ,
const char * name ,
TALLOC_CTX * ctx ,
size_t * pnum_eas ,
struct ea_struct * * pea_list ) ;
NTSTATUS cli_smb2_set_ea_path ( struct cli_state * cli ,
const char * name ,
const char * ea_name ,
const char * ea_val ,
size_t ea_len ) ;
2016-09-12 22:38:15 +03:00
NTSTATUS cli_smb2_get_user_quota ( struct cli_state * cli ,
int quota_fnum ,
SMB_NTQUOTA_STRUCT * pqt ) ;
2016-09-19 22:17:10 +03:00
NTSTATUS cli_smb2_list_user_quota_step ( struct cli_state * cli ,
TALLOC_CTX * mem_ctx ,
int quota_fnum ,
SMB_NTQUOTA_LIST * * pqt_list ,
bool first ) ;
2016-09-20 06:46:28 +03:00
NTSTATUS cli_smb2_get_fs_quota_info ( struct cli_state * cli ,
int quota_fnum ,
SMB_NTQUOTA_STRUCT * pqt ) ;
2016-09-21 19:35:39 +03:00
NTSTATUS cli_smb2_set_user_quota ( struct cli_state * cli ,
int quota_fnum ,
SMB_NTQUOTA_LIST * qtl ) ;
2016-09-22 01:03:41 +03:00
NTSTATUS cli_smb2_set_fs_quota_info ( struct cli_state * cli ,
int quota_fnum ,
SMB_NTQUOTA_STRUCT * pqt ) ;
2013-08-08 02:54:05 +04:00
struct tevent_req * cli_smb2_read_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
uint16_t fnum ,
off_t offset ,
size_t size ) ;
NTSTATUS cli_smb2_read_recv ( struct tevent_req * req ,
ssize_t * received ,
uint8_t * * rcvbuf ) ;
struct tevent_req * cli_smb2_write_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
uint16_t fnum ,
uint16_t mode ,
const uint8_t * buf ,
off_t offset ,
size_t size ) ;
NTSTATUS cli_smb2_write_recv ( struct tevent_req * req ,
size_t * pwritten ) ;
struct tevent_req * cli_smb2_writeall_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
uint16_t fnum ,
uint16_t mode ,
const uint8_t * buf ,
off_t offset ,
size_t size ) ;
NTSTATUS cli_smb2_writeall_recv ( struct tevent_req * req ,
size_t * pwritten ) ;
2015-05-28 01:13:15 +03:00
struct tevent_req * cli_smb2_splice_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
uint16_t src_fnum , uint16_t dst_fnum ,
off_t size , off_t src_offset , off_t dst_offset ,
int ( * splice_cb ) ( off_t n , void * priv ) , void * priv ) ;
NTSTATUS cli_smb2_splice_recv ( struct tevent_req * req , off_t * written ) ;
2016-08-17 01:26:53 +03:00
NTSTATUS cli_smb2_shadow_copy_data ( TALLOC_CTX * mem_ctx ,
struct cli_state * cli ,
uint16_t fnum ,
bool get_names ,
char * * * pnames ,
int * pnum_names ) ;
2016-12-22 00:55:50 +03:00
NTSTATUS cli_smb2_ftruncate ( struct cli_state * cli ,
uint16_t fnum ,
uint64_t newsize ) ;
2013-08-08 02:54:05 +04:00
# endif /* __SMB2CLI_FNUM_H__ */