s3:smbd: add smbd_smb2_send_oplock_break()
[metze/samba/wip.git] / source3 / smbd / globals.h
index 2e5bc913d05fb02b8894ca1923f0b072fdeaf2db..e101205417e0eeb098f30ea76951726d7eb05b66 100644 (file)
@@ -170,6 +170,12 @@ NTSTATUS smb2_signing_check_pdu(DATA_BLOB session_key,
                                const struct iovec *vector,
                                int count);
 
+void smbd_server_connection_terminate_ex(struct smbd_server_connection *sconn,
+                                        const char *reason,
+                                        const char *location);
+#define smbd_server_connection_terminate(sconn, reason) \
+       smbd_server_connection_terminate_ex(sconn, reason, __location__)
+
 bool smbd_is_smb2_header(const uint8_t *inbuf, size_t size);
 
 void reply_smb2002(struct smb_request *req, uint16_t choice);
@@ -189,6 +195,11 @@ NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,
 #define smbd_smb2_request_done(req, body, dyn) \
        smbd_smb2_request_done_ex(req, NT_STATUS_OK, body, dyn, __location__)
 
+NTSTATUS smbd_smb2_send_oplock_break(struct smbd_server_connection *sconn,
+                                    uint64_t file_id_persistent,
+                                    uint64_t file_id_volatile,
+                                    uint8_t oplock_level);
+
 NTSTATUS smbd_smb2_request_check_session(struct smbd_smb2_request *req);
 NTSTATUS smbd_smb2_request_check_tcon(struct smbd_smb2_request *req);
 
@@ -204,6 +215,7 @@ NTSTATUS smbd_smb2_request_process_close(struct smbd_smb2_request *req);
 NTSTATUS smbd_smb2_request_process_flush(struct smbd_smb2_request *req);
 NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req);
 NTSTATUS smbd_smb2_request_process_write(struct smbd_smb2_request *req);
+NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req);
 NTSTATUS smbd_smb2_request_process_keepalive(struct smbd_smb2_request *req);
 
 struct smbd_smb2_request {
@@ -220,6 +232,10 @@ struct smbd_smb2_request {
        int current_idx;
        bool do_signing;
 
+       struct files_struct *compat_chain_fsp;
+
+       NTSTATUS next_status;
+
        struct {
                /* the NBT header is not allocated */
                uint8_t nbt_hdr[4];