diff options
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/smb_signing.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/libsmb/smb_signing.c b/source3/libsmb/smb_signing.c index c3fc3306fe..4167452953 100644 --- a/source3/libsmb/smb_signing.c +++ b/source3/libsmb/smb_signing.c @@ -809,12 +809,39 @@ void srv_defer_sign_response(uint16 mid) data = (struct smb_basic_signing_context *)srv_sign_info.signing_context; + if (!data) + return; + store_sequence_for_reply(&data->outstanding_packet_list, mid, data->send_seq_num); data->send_seq_num++; } /*********************************************************** + Called to remove sequence records when a deferred packet is + cancelled by mid. This should never find one.... +************************************************************/ + +void srv_cancel_sign_response(uint16 mid) +{ + struct smb_basic_signing_context *data; + uint32 dummy_seq; + + if (!srv_sign_info.doing_signing) + return; + + data = (struct smb_basic_signing_context *)srv_sign_info.signing_context; + + if (!data) + return; + + DEBUG(10,("srv_cancel_sign_response: for mid %u\n", (unsigned int)mid )); + + while (get_sequence_for_reply(&data->outstanding_packet_list, mid, &dummy_seq)) + ; +} + +/*********************************************************** Called by server negprot when signing has been negotiated. ************************************************************/ |