Class: RubySMB::SMB1::Tree

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_smb/smb1/tree.rb

Overview

An SMB1 connected remote Tree, as returned by a [RubySMB::SMB1::Packet::TreeConnectRequest]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:, share:, response:) ⇒ Tree

Returns a new instance of Tree.



33
34
35
36
37
38
39
# File 'lib/ruby_smb/smb1/tree.rb', line 33

def initialize(client:, share:, response:)
  @client             = client
  @share              = share
  @id                 = response.smb_header.tid
  @guest_permissions  = response.parameter_block.guest_access_rights
  @permissions        = response.parameter_block.access_rights
end

Instance Attribute Details

#clientRubySMB::Client

Returns:



11
12
13
# File 'lib/ruby_smb/smb1/tree.rb', line 11

def client
  @client
end

#guest_permissionsRubySMB::SMB1::BitField::DirectoryAccessMask



16
17
18
# File 'lib/ruby_smb/smb1/tree.rb', line 16

def guest_permissions
  @guest_permissions
end

#idInteger

Returns:

  • (Integer)


31
32
33
# File 'lib/ruby_smb/smb1/tree.rb', line 31

def id
  @id
end

#permissionsRubySMB::SMB1::BitField::DirectoryAccessMask



21
22
23
# File 'lib/ruby_smb/smb1/tree.rb', line 21

def permissions
  @permissions
end

#shareString

Returns:

  • (String)


26
27
28
# File 'lib/ruby_smb/smb1/tree.rb', line 26

def share
  @share
end

Instance Method Details

#disconnect!WindowsError::ErrorCode

Disconnects this Tree from the current session

Returns:

  • (WindowsError::ErrorCode)

    the NTStatus sent back by the server.



44
45
46
47
48
49
50
# File 'lib/ruby_smb/smb1/tree.rb', line 44

def disconnect!
  request = RubySMB::SMB1::Packet::TreeDisconnectRequest.new
  request.smb_header.tid = self.id
  raw_response = self.client.send_recv(request)
  response = RubySMB::SMB1::Packet::TreeDisconnectResponse.read(raw_response)
  response.status_code
end