Module: RubySMB::Server::ServerClient::ShareIO

Included in:
RubySMB::Server::ServerClient
Defined in:
lib/ruby_smb/server/server_client/share_io.rb

Instance Method Summary collapse

Instance Method Details

#proxy_share_io_smb1(request, session) ⇒ Object Also known as: do_close_smb1, do_nt_create_andx_smb1, do_read_andx_smb1, do_transactions2_smb1



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/ruby_smb/server/server_client/share_io.rb', line 5

def proxy_share_io_smb1(request, session)
  share_processor = session.tree_connect_table[request.smb_header.tid]
  if share_processor.nil?
    response = SMB1::Packet::EmptyPacket.new
    response.smb_header.nt_status = WindowsError::NTStatus::STATUS_NETWORK_NAME_DELETED
    return response
  end

  logger.debug("Received #{SMB1::Commands.name(request.smb_header.command)} request for share: #{share_processor.provider.name}")
  share_processor.share_io(__callee__, request)
end

#proxy_share_io_smb2(request, session) ⇒ Object Also known as: do_close_smb2, do_create_smb2, do_ioctl_smb2, do_query_directory_smb2, do_query_info_smb2, do_read_smb2



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ruby_smb/server/server_client/share_io.rb', line 22

def proxy_share_io_smb2(request, session)
  # see: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/9a639360-87be-4d49-a1dd-4c6be0c020bd
  share_processor = session.tree_connect_table[request.smb2_header.tree_id]
  if share_processor.nil?
    response = SMB2::Packet::ErrorPacket.new
    response.smb2_header.nt_status = WindowsError::NTStatus::STATUS_NETWORK_NAME_DELETED
    return response
  end

  logger.debug("Received #{SMB2::Commands.name(request.smb2_header.command)} request for share: #{share_processor.provider.name}")
  share_processor.share_io(__callee__, request)
end