forked from pool/python-smbprotocol
- Update to version 1.15.0
* Fix Impacket logoff session id check. * Update session id logic. * Add smbclient.liststreams to enumerate ADS streams. * Add some type annotations, most notably to smbclient.open_file * Add Python 3.13 support. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-smbprotocol?expand=0&rev=46
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
||||
3
python-smbprotocol-1.13.0.tar.gz
Normal file
3
python-smbprotocol-1.13.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0c16c1502d269369f7b45a29ed331fd7bbf6319022b13b5b7a11609b477b8f79
|
||||
size 190586
|
||||
3
python-smbprotocol-1.14.0.tar.gz
Normal file
3
python-smbprotocol-1.14.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:954bc9571238f244c490b01e4fbcdeef1a9580d41d84ec0916e0a84108cc14e7
|
||||
size 190856
|
||||
3
python-smbprotocol-1.15.0.tar.gz
Normal file
3
python-smbprotocol-1.15.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:af81861d2dc4698c49e3d965348c240f711a6d9dba4b0d1e15bd299ec2480d88
|
||||
size 191844
|
||||
341
python-smbprotocol.changes
Normal file
341
python-smbprotocol.changes
Normal file
@@ -0,0 +1,341 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 11 22:08:22 UTC 2024 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.15.0
|
||||
* Fix Impacket logoff session id check.
|
||||
* Update session id logic.
|
||||
* Add smbclient.liststreams to enumerate ADS streams.
|
||||
* Add some type annotations, most notably to smbclient.open_file
|
||||
* Add Python 3.13 support.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 10 19:02:11 UTC 2024 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.14.0
|
||||
* type information of SMBDirEntryInformation.last_write_time set
|
||||
to datetime.
|
||||
* Customizable receive timeout for SMB Connection
|
||||
* Dropped support for Python 3.7
|
||||
* SMBDirEntryInformation.last_write_time is now annotated as
|
||||
datetime.datetime. Previously, it was datetime.date.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 21 17:34:50 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 24 13:00:19 UTC 2023 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.12.0
|
||||
* Add 0xc000007f to mapping.
|
||||
* Added the DiskFull error and message for the NTSTATUS code
|
||||
0xC000007F.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 5 21:56:00 UTC 2023 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.11.0
|
||||
* Fix up pre authenticated session id lookups that were failing
|
||||
with Linux ksmbd.
|
||||
* Removes logging.NullHandler() being set in the root
|
||||
smbprotocol namespace.
|
||||
* Adds basic support for remote to local and vice versa file
|
||||
operations with smbclient.shutil.copytree.
|
||||
* Fixes DFS infinite recursion error when dealing with a file
|
||||
that does not exist on a DFS namespace.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 5 13:36:15 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
||||
|
||||
- Update to version 1.10.1
|
||||
* Raise the original BadNetworkName error if the server doesn't indicate it supports DFS or
|
||||
FSDriverRequired was raised trying to lookup the DFS information - #196
|
||||
* Fix pre auth session id tracking if the intermediate token messages return 0 as the session id
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 6 20:32:55 UTC 2022 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.10.0
|
||||
* Allow server side copy across different shares on the same
|
||||
server.
|
||||
* Improve DFS file opens.
|
||||
* Fix rename operations for a DFS path.
|
||||
* Fix negotiate request context padding.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 21 13:19:59 UTC 2022 - pgajdos@suse.com
|
||||
|
||||
- python-six is not required
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 7 16:09:45 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
||||
|
||||
- Update to version 1.9.0
|
||||
* Fix connection cache reuse for some DFS referral requests
|
||||
* Add smbclient.path to the smbclient import allowing import smbclient; smbclient.path.func()
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 18 21:49:52 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.8.3
|
||||
* Set additional_information field in SMB2SetInfoRequest to a
|
||||
flags field rather than a single enum as per protocol docs.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 2 20:52:01 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 27 19:19:23 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.8.1
|
||||
* Raises ObjectPathNotFound if a DFS referral is required but
|
||||
not referrals are available (#149)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 25 19:46:07 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 17 15:32:40 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 13 16:29:17 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 25 09:39:12 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 3 22:22:15 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 28 21:52:39 UTC 2021 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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
|
||||
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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 25 15:55:37 UTC 2020 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 25 12:38:01 UTC 2020 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 11 20:00:41 UTC 2019 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 1.0.1
|
||||
* Fix issue when reading a large file that exceeds 65KB and
|
||||
raises STATUS_END_OF_FILE.
|
||||
* Fix issue where listdir, scandir, walk would only enumerate a
|
||||
subset of entries in a directories with lots of sub files/
|
||||
folders
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 30 10:49:03 UTC 2019 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 19 18:50:13 UTC 2019 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Update to version 0.2.0
|
||||
* Fix issue where timeout was not being applied to the new
|
||||
connection
|
||||
* Fix various deprecated regex escape patterns
|
||||
* Simplified the fallback NTLM context object
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 3 01:57:40 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Use noun phrase in summary.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 29 14:10:26 UTC 2018 - mardnh@gmx.de
|
||||
|
||||
- Update to version 0.1.1
|
||||
* Fix initial negotiate message not setting connection timeout
|
||||
value.
|
||||
* Fix endless loop when running a compound message that failed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 6 17:42:06 UTC 2018 - mardnh@gmx.de
|
||||
|
||||
- Initial package, version 0.1.0
|
||||
78
python-smbprotocol.spec
Normal file
78
python-smbprotocol.spec
Normal file
@@ -0,0 +1,78 @@
|
||||
#
|
||||
# spec file for package python-smbprotocol
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: python-smbprotocol
|
||||
Version: 1.15.0
|
||||
Release: 0
|
||||
Summary: SMBv2/v3 client for Python 2 and 3
|
||||
License: MIT
|
||||
Group: Development/Languages/Python
|
||||
URL: https://github.com/jborean93/smbprotocol
|
||||
Source: https://github.com/jborean93/smbprotocol/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
BuildRequires: %{python_module cryptography >= 2.0}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module pyspnego}
|
||||
BuildRequires: %{python_module pytest-mock}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
Requires: python-cryptography >= 2.0
|
||||
Requires: python-pyspnego
|
||||
Suggests: python-gssapi >= 1.4.1
|
||||
BuildArch: noarch
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
This library implements the SMBv2 and SMBv3 protocol.
|
||||
|
||||
Features
|
||||
--------
|
||||
- Negotiation of the SMB 2.0.2 protocol to SMB 3.1.1 (Windows 10/Server
|
||||
2016)
|
||||
- Authentication with both NTLM and Kerberos
|
||||
- Message signing
|
||||
- Message encryption (SMB 3.x.x+)
|
||||
- Connect to a Tree/Share
|
||||
- Opening of files, pipes and directories
|
||||
- Set create contexts when opening files
|
||||
- Read and writing of files and pipes
|
||||
- Sending IOCTL commands
|
||||
- Sending of multiple messages in one packet (compounding)
|
||||
|
||||
%prep
|
||||
%setup -q -n smbprotocol-%{version}
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
|
||||
%check
|
||||
%pytest
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
%doc CHANGELOG.md README.md
|
||||
%{python_sitelib}/smbclient
|
||||
%{python_sitelib}/smbprotocol
|
||||
%{python_sitelib}/smbprotocol-%{version}*-info
|
||||
|
||||
%changelog
|
||||
Reference in New Issue
Block a user