Module: RubySMB::Client::TreeConnect
- Included in:
- RubySMB::Client
- Defined in:
- lib/ruby_smb/client/tree_connect.rb
Overview
This module contains all of the methods for a client to connect to a remote share or named pipe.
Instance Method Summary collapse
-
#smb1_tree_connect(share) ⇒ RubySMB::SMB1::Tree
Sends a request to connect to a remote Tree and returns the SMB1::Tree.
-
#smb1_tree_from_response(share, response) ⇒ RubySMB::SMB1::Tree
Parses a Tree structure from a Tree Connect Response.
-
#smb2_tree_connect(share) ⇒ RubySMB::SMB2::Tree
Sends a request to connect to a remote Tree and returns the SMB2::Tree.
-
#smb2_tree_from_response(share, response) ⇒ RubySMB::SMB2::Tree
Parses a Tree structure from a Tree Connect Response.
Instance Method Details
#smb1_tree_connect(share) ⇒ RubySMB::SMB1::Tree
Sends a request to connect to a remote Tree and returns the SMB1::Tree
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/ruby_smb/client/tree_connect.rb', line 17 def smb1_tree_connect(share) request = RubySMB::SMB1::Packet::TreeConnectRequest.new request.smb_header.tid = 65535 request.data_block.path = share raw_response = send_recv(request) begin response = RubySMB::SMB1::Packet::TreeConnectResponse.read(raw_response) rescue EOFError response = RubySMB::SMB1::Packet::EmptyPacket.read(raw_response) end smb1_tree_from_response(share, response) end |
#smb1_tree_from_response(share, response) ⇒ RubySMB::SMB1::Tree
Parses a Tree structure from a Tree Connect Response
35 36 37 38 39 40 41 42 43 |
# File 'lib/ruby_smb/client/tree_connect.rb', line 35 def smb1_tree_from_response(share,response) unless response.smb_header.command == RubySMB::SMB1::Commands::SMB_COM_TREE_CONNECT raise RubySMB::Error::InvalidPacket, "Not a TreeConnectResponse" end unless response.status_code == WindowsError::NTStatus::STATUS_SUCCESS raise RubySMB::Error::UnexpectedStatusCode, response.status_code.name end RubySMB::SMB1::Tree.new(client: self, share: share, response: response) end |
#smb2_tree_connect(share) ⇒ RubySMB::SMB2::Tree
Sends a request to connect to a remote Tree and returns the SMB2::Tree
54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/ruby_smb/client/tree_connect.rb', line 54 def smb2_tree_connect(share) request = RubySMB::SMB2::Packet::TreeConnectRequest.new request.smb2_header.tree_id = 65535 request.encode_path(share) raw_response = send_recv(request) begin response = RubySMB::SMB2::Packet::TreeConnectResponse.read(raw_response) rescue EOFError response = RubySMB::SMB2::Packet::ErrorPacket.read(raw_response) end smb2_tree_from_response(share, response) end |
#smb2_tree_from_response(share, response) ⇒ RubySMB::SMB2::Tree
Parses a Tree structure from a Tree Connect Response
72 73 74 75 76 77 78 79 80 |
# File 'lib/ruby_smb/client/tree_connect.rb', line 72 def smb2_tree_from_response(share,response) unless response.smb2_header.command == RubySMB::SMB2::Commands::TREE_CONNECT raise RubySMB::Error::InvalidPacket, "Not a TreeConnectResponse" end unless response.status_code == WindowsError::NTStatus::STATUS_SUCCESS raise RubySMB::Error::UnexpectedStatusCode, response.status_code.name end RubySMB::SMB2::Tree.new(client: self, share: share, response: response) end |