miketeo/pysmb
pysmb is an experimental SMB/CIFS library written in Python. It implements the client-side SMB/CIFS protocol (SMB1 and SMB2) which allows your Python application to access and transfer files to/from SMB/CIFS shared folders like your Windows file sharing and Samba folders.
Add ```setLastWriteTime()``` method for assigning the last modification time of a file/folder (#233)
Fix type hinting issues on Python versions prior to 3.9. (#230)
Add support for NetBIOS packet polling on Linux (#229)
📋 Changes
- Fix out-of-memory issues during large file operations (due to accumulation of messages in message_history).
📋 Changes
- Fix a bug where the OperationFailure exceptions do not contain the error messages that were thrown when the exception occurred (#212)
- Update test cases to replace SafeConfigParser with ConfigParser (#219)
- Allow callers to override default tqdm kwargs (#222)
Users have reported issues with installing 1.2.9 from PyPI. 1.2.9.1 was released to fix this issue.
📋 Changes
- Add support for tqdm progress display (#205)
- Fix bug where timeout parameter was not passed to socket.createConnection() (#202)
📋 Changes
- Fix issue with listPath based on recommendation in #195
- Fix embedded MD4 algorithm (#198)
- Add SMB UTF-16 surrogate exception workaround policy (#186, #187)
📋 Changes
- Fix compatibility issues on file retrievals with Likewise servers (#177)
- Improve SMBConnection's connect() method to remove the need to provide sock_family
Fix bug in SMB1 store file implmentation which generates SMB_COM_WRITE_ANDX packets larger than the allowed max buffer size (#175)
📋 Changes
- Fix bug in filename encoding which leads to failure for file retrieval and upload operations (#170 #171).
- Improve resetFileAttributes() method in SMBConnection class to allow the new attribute to be specified in the reset operation (#172).
Remove dependency on pycrypto (#167)
📋 Changes
- Fix bug in session key generation during session negotiation (#166)
- Fix bug in SMB message signing which leads to operation failures with Samba services.
📋 Changes
- Improve SMB URL handlers to support specifying server's machine name and IP address. (#162)
- Improvements to documentation on SMB URLs (#160)
Fix bug in deleteFiles() method which can fail for certain search patterns.
Improve deleteFiles() API to support deletion of child folders that match the search pattern.
📋 Changes
- Fix unhandled exception for short NBNS queries [#149]
- Fix wildcard file deletion with servers on SMB2 protocol [#33]
SharedFile instances returned from the listPath() method now has a new file_id attribute which represents the file reference number given by the SMB server. [#147]
Remove support for SMB-2.1 dialect as it seems to have issues with Windows 2008 R2.
📋 Changes
- Prevents OperationError from being raised when listPath() operation does not return any matching file results.
- SMBConnection is now a context manager #122.
📋 Changes
- Fix buggy support for search parameter in listPath() method. Add SMB_FILE_ATTRIBUTE_INCL_NORMAL bit constant to include 'normal' files with other file types in the returned result. From now on, pysmb defines a 'normal' file as a file entry that is not read-only, not hidden, not system, not archive and not a directory; it ignores other attributes like compression, indexed, sparse, temporary and encryption. listPath() method will now include 'normal' files using the default search parameter.
- Add isNormal property to SharedFile class to support test if the file is a 'normal' file (according to pysmb definition of 'normal' file).
📋 Changes
- Improve listPath implementation for SMB1
- Support for STATUS_PENDING responses across all SMB2 operations.
📋 Changes
- Fix bug in listShares() method which fails when the remote server has many shares. (Contributed by @carlosefr)
- Improve echo() method to test and fail if the provided data to echo is not a bytes object. (Contributed by @carlosefr)
- Fix bug in listPath() method where the path to query is not properly terminated. (Contributed by @Yepoleb)
Fix bug in getAttributes() method which should return only the filename instead of the entire path for the filename property for the return result.
Fix bug where timestamp values for SMB1 getAttributes() response are not converted properly from FILETIME to epoch time values
📋 Changes
- Add getSecurity() method to support security descriptors query via SMB2. (Contributed by @koniiiik)
- Improve retrieveFile() and retrieveFileFromOffset() methods to allow file
- Silently discards NMB SESSION_KEEPALIVE packets instead of raising warnings.
- SMB sessionID will be sent in ECHO requests to conform to SMB2 specs. (Contributed by @divad)
- Fix type errors for MD4 functions in python3. (Contributed by @viatoriche)
Ignore STATUS_PENDING during delete and file store operations which could cause such operations to abort.
📋 Changes
- Rollback fixes to NTLMv2 response algorithm in pysmb 1.1.17. The fixes
- Add missing errno imports in SMBConnection.py
- Fix UnboundLocalError raised when using type() in SMBConnection.py
📋 Changes
- Fix crashes in directory listing with keyerror 'support_dfs'
- Fix bugs in NTLMv2 response algorithm.
- Fix bugs where client domain is not included as part of the session negotiation.
📋 Changes
- Fix typo errors in authentication error messages
- Improve share listings on SMB2 protocol by ignoring interim STATUS_PENDING responses.
