smbd: Introduce fsp_is_alternate_stream()
[gd/samba-autobuild/.git] / source3 / smbd / proto.h
index a39eba9024d4376170fce93bb8eeefe913445eeb..f9aa1f2a39e20345f8b10e6d4a29a4498e661858 100644 (file)
@@ -111,7 +111,6 @@ struct tevent_req *smbd_smb1_do_locks_send(
        struct files_struct *fsp,
        uint32_t lock_timeout,
        bool large_offset,
-       enum brl_flavour lock_flav,
        uint16_t num_locks,
        struct smbd_lock_element *locks);
 NTSTATUS smbd_smb1_do_locks_recv(struct tevent_req *req);
@@ -123,7 +122,6 @@ void smbd_smb1_brl_finish_by_req(struct tevent_req *req, NTSTATUS status);
 bool smbd_smb1_brl_finish_by_lock(
        struct files_struct *fsp,
        bool large_offset,
-       enum brl_flavour lock_flav,
        struct smbd_lock_element lock,
        NTSTATUS finish_status);
 bool smbd_smb1_brl_finish_by_mid(
@@ -132,8 +130,12 @@ bool smbd_smb1_brl_finish_by_mid(
 /* The following definitions come from smbd/close.c  */
 
 void set_close_write_time(struct files_struct *fsp, struct timespec ts);
-NTSTATUS close_file(struct smb_request *req, files_struct *fsp,
-                   enum file_close_type close_type);
+NTSTATUS close_file_smb(struct smb_request *req,
+                       struct files_struct *fsp,
+                       enum file_close_type close_type);
+NTSTATUS close_file_free(struct smb_request *req,
+                        struct files_struct **_fsp,
+                        enum file_close_type close_type);
 void msg_close_file(struct messaging_context *msg_ctx,
                    void *private_data,
                    uint32_t msg_type,
@@ -413,6 +415,7 @@ struct files_struct *file_find_one_fsp_from_lease_key(
        struct smbd_server_connection *sconn,
        const struct smb2_lease_key *lease_key);
 bool file_find_subpath(files_struct *dir_fsp);
+void fsp_unbind_smb(struct smb_request *req, files_struct *fsp);
 void file_free(struct smb_request *req, files_struct *fsp);
 files_struct *file_fsp(struct smb_request *req, uint16_t fid);
 struct files_struct *file_fsp_get(struct smbd_smb2_request *smb2req,
@@ -433,6 +436,7 @@ NTSTATUS fsp_set_smb_fname(struct files_struct *fsp,
                           const struct smb_filename *smb_fname_in);
 size_t fsp_fullbasepath(struct files_struct *fsp, char *buf, size_t buflen);
 void fsp_set_base_fsp(struct files_struct *fsp, struct files_struct *base_fsp);
+bool fsp_is_alternate_stream(const struct files_struct *fsp);
 
 NTSTATUS create_internal_fsp(connection_struct *conn,
                             const struct smb_filename *smb_fname,
@@ -1197,7 +1201,6 @@ NTSTATUS get_ea_names_from_fsp(TALLOC_CTX *mem_ctx,
                        size_t *pnum_names);
 NTSTATUS set_ea(connection_struct *conn, files_struct *fsp,
                struct ea_list *ea_list);
-struct ea_list *read_ea_list_entry(TALLOC_CTX *ctx, const char *pdata, size_t data_size, size_t *pbytes_used);
 void send_trans2_replies(connection_struct *conn,
                        struct smb_request *req,
                        NTSTATUS status,
@@ -1334,4 +1337,15 @@ NTSTATUS vfs_default_durable_reconnect(struct connection_struct *conn,
                                       files_struct **result,
                                       DATA_BLOB *new_cookie);
 
+/* The following definitions come from smbd/smb2_posix.c */
+DATA_BLOB smb2_posix_cc_info(TALLOC_CTX *mem_ctx,
+                               connection_struct *conn,
+                               uint32_t reparse_tag,
+                               const SMB_STRUCT_STAT *psbuf);
+DATA_BLOB store_smb2_posix_info(TALLOC_CTX *mem_ctx,
+                               connection_struct *conn,
+                               const SMB_STRUCT_STAT *psbuf,
+                               uint32_t reparse_tag,
+                               uint32_t dos_attributes);
+
 #endif /* _SMBD_PROTO_H_ */