[SCM] Samba Shared Repository - branch v4-6-stable updated
Karolin Seeger
kseeger at samba.org
Tue Apr 25 06:54:45 UTC 2017
The branch, v4-6-stable has been updated
via bbdd585 VERSION: Disable GIT_SNAPSHOTS for the 4.6.3 release.
via dcff483 WHATSNEW: Add release notes for Samba 4.6.3.
via c13244a cleanupdb: Fix a memory read error
via b8c11db s3:vfs:shadow_copy2: fix corner case of "/@GMT-token" in shadow_copy2_strip_snapshot
via 0a84f16 s3:vfs:shadow_copy2: fix the corner case if cwd=/ in make_relative_path
via 222aa4a s3:vfs:shadow_copy2: fix quoting in debug messages
via 312fb3b pam_winbind: no longer use wbcUserPasswordPolicyInfo when authenticating
via 12c24f3 s3:smbd: Fix incorrect use of sys_getgroups()
via ee420c1 s3:lib: Fix incorrect logic in sys_broken_getgroups()
via 72d1724 lib: debug: Avoid negative array access.
via 71abf1a vfs_acl_xattr: avoid needlessly supplying a large buffer to getxattr()
via ec39296 vfs_acl_xattr: factor out fetching of an extended attribute
via fb375e3 vfs_xattr_tdb: handle case of zero size.
via 70a2e2e selftest: test fetching a large ACL from vfs_acl_xattr
via 7a806d7 ctdb-docs: Fix documentation of -n option to ctdb tool
via c9a5199 rpcclient: allow -U'OTHERDOMAIN\user' again
via 8719babb winbindd: trigger possible passdb_dsdb initialisation
via d0d8663 winbindd: error handling in rpc_lookup_sids()
via a323631 s3/rpc_client: lookupsids error handling of NT_STATUS_NONE_MAPPED
via 9afba47 s3/rpc_client: use NT_STATUS_LOOKUP_ERR
via 6526a27 s3/include: add NT_STATUS_LOOKUP_ERR
via b6ea6f7 selftest: fix for wbinfo -s tests for wellknown SIDs
via 5083579 winbindd: explicit check for well-known SIDs in wb_lookupsids_bulk()
via 1a6802e selftest: wbinfo --sids-to-unix-ids tests for wellknown SIDs
via 1d66d33 selftest: wbinfo -s tests for wellknown SIDs
via fd6ec35 winbindd: use passdb backend for well-known SIDs
via 50583a6 selftest: tests idmap mapping with idmap_rid
via d0643c5 selftest: new environment "ad_member_idmap_rid"
via ff5865a winbindd: remove unused single_domains array
via b86a793 winbindd: use correct domain name for failed lookupsids
via 4c5f50c autobuild: Stop waf uninstall from removing test_tmpdir
via dce116d script/autobuild.py: ignore missing test_tmpdir
via da065cd script/autobuild.py: try to make TMPDIR handling more verbose
via 286a9fd script/autobuild.py: add a do_print() wrapper function that flushes after each message
via 5d964e1 script/autobuild.py: export PYTHONUNBUFFERED=1
via a727300 script/autobuild.py: cleanup the task subdirs when they're done.
via 3cd5d41 s4/torture: vfs_fruit: test for bug 12565
via fe3fe4f vfs_fruit: resource fork open request with flags=O_CREAT|O_RDONLY
via 981e667 wafsamba: move -L/some/path from LINKFLAGS_PYEMBED to LIBPATH_PYEMBED
via 122e46f selftest: Test for bug 12558
via ef48aa4 smbd: Fix smb1 findfirst with DFS
via 6f05903 winbindd: Fix password policy for pam authentication
via f37537b ctdb-tools: Avoid deferencing argv[0] if argc == 0
via 208dc58 selftest: Define template homedir for 'ad_member' env
via 2cad042 s3:tests: Add a subsitution test for %D %u %g
via bc93a47 s3:winbind: Use the correct talloc context for user information
via 925aa47 VERSION: Bump version up to 4.6.3.
via dd75f39 Merge tag 'samba-4.6.2' into v4-6-test
via cf02564 s3: Test for CVE-2017-2619 regression with "follow symlinks = no" - part 2
via 30aa17d s3: smbd: Fix "follow symlink = no" regression part 2.
via 3f52654 s3: smbd: Fix "follow symlink = no" regression part 2.
via 1aaaa78 s3: Fixup test for CVE-2017-2619 regression with "follow symlinks = no"
via 35f100d s3: Test for CVE-2017-2619 regression with "follow symlinks = no".
via c6199c2 s3: smbd: Fix incorrect logic exposed by fix for the security bug 12496 (CVE-2017-2619).
via 07437b0 selftest: tests for vfs_fruite file-id behavior
via 6b3cc69 torture: add torture_assert_mem_not_equal_goto()
via cdf3f57 vfs_fruit: document added zero_file_id parameter
via 9e7cfc4 vfs_fruit: enable zero file id
via 2732b0c smbd: add zero_file_id flag
via 2e9450a nsswtich: Add negative tests for authentication with wbinfo
via 4a6c2da s3:libads: Remove obsolete smb_krb5_get_ntstatus_from_init_creds()
via 705149d s3: locking: Update oplock optimization for the leases era !
via a619054 s3: locking: Move two leases functions into a new file.
via 32f7ba9 Changes to make the Solaris C compiler happy.
via 36a2ee2 lib/crypto: implement samba.crypto Python module for RC4
via 137b26f Fix for Solaris C compiler.
via e418059 s3:libsmb: Only print error message if kerberos use is forced
via 177dba4 ctdb-readonly: Avoid a tight loop waiting for revoke to complete
via 71b8b1d s3: libgpo: Allow skipping GPO objects that don't have the expected LDAP attributes.
via 9c8b11b s3:vfs_expand_msdfs: Do not open the remote address as a file
via 1fc5090 testprogs: Test 'net ads join' with a dedicated keytab
via a54601e param: Allow to specify kerberos method on the commandline
via 6717c67 s3:libads: Correctly handle the keytab kerberos methods
via 323ba48 krb5_wrap: Print a warning for an invalid keytab name
via 0abbc39 testprogs: Correctly expand shell parameters
via d6c9486 auth/credentials: Always set the the realm if we set the principal from the ccache
via 906c8a3 s3-gse: move krb5 fallback to smb_gss_krb5_import_cred wrapper
via 9bf6381 s3-gse: convert to use smb_gss_krb5_import_cred
via 92e6351 libads: convert to use smb_gss_krb5_import_cred
via 4b74d31 credentials_krb5: convert to use smb_gss_krb5_import_cred
via cb44a31 lib/krb5_wrap: add smb_gss_krb5_import_cred wrapper
via 7f963d9 gssapi: check for gss_acquire_cred_from
via c47fee6 VERSION: Bump version up to 4.6.2.
via 0cfe9fa Merge tag 'samba-4.6.1' into v4-6-test
via bef5582 s4:kdc: disable principal based autodetected referral detection
via b84c967 HEIMDAL:kdc: make it possible to disable the principal based referral detection
via f8ae8e8 s3:gse: Correctly handle external trusts with MIT
via 73d13c0 s3:gse: Check if we have a target_princpal set we should use
via c2b3115 s3:gse: Move setup of service_principal to update function
via 3f67876 s3:gse: Pass down the gensec_security pointer
via 38f3e64 krb5_wrap: Remove obsolete smb_krb5_get_principal_from_service_hostname()
via bc50ac4 s3:gse: Use smb_krb5_get_realm_from_hostname()
via 82898b8 s4:gensec_gssapi: Correctly handle external trusts with MIT
via be1e158 s4:gensec_gssapi: Use smb_krb5_get_realm_from_hostname()
via 43bc67a s4:gensec_gssapi: Move setup of service_principal to update function
via 825bfed s4:gensec-gssapi: Create a helper function to setup server_principal
via 97fa6c2 krb5_wrap: Make smb_krb5_get_realm_from_hostname() public
via f3940ac krb5_wrap: pass client_realm to smb_krb5_get_realm_from_hostname()
via ec8cf1c krb5_wrap: Try to guess the correct realm from the service hostname
via eaebcde krb5_wrap: Do not return an empty realm from smb_krb5_get_realm_from_hostname()
via 8899995 testprogs: Add kinit_trusts tests with smbclient4
via 9b10b35 testprogs: Use smbclient by default in test_kinit_trusts
via 202604d s4:gensec_gssapi: require a realm in gensec_gssapi_client_start()
via 22e473e s4:gensec_gssapi: the value gensec_get_target_principal() should overwrite gensec_get_target_hostname()
via c6e5b84 replace: Include sysmacros.h
via cc03f50 manpages/vfs_fruit: document global options
via 5acfa04 s4/torture: some tests for kernel oplocks
via 48a346f s3/selftest: adopt config.h check from source4
via b6cddc1 s3/smbd: fix deferred open with streams and kernel oplocks
via b375bae s3/smbd: all callers of defer_open() pass a lck
via eeed4ff s3/smbd: remove async_open arg from defer_open()
via dcde5b1 s3/smbd: fix schedule_async_open() timer
via 1d16e5f s3/smbd: add and use retry_open() instead of defer_open() in two places
via dc328aa s3/smbd: simplify defer_open()
via 93b789c s3/smbd: req is already validated at the beginning of open_file_ntcreate()
via 26f7b6f s3/smbd: add comments and some reformatting to open_file_ntcreate()
via d15c966 s3/smbd: add const to get_lease_type() args
via 30495b1 s3/wscript: fix Linux kernel oplock detection
via 1ad29ae lib/pthreadpool: fix a memory leak
via 68d6aa8 torture3: Add test for smbd crash
via ff94f79 smbd: Do an early exit on negprot failure
via 768acab idmap_autorid: allocate new domain range if the callers knows the sid is valid
via 074aaeb VERSION: Bump version up to 4.6.1...
from 36d0070 VERSION: Disable GIT_SNAPSHOTS for the 4.6.2 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-6-stable
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
VERSION | 2 +-
WHATSNEW.txt | 113 ++++++-
auth/credentials/credentials_krb5.c | 42 ++-
buildtools/wafsamba/samba_python.py | 6 +
ctdb/doc/ctdb.1.xml | 4 +-
ctdb/server/ctdb_call.c | 8 +-
ctdb/tools/ctdb_event.c | 13 +-
docs-xml/manpages/vfs_fruit.8.xml | 172 ++++++----
lib/crypto/py_crypto.c | 90 +++++
lib/crypto/wscript_build | 7 +
lib/krb5_wrap/gss_samba.c | 161 +++++++++
lib/krb5_wrap/gss_samba.h | 13 +
lib/krb5_wrap/krb5_samba.c | 166 +++------
lib/krb5_wrap/krb5_samba.h | 7 +-
lib/param/param_table.c | 4 +
lib/replace/replace.h | 4 +
lib/torture/torture.h | 10 +
lib/util/debug.c | 2 +-
libgpo/gpo_ldap.c | 27 +-
nsswitch/pam_winbind.c | 58 +---
nsswitch/tests/test_idmap_rid.sh | 66 ++++
nsswitch/tests/test_wbinfo.sh | 46 ++-
python/samba/__init__.py | 16 +-
script/autobuild.py | 61 ++--
selftest/knownfail | 6 -
selftest/target/Samba.pm | 1 +
selftest/target/Samba3.pm | 116 ++++++-
selftest/target/Samba4.pm | 6 +
source3/include/lsa.h | 4 +
source3/include/tldap.h | 6 +
source3/lib/cleanupdb.c | 2 +-
source3/lib/dbwrap/dbwrap_watch.c | 2 +-
source3/lib/pthreadpool/pthreadpool.c | 2 +-
source3/lib/system.c | 12 +-
source3/libads/kerberos.c | 169 ----------
source3/libads/kerberos_keytab.c | 69 +++-
source3/libads/sasl.c | 2 +-
source3/librpc/crypto/gse.c | 293 ++++++++++------
source3/libsmb/cliconnect.c | 12 +-
source3/locking/leases_util.c | 55 +++
source3/locking/locking.c | 22 +-
source3/locking/proto.h | 4 +
source3/modules/vfs_acl_xattr.c | 84 +++--
source3/modules/vfs_expand_msdfs.c | 3 +-
source3/modules/vfs_fruit.c | 21 ++
source3/modules/vfs_shadow_copy2.c | 17 +-
source3/modules/vfs_xattr_tdb.c | 12 +
source3/rpc_client/cli_lsarpc.c | 8 +-
source3/rpcclient/rpcclient.c | 21 +-
source3/script/tests/test_large_acl.sh | 59 ++++
source3/script/tests/test_smbclient_s3.sh | 11 +
source3/script/tests/test_substitutions.sh | 9 +-
source3/script/tests/test_wbinfo_sids2xids_int.py | 2 +-
source3/selftest/tests.py | 46 ++-
source3/smbd/files.c | 8 -
source3/smbd/globals.h | 1 +
source3/smbd/msdfs.c | 4 +-
source3/smbd/negprot.c | 21 +-
source3/smbd/open.c | 391 ++++++++++++++++------
source3/smbd/oplock.c | 25 +-
source3/smbd/proto.h | 6 +-
source3/smbd/sec_ctx.c | 3 +-
source3/smbd/trans2.c | 14 +
source3/torture/torture.c | 76 +++++
source3/winbindd/idmap_autorid.c | 13 +
source3/winbindd/wb_lookupsids.c | 21 +-
source3/winbindd/wb_queryuser.c | 2 +-
source3/winbindd/winbindd_pam.c | 7 +-
source3/winbindd/winbindd_rpc.c | 9 +-
source3/winbindd/winbindd_util.c | 27 +-
source3/wscript | 6 +-
source3/wscript_build | 6 +
source4/auth/gensec/gensec_gssapi.c | 230 +++++++++++--
source4/auth/gensec/gensec_gssapi.h | 2 +-
source4/heimdal/kdc/default_config.c | 1 +
source4/heimdal/kdc/kdc.h | 2 +
source4/heimdal/kdc/krb5tgs.c | 4 +-
source4/kdc/kdc-heimdal.c | 2 +
source4/selftest/tests.py | 2 +-
source4/torture/smb2/oplock.c | 140 ++++++++
source4/torture/smb2/smb2.c | 1 +
source4/torture/vfs/fruit.c | 145 +++++++-
source4/torture/vfs/vfs.c | 1 +
testprogs/blackbox/subunit.sh | 4 +-
testprogs/blackbox/test_kinit_trusts_heimdal.sh | 10 +-
testprogs/blackbox/test_net_ads.sh | 9 +
wscript_configure_system_mitkrb5 | 1 +
87 files changed, 2482 insertions(+), 886 deletions(-)
create mode 100644 lib/crypto/py_crypto.c
create mode 100755 nsswitch/tests/test_idmap_rid.sh
create mode 100644 source3/locking/leases_util.c
create mode 100755 source3/script/tests/test_large_acl.sh
Changeset truncated at 500 lines:
diff --git a/VERSION b/VERSION
index 9668644..ce5b2b8 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
########################################################
SAMBA_VERSION_MAJOR=4
SAMBA_VERSION_MINOR=6
-SAMBA_VERSION_RELEASE=2
+SAMBA_VERSION_RELEASE=3
########################################################
# If a official release has a serious bug #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index a5feff8..9a16862 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,113 @@
=============================
+ Release Notes for Samba 4.6.3
+ April 25, 2017
+ =============================
+
+
+This is the latest stable release of the Samba 4.6 release series.
+
+
+Changes since 4.6.2:
+--------------------
+
+o Michael Adam <obnox at samba.org>
+ * BUG 12743: s3:vfs:shadow_copy2: vfs_shadow_copy2 fails to list snapshots
+ from shares with GlusterFS backend.
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 12559: Fix for Solaris C compiler.
+ * BUG 12628: s3: locking: Update oplock optimization for the leases era.
+ * BUG 12693: Make the Solaris C compiler happy.
+ * BUG 12695: s3: libgpo: Allow skipping GPO objects that don't have the
+ expected LDAP attributes.
+ * BUG 12747: Fix buffer overflow caused by wrong use of getgroups.
+
+o Hanno Boeck <hanno at hboeck.de>
+ * BUG 12746: lib: debug: Avoid negative array access.
+ * BUG 12748: cleanupdb: Fix a memory read error.
+
+o Ralph Boehme <slow at samba.org>
+ * BUG 7537: streams_xattr and kernel oplocks results in
+ NT_STATUS_NETWORK_BUSY.
+ * BUG 11961: winbindd: idmap_autorid allocates ids for unknown SIDs from other
+ backends.
+ * BUG 12565: vfs_fruit: Resource fork open request with
+ flags=O_CREAT|O_RDONLY.
+ * BUG 12615: manpages/vfs_fruit: Document global options.
+ * BUG 12624: lib/pthreadpool: Fix a memory leak.
+ * BUG 12727: Lookup-domain for well-known SIDs on a DC.
+ * BUG 12728: winbindd: Fix error handling in rpc_lookup_sids().
+ * BUG 12729: winbindd: Trigger possible passdb_dsdb initialisation.
+
+o Alexander Bokovoy <ab at samba.org>
+ * BUG 12611: credentials_krb5: use gss_acquire_cred for client-side GSSAPI
+ use case.
+ * BUG 12690: lib/crypto: Implement samba.crypto Python module for RC4.
+
+o Amitay Isaacs <amitay at gmail.com>
+ * BUG 12697: ctdb-readonly: Avoid a tight loop waiting for revoke to
+ complete.
+ * BUG 12723: ctdb_event monitor command crashes if event is not specified.
+ * BUG 12733: ctdb-docs: Fix documentation of "-n" option to 'ctdb tool'.
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 12558: smbd: Fix smb1 findfirst with DFS.
+ * BUG 12610: smbd: Do an early exit on negprot failure.
+ * BUG 12699: winbindd: Fix substitution for 'template homedir'.
+
+o Stefan Metzmacher <metze at samba.org>
+ * BUG 12554: s4:kdc: Disable principal based autodetected referral detection.
+ * BUG 12613: idmap_autorid: Allocate new domain range if the callers knows
+ the sid is valid.
+ * BUG 12724: LINKFLAGS_PYEMBED should not contain -L/some/path.
+ * BUG 12725: PAM auth with WBFLAG_PAM_GET_PWD_POLICY returns wrong policy for
+ trusted domain.
+ * BUG 12731: rpcclient: Allow -U'OTHERDOMAIN\user' again.
+
+o Christof Schmitt <cs at samba.org>
+ * BUG 12725: winbindd: Fix password policy for pam authentication.
+
+o Andreas Schneider <asn at samba.org>
+ * BUG 12554: s3:gse: Correctly handle external trusts with MIT.
+ * BUG 12611: auth/credentials: Always set the realm if we set the principal
+ from the ccache.
+ * BUG 12686: replace: Include sysmacros.h.
+ * BUG 12687: s3:vfs_expand_msdfs: Do not open the remote address as a file.
+ * BUG 12704: s3:libsmb: Only print error message if kerberos use is forced.
+ * BUG 12708: winbindd: Child process crashes when kerberos-authenticating
+ a user with wrong password.
+
+o Uri Simchoni <uri at samba.org>
+ * BUG 12715: vfs_fruit: Office document opens as read-only on macOS due to
+ CNID semantics.
+ * BUG 12737: vfs_acl_xattr: Fix failure to get ACL on Linux if memory is
+ fragmented.
+
+
+#######################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored. All bug reports should
+be filed under the "Samba 4.1 and newer" product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
+
+ =============================
Release Notes for Samba 4.6.2
March 31, 2017
=============================
@@ -36,8 +145,8 @@ database (https://bugzilla.samba.org/).
======================================================================
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
+
=============================
Release Notes for Samba 4.6.1
diff --git a/auth/credentials/credentials_krb5.c b/auth/credentials/credentials_krb5.c
index e974df9..1912c48 100644
--- a/auth/credentials/credentials_krb5.c
+++ b/auth/credentials/credentials_krb5.c
@@ -107,7 +107,8 @@ static int cli_credentials_set_from_ccache(struct cli_credentials *cred,
enum credentials_obtained obtained,
const char **error_string)
{
-
+ bool ok;
+ char *realm;
krb5_principal princ;
krb5_error_code ret;
char *name;
@@ -134,11 +135,24 @@ static int cli_credentials_set_from_ccache(struct cli_credentials *cred,
return ret;
}
- cli_credentials_set_principal(cred, name, obtained);
-
+ ok = cli_credentials_set_principal(cred, name, obtained);
+ if (!ok) {
+ krb5_free_principal(ccache->smb_krb5_context->krb5_context, princ);
+ return ENOMEM;
+ }
free(name);
+ realm = smb_krb5_principal_get_realm(ccache->smb_krb5_context->krb5_context,
+ princ);
krb5_free_principal(ccache->smb_krb5_context->krb5_context, princ);
+ if (realm == NULL) {
+ return ENOMEM;
+ }
+ ok = cli_credentials_set_realm(cred, realm, obtained);
+ SAFE_FREE(realm);
+ if (!ok) {
+ return ENOMEM;
+ }
/* set the ccache_obtained here, as it just got set to UNINITIALISED by the calls above */
cred->ccache_obtained = obtained;
@@ -579,8 +593,9 @@ _PUBLIC_ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred,
return ENOMEM;
}
- maj_stat = gss_krb5_import_cred(&min_stat, ccache->ccache, NULL, NULL,
- &gcc->creds);
+ maj_stat = smb_gss_krb5_import_cred(&min_stat, ccache->smb_krb5_context->krb5_context,
+ ccache->ccache, NULL, NULL,
+ &gcc->creds);
if ((maj_stat == GSS_S_FAILURE) &&
(min_stat == (OM_uint32)KRB5_CC_END ||
min_stat == (OM_uint32)KRB5_CC_NOTFOUND ||
@@ -597,8 +612,9 @@ _PUBLIC_ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred,
return ret;
}
- maj_stat = gss_krb5_import_cred(&min_stat, ccache->ccache, NULL, NULL,
- &gcc->creds);
+ maj_stat = smb_gss_krb5_import_cred(&min_stat, ccache->smb_krb5_context->krb5_context,
+ ccache->ccache, NULL, NULL,
+ &gcc->creds);
}
@@ -609,7 +625,7 @@ _PUBLIC_ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred,
} else {
ret = EINVAL;
}
- (*error_string) = talloc_asprintf(cred, "gss_krb5_import_cred failed: %s", error_message(ret));
+ (*error_string) = talloc_asprintf(cred, "smb_gss_krb5_import_cred failed: %s", error_message(ret));
return ret;
}
@@ -1076,12 +1092,14 @@ _PUBLIC_ int cli_credentials_get_server_gss_creds(struct cli_credentials *cred,
if (ktc->password_based || obtained < CRED_SPECIFIED) {
/* This creates a GSSAPI cred_id_t for match-by-key with only the keytab set */
- maj_stat = gss_krb5_import_cred(&min_stat, NULL, NULL, ktc->keytab,
- &gcc->creds);
+ maj_stat = smb_gss_krb5_import_cred(&min_stat, smb_krb5_context->krb5_context,
+ NULL, NULL, ktc->keytab,
+ &gcc->creds);
} else {
/* This creates a GSSAPI cred_id_t with the principal and keytab set, matching by name */
- maj_stat = gss_krb5_import_cred(&min_stat, NULL, princ, ktc->keytab,
- &gcc->creds);
+ maj_stat = smb_gss_krb5_import_cred(&min_stat, smb_krb5_context->krb5_context,
+ NULL, princ, ktc->keytab,
+ &gcc->creds);
}
if (maj_stat) {
if (min_stat) {
diff --git a/buildtools/wafsamba/samba_python.py b/buildtools/wafsamba/samba_python.py
index 057a017..3a04881 100644
--- a/buildtools/wafsamba/samba_python.py
+++ b/buildtools/wafsamba/samba_python.py
@@ -76,6 +76,12 @@ def _check_python_headers(conf, mandatory):
else:
conf.env['PYTHON_SO_ABI_FLAG'] = ''
+ for lib in conf.env['LINKFLAGS_PYEMBED']:
+ if lib.startswith('-L'):
+ conf.env.append_unique('LIBPATH_PYEMBED', lib[2:]) # strip '-L'
+ conf.env['LINKFLAGS_PYEMBED'].remove(lib)
+
+ return
def SAMBA_PYTHON(bld, name,
source='',
diff --git a/ctdb/doc/ctdb.1.xml b/ctdb/doc/ctdb.1.xml
index f24f8dd..99e535d 100644
--- a/ctdb/doc/ctdb.1.xml
+++ b/ctdb/doc/ctdb.1.xml
@@ -123,10 +123,10 @@
<title>OPTIONS</title>
<variablelist>
- <varlistentry><term>-n <parameter>PNN-LIST</parameter></term>
+ <varlistentry><term>-n <parameter>PNN</parameter></term>
<listitem>
<para>
- The nodes specified by PNN-LIST should be queried for the
+ The node specified by PNN should be queried for the
requested information. Default is to query the daemon
running on the local host.
</para>
diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c
index a05ec1a..8ce3928 100644
--- a/ctdb/server/ctdb_call.c
+++ b/ctdb/server/ctdb_call.c
@@ -1600,7 +1600,6 @@ static int deferred_call_destructor(struct revokechild_deferred_call *deferred_c
{
struct ctdb_context *ctdb = deferred_call->ctdb;
struct revokechild_requeue_handle *requeue_handle = talloc(ctdb, struct revokechild_requeue_handle);
- struct ctdb_req_call_old *c = (struct ctdb_req_call_old *)deferred_call->hdr;
requeue_handle->ctdb = ctdb;
requeue_handle->hdr = deferred_call->hdr;
@@ -1608,9 +1607,12 @@ static int deferred_call_destructor(struct revokechild_deferred_call *deferred_c
requeue_handle->ctx = deferred_call->ctx;
talloc_steal(requeue_handle, requeue_handle->hdr);
- /* when revoking, any READONLY requests have 1 second grace to let read/write finish first */
+ /* Always delay revoke requests. Either wait for the read/write
+ * operation to complete, or if revoking failed wait for recovery to
+ * complete
+ */
tevent_add_timer(ctdb->ev, requeue_handle,
- timeval_current_ofs(c->flags & CTDB_WANT_READONLY ? 1 : 0, 0),
+ timeval_current_ofs(1, 0),
deferred_call_requeue, requeue_handle);
return 0;
diff --git a/ctdb/tools/ctdb_event.c b/ctdb/tools/ctdb_event.c
index 62b4b91..8e2dca7 100644
--- a/ctdb/tools/ctdb_event.c
+++ b/ctdb/tools/ctdb_event.c
@@ -223,23 +223,26 @@ static int command_status(TALLOC_CTX *mem_ctx, struct tool_context *tctx,
talloc_free(req);
if (! status) {
fprintf(stderr, "Failed to get event %s status, ret=%d\n",
- argv[0], ret);
+ ctdb_event_to_string(event), ret);
return ret;
}
if (result != 0) {
fprintf(stderr, "Failed to get event %s status, result=%d\n",
- argv[0], result);
+ ctdb_event_to_string(event), result);
return result;
}
if (script_list == NULL) {
if (state == CTDB_EVENT_LAST_RUN) {
- printf("Event %s has never run\n", argv[0]);
+ printf("Event %s has never run\n",
+ ctdb_event_to_string(event));
} else if (state == CTDB_EVENT_LAST_PASS) {
- printf("Event %s has never passed\n", argv[0]);
+ printf("Event %s has never passed\n",
+ ctdb_event_to_string(event));
} else if (state == CTDB_EVENT_LAST_FAIL) {
- printf("Event %s has never failed\n", argv[0]);
+ printf("Event %s has never failed\n",
+ ctdb_event_to_string(event));
}
} else {
for (i=0; i<script_list->num_scripts; i++) {
diff --git a/docs-xml/manpages/vfs_fruit.8.xml b/docs-xml/manpages/vfs_fruit.8.xml
index fa86b6f..cbeb12c 100644
--- a/docs-xml/manpages/vfs_fruit.8.xml
+++ b/docs-xml/manpages/vfs_fruit.8.xml
@@ -79,8 +79,98 @@
</refsect1>
<refsect1>
+ <title>GLOBAL OPTIONS</title>
+
+ <para>The following options must be set in the global smb.conf section
+ and won't take effect when set per share.</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>fruit:aapl = yes | no</term>
+ <listitem>
+ <para>A <emphasis>global</emphasis> option whether to enable Apple's SMB2+
+ extension codenamed AAPL. Default
+ <emphasis>yes</emphasis>. This extension enhances
+ several deficiencies when connecting from Macs:</para>
+
+ <itemizedlist>
+ <listitem><para>directory enumeration is enriched with
+ Mac relevant filesystem metadata (UNIX mode,
+ FinderInfo, resource fork size and effective
+ permission), as a result the Mac client doesn't need
+ to fetch this metadata individuallly per directory
+ entry resulting in an often tremendous performance
+ increase.</para></listitem>
+
+ <listitem><para>The ability to query and modify the
+ UNIX mode of directory entries.</para></listitem>
+ </itemizedlist>
+
+ <para>There's a set of per share options that come into play when
+ <emphasis>fruit:aapl</emphasis> is enabled. These opions, listed
+ below, can be used to disable the computation of specific Mac
+ metadata in the directory enumeration context, all are enabled by
+ default:</para>
+
+ <itemizedlist>
+ <listitem><para>readdir_attr:aapl_rsize = yes | no</para></listitem>
+ <listitem><para>readdir_attr:aapl_finder_info = yes | no</para></listitem>
+ <listitem><para>readdir_attr:aapl_max_access = yes | no</para></listitem>
+ </itemizedlist>
+
+ <para>See below for a description of these options.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:nfs_aces = yes | no</term>
+ <listitem>
+ <para>A <emphasis>global</emphasis> option whether support for
+ querying and modifying the UNIX mode of directory entries via NFS
+ ACEs is enabled, default <emphasis>yes</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:copyfile = yes | no</term>
+ <listitem>
+ <para>A <emphasis>global</emphasis> option whether to enable OS X
+ specific copychunk ioctl that requests a copy of a whole file
+ along with all attached metadata.</para>
+ <para>WARNING: the copyfile request is blocking the
+ client while the server does the copy.</para>.
+ <para>The default is <emphasis>no</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>fruit:zero_file_id = yes | no</term>
+ <listitem>
+ <para>A <emphasis>global</emphasis> option whether to return
+ zero to queries of on-disk file identifier, if the client
+ has negotiated AAPL.</para>
+ <para>Mac applications and / or the Mac SMB
+ client code expect the on-disk file identifier to have the
+ semantics of HFS+ Catalog Node Identifier (CNID). Samba
+ doesn't provide those semantics, and that occasionally cause
+ usability issues or even data loss. Returning a file identifier
+ of zero causes the Mac client to stop using and trusting the
+ file id returned from the server.</para>
+ <para>The default is <emphasis>yes</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+</refsect1>
+
+<refsect1>
<title>OPTIONS</title>
+ <para>The following options can be set either in the global smb.conf section
+ or per share.</para>
+
<variablelist>
<varlistentry>
@@ -178,50 +268,6 @@
</varlistentry>
<varlistentry>
- <term>fruit:aapl = yes | no</term>
- <listitem>
- <para>A global option whether to enable Apple's SMB2+
- extension codenamed AAPL. Default
- <emphasis>yes</emphasis>. This extension enhances
- several deficiencies when connecting from Macs:</para>
-
- <itemizedlist>
- <listitem><para>directory enumeration is enriched with
- Mac relevant filesystem metadata (UNIX mode,
- FinderInfo, resource fork size and effective
- permission), as a result the Mac client doesn't need
- to fetch this metadata individuallly per directory
- entry resulting in an often tremendous performance
- increase.</para></listitem>
-
- <listitem><para>The ability to query and modify the
- UNIX mode of directory entries.</para></listitem>
- </itemizedlist>
-
- <para>There's a set of per share options that can be
- used to disable the computation of specific Mac metadata
- in the directory enumeration context, all are enabled by
- default:</para>
-
- <itemizedlist>
- <listitem><para>readdir_attr:aapl_rsize = true | false</para></listitem>
- <listitem><para>readdir_attr:aapl_finder_info = true | false</para></listitem>
- <listitem><para>readdir_attr:aapl_max_access = true | false</para></listitem>
- </itemizedlist>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>fruit:nfs_aces = yes | no</term>
- <listitem>
- <para>Whether support for querying and modifying the
- UNIX mode of directory entries via NFS ACEs is enabled,
- default <emphasis>yes</emphasis>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term>fruit:veto_appledouble = yes | no</term>
<listitem>
<para><emphasis>Note:</emphasis> this option only applies when
@@ -243,18 +289,6 @@
</varlistentry>
<varlistentry>
- <term>fruit:copyfile = yes | no</term>
- <listitem>
- <para>Whether to enable OS X specific copychunk ioctl
- that requests a copy of a whole file along with all
- attached metadata.</para>
- <para>WARNING: the copyfile request is blocking the
- client while the server does the copy.</para>.
- <para>The default is <emphasis>no</emphasis>.</para>
- </listitem>
- </varlistentry>
--
Samba Shared Repository
More information about the samba-cvs
mailing list