samba.git
5 years agos4/selftest: enable samba.tests.samba_tool.user for py3
Noel Power [Thu, 3 May 2018 18:30:06 +0000 (19:30 +0100)]
s4/selftest: enable samba.tests.samba_tool.user for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: Adjust teardown so second run of tests succeeds
Noel Power [Tue, 14 Aug 2018 10:43:44 +0000 (11:43 +0100)]
python/samba/tests: Adjust teardown so second run of tests succeeds

A second run of this test (e.g. with --extra-python) or even
an manual re-run and the cache is still there.
use of '--cache-ldb-initialize'  will fail and so with the test
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: PY2/PY3 required changes for samba.tests.samba_tool.user
Noel Power [Tue, 14 Aug 2018 10:25:35 +0000 (11:25 +0100)]
python/samba/tests: PY2/PY3 required changes for samba.tests.samba_tool.user

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.dcerpc.raw_protocol for py3
Noel Power [Tue, 1 May 2018 11:51:41 +0000 (12:51 +0100)]
s4/selftest: enable samba.tests.dcerpc.raw_protocol for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/test/dcerpc: Py3 port of samba.tests.dcerpc.raw_protocol
Noel Power [Tue, 1 May 2018 11:24:47 +0000 (12:24 +0100)]
python/samba/test/dcerpc: Py3 port of samba.tests.dcerpc.raw_protocol

Port code to allow this test run with either py2 or py3
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: ensure byte content (not strings)
Noel Power [Mon, 30 Apr 2018 17:31:36 +0000 (18:31 +0100)]
python/samba/tests: ensure byte content (not strings)

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.dcerpc.dnsserver(ad_dc) for python3
Noel Power [Mon, 30 Apr 2018 15:35:59 +0000 (16:35 +0100)]
s4/selftest: enable samba.tests.dcerpc.dnsserver(ad_dc) for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.dcerpc.dnsserver for python3
Noel Power [Mon, 30 Apr 2018 15:20:05 +0000 (16:20 +0100)]
s4/selftest: enable samba.tests.dcerpc.dnsserver for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agoselftest: Update known fail with py3 variant of samba.tests.dcerpc.dnsserver
Noel Power [Tue, 28 Aug 2018 11:05:14 +0000 (12:05 +0100)]
selftest: Update known fail with py3 variant of samba.tests.dcerpc.dnsserver

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.dnscmd for py3
Noel Power [Mon, 30 Apr 2018 15:06:12 +0000 (16:06 +0100)]
s4/selftest: enable samba.tests.samba_tool.dnscmd for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: Enable samba.tests.samba_tool.sites for py3
Noel Power [Mon, 30 Apr 2018 14:47:05 +0000 (15:47 +0100)]
s4/selftest: Enable samba.tests.samba_tool.sites for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.help for py3
Noel Power [Fri, 27 Apr 2018 14:49:40 +0000 (15:49 +0100)]
s4/selftest: enable samba.tests.samba_tool.help for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: Py2/Py2 enable samba.tests.samba_tool.help to run
Noel Power [Mon, 13 Aug 2018 16:25:37 +0000 (17:25 +0100)]
python/samba/tests: Py2/Py2 enable samba.tests.samba_tool.help to run

Ensure bytes output is converted to text type for PY3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: Enable samba.tests.samba_tool.provision_password_check for py3
Noel Power [Fri, 27 Apr 2018 14:13:49 +0000 (15:13 +0100)]
s4/selftest: Enable samba.tests.samba_tool.provision_password_check for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/netcmd: Fix password usage for py2/py3 compatability
Noel Power [Fri, 27 Apr 2018 14:11:54 +0000 (15:11 +0100)]
python/samba/netcmd: Fix password usage for py2/py3 compatability

getpass returns str (e.g. bytes) in python2 and str (unicode) in
py3. Adapt code to so we don't do illegal things (like try and decode)
a string in python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.ntacl for Py3
Noel Power [Fri, 27 Apr 2018 12:05:15 +0000 (13:05 +0100)]
s4/selftest: enable samba.tests.samba_tool.ntacl for Py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/provision: remove use of str() func for binary data
Noel Power [Fri, 27 Apr 2018 12:02:50 +0000 (13:02 +0100)]
python/samba/provision: remove use of str() func for binary data

Python 2 code works with str(policy["nTSecurityDescriptor"]) however
this cannot work with Python 3. One could argue even the str method
doesn't make sense at all (returning a string) for data.

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/netcmd: changes for samab.tests.samba_tool.computer
Noel Power [Thu, 26 Apr 2018 17:22:21 +0000 (18:22 +0100)]
python/samba/netcmd: changes for samab.tests.samba_tool.computer

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.ou for py3
Noel Power [Thu, 26 Apr 2018 14:47:19 +0000 (15:47 +0100)]
s4/selftest: enable samba.tests.samba_tool.ou for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.group for py3
Noel Power [Tue, 24 Apr 2018 18:08:27 +0000 (19:08 +0100)]
s4/selftest: enable samba.tests.group for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/sambe/tests/samba_tool: PY3 port for tests.samba_tool.group
Noel Power [Sat, 11 Aug 2018 13:25:26 +0000 (14:25 +0100)]
python/sambe/tests/samba_tool: PY3 port for tests.samba_tool.group

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.user_check_password_script py3
Noel Power [Tue, 24 Apr 2018 15:55:49 +0000 (16:55 +0100)]
s4/selftest: enable samba.tests.samba_tool.user_check_password_script py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.user_wdigest for python3
Noel Power [Mon, 23 Apr 2018 17:22:08 +0000 (18:22 +0100)]
s4/selftest: enable samba.tests.samba_tool.user_wdigest for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: PY3 port for samba.tests.samba_tool.user_wdigest test
Noel Power [Sat, 11 Aug 2018 13:02:25 +0000 (14:02 +0100)]
python/samba: PY3 port for samba.tests.samba_tool.user_wdigest test

In addition to the attributes that caused some issues specifically
with the test some other ldb.bytes objects (those seen to be
used as strings) have been adjusted (with str()) to ensure they should
work correct in PY3.

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: Add some helper functions to encode/decode strings
Noel Power [Sat, 11 Aug 2018 12:54:51 +0000 (13:54 +0100)]
python/samba: Add some helper functions to encode/decode strings

Sometimes in PY3 we have variables whose content can be 'bytes' or
'str' and we can't be sure which. Generally this is because the
code variable to be used can be initialised (or reassigned) a value
from different api(s) or functions depending on complex conditions or
logic. Or another common case is in PY2 the variable is 'type <str>'
and in PY3 it is 'class <str>' but the function to use e.g. b64encode
requires 'bytes' in PY3. In such cases in PY3 it would be nice to avoid
excessive testing in the client code, in PY2 we would like to ensure the
code runs unchanged. In otherwords we wish to avoid in PY2 unnecessary
decode() calls which convert otherwise 'str' types to 'unicode'.
Mixing 'str' and 'unicode' can cause strange and unexpected problems,
sometimes we can't avoid this but it we should avoid if we can.

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.samba_tool.processes for PY3
Noel Power [Fri, 10 Aug 2018 20:23:35 +0000 (21:23 +0100)]
s4/selftest: enable samba.tests.samba_tool.processes for PY3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos3/selftest: Enable samba.tests.samba_tool.fsmo for python3
Noel Power [Mon, 23 Apr 2018 11:21:53 +0000 (12:21 +0100)]
s3/selftest: Enable samba.tests.samba_tool.fsmo for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: Port fsmo test to python3
Noel Power [Fri, 10 Aug 2018 19:29:46 +0000 (20:29 +0100)]
python/samba/tests: Port fsmo test to python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agoenable samba_tool.visualize_drs samba_tool.visualize_drs for py3
Noel Power [Fri, 20 Apr 2018 16:24:44 +0000 (17:24 +0100)]
enable samba_tool.visualize_drs samba_tool.visualize_drs for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: changes needed for samba.tests.samba_tool.visualize PY2/PY3
Noel Power [Fri, 10 Aug 2018 17:07:11 +0000 (18:07 +0100)]
python/samba: changes needed for samba.tests.samba_tool.visualize PY2/PY3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: Enable samba.tests.samba_tool.join for py3
Noel Power [Tue, 17 Apr 2018 15:48:56 +0000 (16:48 +0100)]
s4/selftest: Enable samba.tests.samba_tool.join for py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: changes to make samba.tests.samba_tool.join run under py3
Noel Power [Tue, 17 Apr 2018 15:48:03 +0000 (16:48 +0100)]
python/samba: changes to make samba.tests.samba_tool.join run under py3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/compat: use cStringIO instead of StringIO in compat.py
Noel Power [Fri, 10 Aug 2018 18:54:46 +0000 (19:54 +0100)]
python/compat: use cStringIO instead of StringIO in compat.py

Using cStringIO for py2 seems to incur alot less problems and less changes
to the py2/py3 code then using StringIO.StringIO

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: Use io.StringIO for py3 and StringIO.StrinIO for py2
Noel Power [Fri, 4 May 2018 10:49:23 +0000 (11:49 +0100)]
python/samba/tests: Use io.StringIO for py3 and StringIO.StrinIO for py2

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest/tests: enable samba.tests.samba_tool.timecmd for python3
Noel Power [Tue, 17 Apr 2018 12:53:57 +0000 (13:53 +0100)]
s4/selftest/tests: enable samba.tests.samba_tool.timecmd for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.dcerpc.unix for python3
Noel Power [Mon, 16 Apr 2018 17:58:01 +0000 (18:58 +0100)]
s4/selftest: enable samba.tests.dcerpc.unix for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba/tests: port samba.tests.unix for py3
Noel Power [Tue, 17 Apr 2018 10:56:40 +0000 (11:56 +0100)]
python/samba/tests: port samba.tests.unix for py3

L for long literal is no longer valid in Python3, also
long keyword has been removed. int and long have been unified
in python3. A duplicated test has been removed (for long and
int) only the int test remains now.
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agos4/selftest: enable samba.tests.dsdb_lock for python3
Noel Power [Tue, 10 Apr 2018 15:03:37 +0000 (16:03 +0100)]
s4/selftest: enable samba.tests.dsdb_lock for python3

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: port changes to allow samba.tests.dsdb_lock to work with PY3/PY2
Noel Power [Wed, 8 Aug 2018 16:03:48 +0000 (17:03 +0100)]
python/samba: port changes to allow samba.tests.dsdb_lock to work with PY3/PY2

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: open files in binary mode as appropriate
Noel Power [Wed, 8 Aug 2018 15:56:33 +0000 (16:56 +0100)]
python/samba: open files in binary mode as appropriate

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: port open to io.open for PY2/PY3 compat
Noel Power [Wed, 8 Aug 2018 15:52:35 +0000 (16:52 +0100)]
python/samba: port open to io.open for PY2/PY3 compat

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agopython/samba: Fix py2/3 relative module import issue
Noel Power [Mon, 30 Apr 2018 14:46:04 +0000 (15:46 +0100)]
python/samba: Fix py2/3 relative module import issue

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
5 years agoselftest: Remove excption for NSS_WRAPPER_HOSTS and RESOLV_WRAPPER_HOSTS
Andrew Bartlett [Fri, 31 Aug 2018 08:26:19 +0000 (20:26 +1200)]
selftest: Remove excption for NSS_WRAPPER_HOSTS and RESOLV_WRAPPER_HOSTS

These must be set correctly for each command in provision also.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoselftest: Set RESOLV_WRAPPER_CONF/RESOLV_WRAPPER_HOSTS when running dcpromo
Andrew Bartlett [Sat, 1 Sep 2018 11:12:44 +0000 (23:12 +1200)]
selftest: Set RESOLV_WRAPPER_CONF/RESOLV_WRAPPER_HOSTS when running dcpromo

Otherwise this relies on the order that tests run to cause the environment variable
to be left behind.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoselftest: Set NSS_WRAPPER_HOSTS when creating the trusts
Andrew Bartlett [Fri, 31 Aug 2018 08:22:54 +0000 (20:22 +1200)]
selftest: Set NSS_WRAPPER_HOSTS when creating the trusts

Otherwise this relies on the order that tests run to cause the environment variable
to be left behind.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agos3:smbd: add a comment stating that file_close_user() is redundant for SMB2
Ralph Boehme [Thu, 30 Aug 2018 13:57:33 +0000 (15:57 +0200)]
s3:smbd: add a comment stating that file_close_user() is redundant for SMB2

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sat Sep  1 01:26:35 CEST 2018 on sn-devel-144

5 years agos3:smbd: let session logoff close files and tcons before deleting the session
Ralph Boehme [Wed, 29 Aug 2018 15:19:29 +0000 (17:19 +0200)]
s3:smbd: let session logoff close files and tcons before deleting the session

This avoids a race in durable handle reconnects if the reconnect comes
in while the old session is still in the tear-down phase.

The new session is supposed to rendezvous with and wait for destruction
of the old session, which is internally implemented with
dbwrap_watch_send() on the old session record.

If the old session deletes the session record before calling
file_close_user() which marks all file handles as disconnected, the
durable handle reconnect in the new session will fail as the records are
not yet marked as disconnected which is a prerequisite.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agos3:smbd: reorder tcon global record deletion and closing files of a tcon
Ralph Boehme [Thu, 30 Aug 2018 13:50:02 +0000 (15:50 +0200)]
s3:smbd: reorder tcon global record deletion and closing files of a tcon

As such, this doesn't change overall behaviour, but in case we ever add
semantics acting on tcon record changes via an API like
dbwrap_watch_send(), this will make a difference as it enforces
ordering.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agoselftest: add a durable handle test with delayed disconnect
Ralph Boehme [Thu, 30 Aug 2018 17:15:19 +0000 (19:15 +0200)]
selftest: add a durable handle test with delayed disconnect

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agos4:selftest: reformat smb2_s3only list
Ralph Boehme [Fri, 31 Aug 2018 06:28:46 +0000 (08:28 +0200)]
s4:selftest: reformat smb2_s3only list

No change besides reformatting the list to one entry per line.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agovfs_delay_inject: adding delay to VFS calls
Ralph Boehme [Thu, 30 Aug 2018 15:27:08 +0000 (17:27 +0200)]
vfs_delay_inject: adding delay to VFS calls

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agolib: Fix the build on FreeBSD
Volker Lendecke [Fri, 31 Aug 2018 04:25:30 +0000 (06:25 +0200)]
lib: Fix the build on FreeBSD

FreeBSD needs to explicitly #include <unistd.h> for geteuid() and close()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Fri Aug 31 18:42:31 CEST 2018 on sn-devel-144

5 years agotorture: Add test for directory_create_or_exist
Christof Schmitt [Wed, 29 Aug 2018 19:07:42 +0000 (12:07 -0700)]
torture: Add test for directory_create_or_exist

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Christof Schmitt <cs@samba.org>
Autobuild-Date(master): Thu Aug 30 21:19:31 CEST 2018 on sn-devel-144

5 years agolib: Fix lstat check in directory_create_or_exist
Christof Schmitt [Wed, 29 Aug 2018 19:04:29 +0000 (12:04 -0700)]
lib: Fix lstat check in directory_create_or_exist

The lstat check in directory_create_or_exist did not verify whether an
existing object is actually a directory. Also move the check to only
apply when mkdir returns EEXIST; this fixes CID 241930 Time of check
time of use.

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
5 years agoctdb-common: Clean up comments in TCP packet parsing
Martin Schwenke [Fri, 17 Aug 2018 11:33:39 +0000 (21:33 +1000)]
ctdb-common: Clean up comments in TCP packet parsing

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Thu Aug 30 07:50:04 CEST 2018 on sn-devel-144

5 years agoctdb-common: Check the version field in IPv6 packets
Martin Schwenke [Tue, 28 Aug 2018 06:10:21 +0000 (16:10 +1000)]
ctdb-common: Check the version field in IPv6 packets

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Improve TCP packet size and offset calculations
Martin Schwenke [Fri, 17 Aug 2018 11:26:04 +0000 (21:26 +1000)]
ctdb-common: Improve TCP packet size and offset calculations

The IPv4 check for short packets was strange.  It appeared to ensure
that the capture included everything up to and including the window
size.  The checksum field immediately follows the window size field,
so just ensure that the packet is large enough to contain everything
up to the start of the checksum.

Add a similar check for IPv6 packets.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-tests: Extend TCP packet test to also do packet extraction
Martin Schwenke [Fri, 17 Aug 2018 06:02:50 +0000 (16:02 +1000)]
ctdb-tests: Extend TCP packet test to also do packet extraction

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Factor out TCP packet parsing code
Martin Schwenke [Fri, 17 Aug 2018 05:00:31 +0000 (15:00 +1000)]
ctdb-common: Factor out TCP packet parsing code

This can be tested separately.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Clean up types/declarations in TCP socket reading
Martin Schwenke [Fri, 17 Aug 2018 04:35:07 +0000 (14:35 +1000)]
ctdb-common: Clean up types/declarations in TCP socket reading

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Fix error handling when parsing TCP packets
Martin Schwenke [Fri, 17 Aug 2018 04:14:12 +0000 (14:14 +1000)]
ctdb-common: Fix error handling when parsing TCP packets

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Fix a bug in non-Linux (PCAP) TCP packet capturing
Martin Schwenke [Fri, 17 Aug 2018 05:36:41 +0000 (15:36 +1000)]
ctdb-common: Fix a bug in non-Linux (PCAP) TCP packet capturing

Captured packets include a link-layer header, which is considered in
the Linux code but not the PCAP code.  Also, the actual captured
length is in caplen, not len.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Don't modify a const argument
Martin Schwenke [Fri, 17 Aug 2018 03:46:50 +0000 (13:46 +1000)]
ctdb-common: Don't modify a const argument

The current code might be slightly more efficient but
intentionally (although temporarily) modifying a const argument just
seems wrong.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Avoid magic numbers when building TCP packets
Martin Schwenke [Fri, 17 Aug 2018 02:30:19 +0000 (12:30 +1000)]
ctdb-common: Avoid magic numbers when building TCP packets

Most packet sizes and offsets are multiples of 32-bit words.  The IPv6
payload length is in octets.  The IPv6 version is the top 4 bits of
the relevant field.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-tests: Add tests for TCP packet marshalling
Martin Schwenke [Thu, 16 Aug 2018 06:47:21 +0000 (16:47 +1000)]
ctdb-tests: Add tests for TCP packet marshalling

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Factor out TCP packet marshalling code
Martin Schwenke [Thu, 16 Aug 2018 01:10:40 +0000 (11:10 +1000)]
ctdb-common: Factor out TCP packet marshalling code

This can be tested separately.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Avoid single line multi-assignment
Martin Schwenke [Tue, 14 Aug 2018 03:49:25 +0000 (13:49 +1000)]
ctdb-common: Avoid single line multi-assignment

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Set version more obviously in IPv6 NA packet
Martin Schwenke [Wed, 29 Aug 2018 05:48:21 +0000 (15:48 +1000)]
ctdb-common: Set version more obviously in IPv6 NA packet

Version is the top 4 bits of this field.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Clarify offset and packet length calculations
Martin Schwenke [Fri, 10 Aug 2018 08:38:23 +0000 (18:38 +1000)]
ctdb-common: Clarify offset and packet length calculations

Calculate each offset from the beginning of the buffer and explicitly
use the sizes of structures.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Use struct ether_arp to avoid manual offset calculations
Martin Schwenke [Tue, 14 Aug 2018 02:36:25 +0000 (12:36 +1000)]
ctdb-common: Use struct ether_arp to avoid manual offset calculations

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Be more careful with packet sizes
Martin Schwenke [Tue, 14 Aug 2018 01:25:02 +0000 (11:25 +1000)]
ctdb-common: Be more careful with packet sizes

Ethernet packets must be at least 64 bytes.

For ARP the packet size was limited to 64 bytes.  This is probably OK
but the code might as well be a little more general.

For IPv6 NA there was no guarantee that the packet is at least 64
bytes.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-tests: Add tests for ARP and IPv6 NA marshalling
Martin Schwenke [Thu, 16 Aug 2018 05:15:55 +0000 (15:15 +1000)]
ctdb-tests: Add tests for ARP and IPv6 NA marshalling

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Separate ARP and IPv6 NA marshalling code
Martin Schwenke [Mon, 13 Aug 2018 11:39:12 +0000 (21:39 +1000)]
ctdb-common: Separate ARP and IPv6 NA marshalling code

This can be tested separately.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Fix error handling when sending ARPs
Martin Schwenke [Fri, 10 Aug 2018 07:23:56 +0000 (17:23 +1000)]
ctdb-common: Fix error handling when sending ARPs

There are numerous places in the code where errno can be lost causing
the wrong error to be printed by a caller.  Change ctdb_sys_send_arp()
to always return a useful errno on error instead of returning -1 and
sometimes having errno set correctly.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Factor out common ARP code
Martin Schwenke [Fri, 10 Aug 2018 07:04:32 +0000 (17:04 +1000)]
ctdb-common: Factor out common ARP code

Finding the interface and the MAC address are obvious.  Might as well
set up the common parts of the destination address structure.

Continue to open the socket and find the MAC address first.  This
might seem odd because marshalling and other subsequent steps may
fail.  However, in the future this code might be optimised to open a
single socket to send ARPs for a list of addresses on each interface,
so don't change the logic.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Initialise structures when declared
Martin Schwenke [Fri, 10 Aug 2018 06:14:40 +0000 (16:14 +1000)]
ctdb-common: Initialise structures when declared

Instead of using ZERO_STRUCT().

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-tests: Add basic test to sanity check types in socket marshalling
Martin Schwenke [Sat, 11 Aug 2018 08:32:17 +0000 (18:32 +1000)]
ctdb-tests: Add basic test to sanity check types in socket marshalling

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Restore dropped copyright attributions
Martin Schwenke [Fri, 17 Aug 2018 03:58:18 +0000 (13:58 +1000)]
ctdb-common: Restore dropped copyright attributions

Commit fa94a49dbbec4a65c368a533a534f952a9f147a7 accidentally dropped
some copyright attributions.  The original version of system_socket.c
was based on system_linux.c but many parts have been taking from
system_freebsd.c, which had these additional copyright attributions.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Fix CID 1414745 - Out-of-bounds access
Martin Schwenke [Tue, 14 Aug 2018 03:18:01 +0000 (13:18 +1000)]
ctdb-common: Fix CID 1414745 - Out-of-bounds access

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-daemon: Do not retry connection to eventd
Martin Schwenke [Mon, 27 Aug 2018 04:53:37 +0000 (14:53 +1000)]
ctdb-daemon: Do not retry connection to eventd

Confirmation is now received from eventd that it is accepting
connections, so this is no longer needed.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13592

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-daemon: Wait for eventd to be ready before connecting
Martin Schwenke [Mon, 27 Aug 2018 04:47:38 +0000 (14:47 +1000)]
ctdb-daemon: Wait for eventd to be ready before connecting

The current method of retrying the connection to eventd means that
messages get logged for each failure.

Instead, pass a pipe file descriptor to eventd and wait for it to
write 0 to the pipe to indicate that it is ready to accept client
connections.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13592

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-daemon: Open eventd pipe earlier
Martin Schwenke [Mon, 27 Aug 2018 04:44:24 +0000 (14:44 +1000)]
ctdb-daemon: Open eventd pipe earlier

The pipe will soon be needed earlier, so initialise it earlier.
Ensure the file descriptors are closed on error.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13592

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-daemon: Improve error handling consistency
Martin Schwenke [Mon, 27 Aug 2018 05:28:47 +0000 (15:28 +1000)]
ctdb-daemon: Improve error handling consistency

Other errors free argv, so do it here too.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13592

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-event: Add support to eventd for the startup notification FD
Martin Schwenke [Fri, 24 Aug 2018 04:52:29 +0000 (14:52 +1000)]
ctdb-event: Add support to eventd for the startup notification FD

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13592

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agoctdb-common: Add support for sock daemon to notify of successful startup
Martin Schwenke [Fri, 24 Aug 2018 04:44:12 +0000 (14:44 +1000)]
ctdb-common: Add support for sock daemon to notify of successful startup

The daemon writes 0 into the specified file descriptor when it is up
and listening.  This can be used to avoid loops in clients that
attempt to connect until they succeed.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13592

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
5 years agopidl/tests: fix ndr_push_init_ctx() usage
Alexander Bokovoy [Thu, 5 Jul 2018 13:39:52 +0000 (16:39 +0300)]
pidl/tests: fix ndr_push_init_ctx() usage

The code in libndr got rid of the second argument quite some time ago
(2010): f9ca9e46ad24036bf00cb361a6cef4b2e7e98d7d

However, pidl tests did include a code that passed two arguments.
Recently GCC started to fail to compile such code.

Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Thu Aug 30 04:48:00 CEST 2018 on sn-devel-144

5 years agos4:torture: Add a test for listing shares
Andreas Schneider [Mon, 27 Aug 2018 13:59:59 +0000 (15:59 +0200)]
s4:torture: Add a test for listing shares

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Aug 29 21:28:41 CEST 2018 on sn-devel-144

5 years agoselftest: Schedule libsmbclient tests against ad_dc
Andreas Schneider [Thu, 23 Aug 2018 12:12:43 +0000 (14:12 +0200)]
selftest: Schedule libsmbclient tests against ad_dc

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agos4:torture: Improve torture_libsmbclient_init_context()
Andreas Schneider [Thu, 23 Aug 2018 12:00:29 +0000 (14:00 +0200)]
s4:torture: Improve torture_libsmbclient_init_context()

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agoautobuild: Avoid subshell for tail -f invocation
Andrew Bartlett [Mon, 27 Aug 2018 09:13:29 +0000 (21:13 +1200)]
autobuild: Avoid subshell for tail -f invocation

This should mean one less process in the process tree, and less places to hold
FDs open.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13591

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Aug 29 08:20:55 CEST 2018 on sn-devel-144

5 years agoautobuild: use close_fds=True to avoid *.stderr and *.stdout inheriting into every...
Andrew Bartlett [Mon, 27 Aug 2018 09:00:58 +0000 (21:00 +1200)]
autobuild: use close_fds=True to avoid *.stderr and *.stdout inheriting into every process

This closes fds other than 0, 1, 2.

This ensures only the correct *.stderr and *.stdout is attached, via
the stdout/stderr parameter to Popen(), but not every other FD
currently open in python at the time Popen is called.

For the tail invocation and other calls to Popen(), because fds 0, 1,
2 are still attached, these function as before.

Per https://docs.python.org/2.6/library/subprocess.html:

"If close_fds is true, all file descriptors except 0, 1 and
2 will be closed before the child process is executed. (Unix only)."

And regarding the passed in parameters:

"stdin, stdout and stderr specify the executed programs’ standard
input,
standard output and standard error file handles, respectively.  "
...

"With None (the default), no redirection will occur;
the child’s file handles will be inherited from the parent. "

(The unwanted inherited files would be on a random high FD, where the
program wouldn't know what to do with them, but counting towards the
process FD limit).

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13591

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agotravis-ci: Add py3 jobs to match new jobs in autobuild.py
Andrew Bartlett [Mon, 27 Aug 2018 01:34:35 +0000 (13:34 +1200)]
travis-ci: Add py3 jobs to match new jobs in autobuild.py

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoautobuild: Move backup/restore environments into to samba-ad-dc-2 autobuild job
Andrew Bartlett [Sat, 25 Aug 2018 07:40:12 +0000 (09:40 +0200)]
autobuild: Move backup/restore environments into to samba-ad-dc-2 autobuild job

This tries to to split up the tasks more evenly and may help with the python3
work by isolating them from the long samba job.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoautobuild: Move ad_dc_no_nss into to samba-ad-dc-2 autobuild job
Andrew Bartlett [Sat, 25 Aug 2018 07:03:07 +0000 (09:03 +0200)]
autobuild: Move ad_dc_no_nss into to samba-ad-dc-2 autobuild job

This tries to to split up the tasks more evenly and may help with the python3 tests
against this environment if started from a more isolated job.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoautobuild: Reduce duplication of task list in autobuild
Andrew Bartlett [Thu, 16 Aug 2018 01:54:14 +0000 (13:54 +1200)]
autobuild: Reduce duplication of task list in autobuild

The defaulttasks or builddirs are often updated out of sync, which causes confusion until
it is resolved.

We simply choose "." as the builddir for the tasks that
are not in the default set.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agogitlab-ci: Run the new python3 autobuild tasks
Andrew Bartlett [Thu, 16 Aug 2018 01:53:20 +0000 (13:53 +1200)]
gitlab-ci: Run the new python3 autobuild tasks

These additional tasks should be less complex than the full build and help get us to
a pure python3 build eventually

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoautobuild: Implement a split python2 and python2 build pattern
Andrew Bartlett [Thu, 16 Aug 2018 01:50:31 +0000 (13:50 +1200)]
autobuild: Implement a split python2 and python2 build pattern

The default tasks will run the tests without --extra-python specified and
the new -py3 tasks will run the python3 tests only.

This will reduce the complexity of the build combinations

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
5 years agoexamples: Add winexe re-implemented on current Samba libs
Volker Lendecke [Tue, 10 Apr 2018 15:18:18 +0000 (17:18 +0200)]
examples: Add winexe re-implemented on current Samba libs

winexe from https://sourceforge.net/projects/winexe/ is a project
based on Samba libraries from 2012. According to the winexe git
repository the last Samba commit winexe was updated to is 47bbf9886f0c
from November 6, 2012. As winexe uses unpublished Samba internal
libraries, it broke over time.

This is a port of the winexe functionality to more modern Samba
versions. It still uses internal APIs, but it being part of the tree
means that it is much easier to keep up to date.

The Windows service files were taken literally from the original
winexe from the sourceforge git. Andrzej Hajda chose GPLv3 only and
not GPLv3+. As GPL evolves very slowly, this should not be a practical
problem for quite some time.

To build it under Linux, you need mingw binaries on your build
system. Under Debian stretch, the package names are gcc-mingw-w64 and
friends.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Aug 28 02:03:07 CEST 2018 on sn-devel-144

5 years agolibsmb: Expose protocol-agnostic cli_writeall_send/recv
Volker Lendecke [Wed, 4 Apr 2018 14:32:01 +0000 (16:32 +0200)]
libsmb: Expose protocol-agnostic cli_writeall_send/recv

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
5 years agolibsmb: Rename cli_writeall_send/recv to cli_smb1_writeall_send/recv
Volker Lendecke [Wed, 4 Apr 2018 14:19:52 +0000 (16:19 +0200)]
libsmb: Rename cli_writeall_send/recv to cli_smb1_writeall_send/recv

Preparing a protocol agnostic writeall

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>