- update to 1.13.0:
* Added the property `smb_info` on `SMBDirEntry` which returns
a named tuple `SMBDirEntryInformation` containing metadata
already retrieved in the `scandir` operation.
* This avoid having to call `stat()` to retrieve data like the
file attributes or datetime fields that is already available
* Ensure `DateTimeField` values are set to `UTC` timezones as
FILETIME values are in UTC
* Stop using `datetime.datetime.utcfromtimestamp()` as it has
been deprecated
* Added default timeout for disconnect operations for 60
seconds to ensure the process doesn't hang forever when
closing a broken connection
* `smbprotocol.connection.Connection.disconnect()` now waits
(with a timeout) for the message processing threads to be
stopped before returning.
* Do not set the SMB SessionId and TreeId in the headers to
`0xFFFFFFFF` for related compound requests
+ Ensures the source file for `shutil.copyfile` is opened
with `share_access="r"` for better compatibility with files
already opened by something else
+ Remove endless authentication loop when the context is
complete and no more input messages are needed
- Update to version 1.10.1
- python-six is not required
- Update to version 1.9.0
OBS-URL: https://build.opensuse.org/request/show/1160444
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-smbprotocol?expand=0&rev=21
* Added the property `smb_info` on `SMBDirEntry` which returns
a named tuple `SMBDirEntryInformation` containing metadata
already retrieved in the `scandir` operation.
* This avoid having to call `stat()` to retrieve data like the
file attributes or datetime fields that is already available
* Ensure `DateTimeField` values are set to `UTC` timezones as
FILETIME values are in UTC
* Stop using `datetime.datetime.utcfromtimestamp()` as it has
been deprecated
* Added default timeout for disconnect operations for 60
seconds to ensure the process doesn't hang forever when
closing a broken connection
* `smbprotocol.connection.Connection.disconnect()` now waits
(with a timeout) for the message processing threads to be
stopped before returning.
* Do not set the SMB SessionId and TreeId in the headers to
`0xFFFFFFFF` for related compound requests
+ Ensures the source file for `shutil.copyfile` is opened
with `share_access="r"` for better compatibility with files
already opened by something else
+ Remove endless authentication loop when the context is
complete and no more input messages are needed
- Update to version 1.10.1
- python-six is not required
- Update to version 1.9.0
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=42
- Update to version 1.8.2
* Add missing FileAttributes enum values
* Set messages with FileAttributes to be non-strict allowing
unknown values in the future to be parsed without an error
- Update to version 1.8.1
* Raises ObjectPathNotFound if a DFS referral is required but
not referrals are available (#149)
- Update to version 1.8.0
* 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
* 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
- Update to version 1.7.0
* 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.
OBS-URL: https://build.opensuse.org/request/show/928862
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=25
- Update to version 1.6.2
* Fix up cached credential logic when setting domain_controller
in the initial config singleton
- Update to version 1.6.1
* Remove print() statement that was used during testing
- Update to version 1.6.0
* 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.
OBS-URL: https://build.opensuse.org/request/show/912725
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=24
- Update to version 1.5.1
* 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.
OBS-URL: https://build.opensuse.org/request/show/892928
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=22
- Update to version 1.5.0
* 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.
OBS-URL: https://build.opensuse.org/request/show/881292
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=20
- Update to version 1.4.0
* 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.
- Update to version 1.3.0
* 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
OBS-URL: https://build.opensuse.org/request/show/869043
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=18
- Update to version 1.2.0
* Added experimental support for DFS shares when using smbclient
function.
* Added smbclient.ClientConfig() to set global default options
on new connections.
* Moved the SMB Header structures to smbprotocol.header.
* Added null_terminated option for a TextField value.
* Fix broken pipe errors that occur on long running connections
by sending a echo request for each connection session every
10 minutes.
OBS-URL: https://build.opensuse.org/request/show/843920
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=16
- Update to version 1.1.0
* Speed up logging statements for large messages like a read and
write message.
* Changed authentication dep to pyspnego that handles all the
authentication work.
* Fixed up authentication against hosts that don't present the
initial GSSAPI token like Azure File Storage.
* Added specific exception types for every 'NtStatus' value to
make it easier to catch only specific exceptions.
* Added the following exceptions to the list of known exception
codes:
* 'STATUS_NETWORK_NAME_DELETED'
* 'STATUS_NOT_FOUND'
* 'STATUS_PATH_NOT_COVERED'
* 'STATUS_DFS_UNAVAILABLE'
* 'STATUS_SERVER_UNAVAILABLE'
* Fix session key generation when creating a new session from
an existing connection object.
OBS-URL: https://build.opensuse.org/request/show/829557
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=14
- Update to version 1.0.0
* Dropped support for Python 2.6 and Python 3.4
* Added the smbclient package that provides a higher level API
for interactive with SMB servers
* Deprecated smbprotocol.query_info in favour of
smbprotocol.file_info, query_info will be removed in the next
major release
* Add automatic symlink resolver when a symlink is in the path
being opened
* Fix issue when trying to connect to host with IPv6 address
* Fix response parsing for SMB2 Create Response Lease V1 and V2
* Added the ability to set the Oplock level when opening a file
* Revamped the socket listener and message processor to run in a
separate thread for faster message resolving
* Added the FileSystemWatcher in change_notify.py to provider a
way to watch for changes on the SMB filesystem
* Added the .cancel() method onto a Request to cancel an SMB
request on the server
OBS-URL: https://build.opensuse.org/request/show/752660
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=10