Skip to content

Releases: jborean93/smbprotocol

v1.8.1

27 Oct 11:00
Compare
Choose a tag to compare

1.8.1 - 2021-10-27

  • Raises ObjectPathNotFound if a DFS referral is required but not referrals are available (#149)

v1.8.0

20 Oct 19:46
88a97a0
Compare
Choose a tag to compare

1.8.0 - 2021-10-21

  • Added support for 256bit keyed encryption ciphers
  • Added support for signing with AES GCM
  • Now sends the SMB2_NETNAME_NEGOTIATE_CONTEXT_ID with the negotiate request
  • Adds the Python requirement of pykrb5 for Kerberos support on non-Windows
  • Fix unpacking security descriptor ACEs with extra data on the end - #143
  • Set index_number in FileInternalInformation to be an unsigned integer to match the other structures
  • Clear out expired DFS referrals to avoid memory leaks and stale DFS information - #136

v1.7.0

22 Sep 01:36
1f1b52a
Compare
Choose a tag to compare

1.7.0 - 2021-09-22

  • Improve connection health checks to reduce the occurances of an infinite deadlock
  • Added more exception error classes
  • Added create_action to the Open object that describes how the file was opened
  • Added follow_symlinks option to SMBDirEntry.from_path to control whether the entry is based on the path or the link target (if there is one)

v1.6.2

15 Aug 20:47
4ae1df6
Compare
Choose a tag to compare

1.6.2 - 2021-08-16

  • Fix up cached credential logic when setting domain_controller in the initial config singleton

v1.6.1

28 Jul 19:33
6a137fd
Compare
Choose a tag to compare

1.6.1 - 2021-07-29

  • Remove print() statement that was used during testing

v1.6.0

28 Jul 02:43
2471c45
Compare
Choose a tag to compare

1.6.0 - 2021-07-28

  • Dropped support for Python 2.7 and 3.5
  • Add performance improvement on reads with large files
  • Added the require_signing kwarg to smbclient.register_session() to allow the caller to control whether signing is required on the connection or not
  • Fix OverflowError when handling FILETIME values beyond the year 9999 - caps the value to 9999-12-31 due to a Python limitation
  • Fix up credit charge calculation which causes a STATUS_INVALID_PARAMETER response for certain read/write lengths
  • Ensure responses with a failure are cleaned up from the outstanding request table to avoid memory leaks

1.5.1 - 2021-05-08

07 May 23:01
e4c8b6a
Compare
Choose a tag to compare
  • Unified DFS path handling when using any API that uses a transaction to open the file
    • This includes smbclient.rename and smbclient.replace
  • Fixed up smbclient.rename to work with directories
  • smbclient.scandir will continue to use the connection cache when getting stat information of a dir entry
  • smbclient.shutil.rmtree will continue to use the connection cache when removing child entries

v1.5.0

25 Mar 05:29
9a141ec
Compare
Choose a tag to compare

1.5.0 - 2021-03-25

  • Added smbprotocol.exceptions.SMBConnectionClosed that is raised when trying to send or receive data on a connection that has been closed
  • Added smbprotocol.exceptions.WrongPassword that is raised when some servers indicate the password is not correct or the account is locked out
  • Do not attempt to reuse any cached connections that have been closed in smbclient
  • Added a lock when writing to the socket, only 1 thread can write a message at a single point in time
  • Revamped the SMB receiver code to simplify the logic and make it more durable
    • Removed the TCP recv thread for each connection, now each connection uses just 1 thread instead of 2
    • Be more defensive when reading data from a socket to ensure we get all the data we require
    • Handled server side FIN packets that close the connection unexpectedly, any requests waiting for a response will raise SMBConnectionClosed

v1.4.0

01 Feb 22:56
b72b4c7
Compare
Choose a tag to compare

1.4.0 - 2021-02-02

  • Fixed up secure negotiation logic when connecting to older SMB dialects
  • Will attempt to perform secure negotiation even on older dialects that may not implement it properly
  • Added ClientConfig option require_secure_negotiate to globally turn off secure negotiation if the client wishes
  • Fix explicit ntlm or kerberos authentication when the server response with the initial SPNEGO mech list token

v1.3.0

23 Jan 02:05
92ed80b
Compare
Choose a tag to compare

1.3.0 - 2021-01-23

  • Changed initial credit request from 256 to 64 when creating the SMB session
    • This is done to avoid overloading the SMB server
    • If smbclient requires more credits to perform an operation it will request it automatically
  • Improve credit handling when reading and writing large amounts of data to reduce the number of requests being made
  • Fixed up write() in smbclient.open_file() to be able to write bytes greater than the max_write_size
  • Fixed issue when receiving an unknown NtStatus error code from the server
  • Added PipeBusy exception for STATUS_PIPE_NOT_AVAILABLE 0xC00000AD error responses
  • Fix credit granting calculation when receiving a compound response
    • Original logic granted len(responses) - 1 credits than what the server actually given causing errors when the client ran out of credits without it knowing
  • Added auth_protocol to Session, ClientConfig, and register_session() to control what authentication protocol is used
    • This can be negotiate (default), kerberos, or ntlm where negotiate selects kerberos or ntlm depending on what's available