X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=libcli%2Fsmb%2FsmbXcli_base.h;h=fc128a10598415667dc3aac27d9cda82eb9fd27a;hb=86b7f83e8b224a812131da920ac7af2176d400b9;hp=b433c4e769bdb616c637cc0d3fcede539ada72da;hpb=74f9b52e659265c7a6283550d226f0cec5e8fb18;p=obnox%2Fsamba%2Fsamba-obnox.git diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h index b433c4e769b..fc128a10598 100644 --- a/libcli/smb/smbXcli_base.h +++ b/libcli/smb/smbXcli_base.h @@ -26,6 +26,8 @@ struct smbXcli_session; struct smbXcli_tcon; struct smb_trans_enc_state; struct GUID; +struct iovec; +struct smb2_create_blobs; struct smbXcli_conn *smbXcli_conn_create(TALLOC_CTX *mem_ctx, int fd, @@ -40,7 +42,12 @@ void smbXcli_conn_disconnect(struct smbXcli_conn *conn, NTSTATUS status); bool smbXcli_conn_has_async_calls(struct smbXcli_conn *conn); +bool smbXcli_conn_dfs_supported(struct smbXcli_conn *conn); + enum protocol_types smbXcli_conn_protocol(struct smbXcli_conn *conn); +bool smbXcli_conn_nt_smbs_supported(struct smbXcli_conn *conn); +bool smbXcli_conn_use_status32(struct smbXcli_conn *conn); +bool smbXcli_conn_use_large_files(struct smbXcli_conn *conn); bool smbXcli_conn_use_unicode(struct smbXcli_conn *conn); void smbXcli_conn_set_sockopt(struct smbXcli_conn *conn, const char *options); @@ -185,6 +192,16 @@ NTSTATUS smb1cli_trans(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint8_t **rparam, uint32_t min_rparam, uint32_t *num_rparam, uint8_t **rdata, uint32_t min_rdata, uint32_t *num_rdata); +struct tevent_req *smb1cli_echo_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct smbXcli_conn *conn, + uint32_t timeout_msec, + uint16_t num_echos, + DATA_BLOB data); +NTSTATUS smb1cli_echo_recv(struct tevent_req *req); +NTSTATUS smb1cli_echo(struct smbXcli_conn *conn, uint32_t timeout_msec, + uint16_t num_echos, DATA_BLOB data); + uint32_t smb2cli_conn_server_capabilities(struct smbXcli_conn *conn); uint16_t smb2cli_conn_server_security_mode(struct smbXcli_conn *conn); uint32_t smb2cli_conn_max_trans_size(struct smbXcli_conn *conn); @@ -200,8 +217,7 @@ struct tevent_req *smb2cli_req_create(TALLOC_CTX *mem_ctx, uint32_t additional_flags, uint32_t clear_flags, uint32_t timeout_msec, - uint32_t pid, - uint32_t tid, + struct smbXcli_tcon *tcon, struct smbXcli_session *session, const uint8_t *fixed, uint16_t fixed_len, @@ -224,8 +240,7 @@ struct tevent_req *smb2cli_req_send(TALLOC_CTX *mem_ctx, uint32_t additional_flags, uint32_t clear_flags, uint32_t timeout_msec, - uint32_t pid, - uint32_t tid, + struct smbXcli_tcon *tcon, struct smbXcli_session *session, const uint8_t *fixed, uint16_t fixed_len, @@ -250,18 +265,25 @@ NTSTATUS smbXcli_negprot(struct smbXcli_conn *conn, struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn); +struct smbXcli_session *smbXcli_session_copy(TALLOC_CTX *mem_ctx, + struct smbXcli_session *src); +NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session, + TALLOC_CTX *mem_ctx, + DATA_BLOB *key); +void smbXcli_session_set_disconnect_expired(struct smbXcli_session *session); uint16_t smb1cli_session_current_id(struct smbXcli_session* session); void smb1cli_session_set_id(struct smbXcli_session* session, uint16_t session_id); +NTSTATUS smb1cli_session_set_session_key(struct smbXcli_session *session, + const DATA_BLOB _session_key); +NTSTATUS smb1cli_session_protect_session_key(struct smbXcli_session *session); uint8_t smb2cli_session_security_mode(struct smbXcli_session *session); uint64_t smb2cli_session_current_id(struct smbXcli_session *session); uint16_t smb2cli_session_get_flags(struct smbXcli_session *session); -NTSTATUS smb2cli_session_application_key(struct smbXcli_session *session, - TALLOC_CTX *mem_ctx, - DATA_BLOB *key); void smb2cli_session_set_id_and_flags(struct smbXcli_session *session, uint64_t session_id, uint16_t session_flags); +void smb2cli_session_increment_channel_sequence(struct smbXcli_session *session); NTSTATUS smb2cli_session_set_session_key(struct smbXcli_session *session, const DATA_BLOB session_key, const struct iovec *recv_iov); @@ -284,7 +306,9 @@ bool smb1cli_tcon_set_values(struct smbXcli_tcon *tcon, const char *service, const char *fs_type); uint32_t smb2cli_tcon_current_id(struct smbXcli_tcon *tcon); +uint32_t smb2cli_tcon_capabilities(struct smbXcli_tcon *tcon); void smb2cli_tcon_set_values(struct smbXcli_tcon *tcon, + struct smbXcli_session *session, uint32_t tcon_id, uint8_t type, uint32_t flags, @@ -374,7 +398,7 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint32_t length, uint64_t offset, uint64_t fid_persistent, @@ -386,7 +410,7 @@ NTSTATUS smb2cli_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, NTSTATUS smb2cli_read(struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint32_t length, uint64_t offset, uint64_t fid_persistent, @@ -402,7 +426,7 @@ struct tevent_req *smb2cli_write_send(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint32_t length, uint64_t offset, uint64_t fid_persistent, @@ -414,7 +438,7 @@ NTSTATUS smb2cli_write_recv(struct tevent_req *req); NTSTATUS smb2cli_write(struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint32_t length, uint64_t offset, uint64_t fid_persistent, @@ -428,14 +452,14 @@ struct tevent_req *smb2cli_flush_send(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint64_t fid_persistent, uint64_t fid_volatile); NTSTATUS smb2cli_flush_recv(struct tevent_req *req); NTSTATUS smb2cli_flush(struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint64_t fid_persistent, uint64_t fid_volatile); @@ -444,7 +468,7 @@ struct tevent_req *smb2cli_set_info_send(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint8_t in_info_type, uint8_t in_file_info_class, const DATA_BLOB *in_input_buffer, @@ -453,22 +477,22 @@ struct tevent_req *smb2cli_set_info_send(TALLOC_CTX *mem_ctx, uint64_t in_fid_volatile); NTSTATUS smb2cli_set_info_recv(struct tevent_req *req); NTSTATUS smb2cli_set_info(struct smbXcli_conn *conn, - uint32_t timeout_msec, - struct smbXcli_session *session, - uint32_t tcon_id, - uint8_t in_info_type, - uint8_t in_file_info_class, - const DATA_BLOB *in_input_buffer, - uint32_t in_additional_info, - uint64_t in_fid_persistent, - uint64_t in_fid_volatile); + uint32_t timeout_msec, + struct smbXcli_session *session, + struct smbXcli_tcon *tcon, + uint8_t in_info_type, + uint8_t in_file_info_class, + const DATA_BLOB *in_input_buffer, + uint32_t in_additional_info, + uint64_t in_fid_persistent, + uint64_t in_fid_volatile); struct tevent_req *smb2cli_query_info_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint8_t in_info_type, uint8_t in_file_info_class, uint32_t in_max_output_length, @@ -483,7 +507,7 @@ NTSTATUS smb2cli_query_info_recv(struct tevent_req *req, NTSTATUS smb2cli_query_info(struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint8_t in_info_type, uint8_t in_file_info_class, uint32_t in_max_output_length, @@ -500,7 +524,7 @@ struct tevent_req *smb2cli_query_directory_send(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint8_t level, uint8_t flags, uint32_t file_index, @@ -515,7 +539,7 @@ NTSTATUS smb2cli_query_directory_recv(struct tevent_req *req, NTSTATUS smb2cli_query_directory(struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint8_t level, uint8_t flags, uint32_t file_index, @@ -532,7 +556,7 @@ struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint64_t in_fid_persistent, uint64_t in_fid_volatile, uint32_t in_ctl_code, @@ -548,7 +572,7 @@ NTSTATUS smb2cli_ioctl_recv(struct tevent_req *req, NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn, uint32_t timeout_msec, struct smbXcli_session *session, - uint32_t tcon_id, + struct smbXcli_tcon *tcon, uint64_t in_fid_persistent, uint64_t in_fid_volatile, uint32_t in_ctl_code, @@ -561,4 +585,12 @@ NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn, DATA_BLOB *out_input_buffer, DATA_BLOB *out_output_buffer); +struct tevent_req *smb2cli_echo_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct smbXcli_conn *conn, + uint32_t timeout_msec); +NTSTATUS smb2cli_echo_recv(struct tevent_req *req); +NTSTATUS smb2cli_echo(struct smbXcli_conn *conn, + uint32_t timeout_msec); + #endif /* _SMBXCLI_BASE_H_ */