The branch, v4-8-stable has been updated via 9fc7ccf VERSION: Disable GIT_SNAPSHOT for the 4.8.5 release. via 020b14a WHATSNEW: Add release notes for Samba 4.8.5. via 2ce60d7 torture: Demonstrate the invalid lock order panic via 1c0be1f vfs_fruit: Fix a leak of "br_lck" via 3cc8f9d s3:winbind: Do not lookup local system accounts in AD via 03e73ff selftest: Load time_audit and full_audit modules for all tests via 06cf8c4 s3: vfs: time_audit: fix handling of token_blob in smb_time_audit_offload_read_recv() via 84b7865 selftest: subunithelper needs to follow the subunit spec more closely via fd137bc unittests.lib_util_modules: test module probe with "skel", not "unix" via 6b37dea ldb: Release LDB 1.3.6 via e35fd26 ldb: Fix missing NULL terminator in ldb_mod_op_test testsuite via 0eaf84a libsmb: Fix CID 1438243 Unchecked return value via b1b882c libsmb: Fix CID 1438244 Unsigned compared against 0 via d4e8fd5 smbd: Fix CID 1438245 Dereference before null check via 2e28584 smbd: Fix CID 1438246 Unchecked return value via c45fb4b smbd: Align integer types via c57c54e ctdb: add expiry test for ctdb_mutex_ceph_rados_helper via 7cebb48 ctdb_mutex_ceph_rados_helper: fix deadlock via lock renewals via c245fdc ctdb_mutex_ceph_rados_helper: rename timer_ev to ppid_timer_ev via af08da4 ctdb_mutex_ceph_rados_helper: use talloc destructor for cleanup via 6dc7dc9 ctdb_mutex_ceph_rados_helper: Set SIGINT signal handler via 30c37fc ctdb/build: link ctdb_mutex_ceph_rados_helper against ceph-common via 0a49817 docs: Add manpage for winbind_krb5_localauth.8 via e9e85a1 docs: Move winbind_krb5_locator manpage to volume 8 via 756feb9 krb5_plugin: Move krb5 locator plugin to krb5_plugin subdir via f9f1102 krb5_plugin: Install plugins to krb5 modules dir via 9e3bc4e s3: tests: smbclient. Regression test to ensure we get NT_STATUS_DIRECTORY_NOT_EMPTY on rmdir. via 694c890 s4/torture: Add new test for DELETE_ON_CLOSE on non-empty directories via 8bf5c11 s3/libsmb: Explicitly set delete_on_close token for rmdir via 04c66d8 VERSION: Bump version up to 4.8.5. via 47081d9 Merge tag 'samba-4.8.4' into v4-8-test via 6f44ef8 s3/smbd: Ensure quota code is only called when quota support detected via e93a716 systemd: Only start smb when network interfaces are up via 4b91f85 s3/utils: fix regression where specifying -Unetbios/root works via 807611f s3/smbd: allow set quota for non root user (when built with --enable-selftest) via 2162b45 s3/script/tests: Add simple (smb1 & smb2) get/set/list tests for smbcquotas via 6938ec9 s3/script/test: modify existing smbcquota test to use SMB2 in addition to SMB1. via 87bf244 s3/smbd: smb2 server implementation for query get/set info. via aa7fb23 s3/smbd: adjust smb1 server to use idl structs and generated ndr push/pull funcs via 34208d3 s3/libsmb: adjust smb2 code for new idl structs & generated ndr push/pull funcs. via f1e7ffd s3/libsmb: adjust smb1 cli code to use idl structs and ndr push/pull funcs. via 964626e librpc/idl Add some query [getset]info quota related structures via d10a32c s3/smbd: Don't stat when doing a quota operation (as it's a fake file) via f4a456a s3/libsmb: Avoid potential smbpanic calling parse_user_quota_list. via acacc78 s3/lib: Fix misleading typo in debug message via aeb57fe s3: smbd: Fix AIX sendfile() for SMB2. Ensure we don't spin on EAGAIN. via 91c15b4 s3: smbd: Fix FreeBSD sendfile() for SMB2. Ensure we don't spin on EAGAIN. via b21e833 s3: smbd: Fix HPUX sendfile() for SMB2. Ensure we don't spin on EAGAIN. via 4e0c971 s3: smbd: Fix Solaris sendfile() for SMB2. Ensure we don't spin on EAGAIN. via 37e2ff7 s3: smbd: Fix Linux sendfile() for SMB2. Ensure we don't spin on EAGAIN. via 357d2b6 dns wildcards: fix BUG 13536 via a01a981 dns wildcards: tests to confirm BUG 13536 via 25e23c2 s3: smbd: fix path check in smbd_smb2_create_durable_lease_check() via a734876 s4: torture: run test_durable_v2_open_reopen2_lease() in a subdirectory via a970d45 s3: libsmbclient: Fix cli_splice() fallback when reading less than a complete file. via 41302b4 s3: torture: Test SMB1 cli_splice() fallback path when doing a non-full file splice. via a96f69a docs/vfs_ceph: add CTDB_SAMBA_SKIP_SHARE_CHECK=yes caveat via 3558765 vfs_ceph: don't lie about flock support via 2a54623 ldb: Refuse to build Samba against a newer minor version of ldb via 04a8995 samba-tool trust: support discovery via netr_GetDcName via 4b3ac37 s3:selftest: run rpc.lsa.lookupsids also with explicit [smb1] and [smb2] via ecf9e20 s4:librpc: autonegotiate SMB1/2/3 via e9494f9 python/tests: use explicit "client ipc max protocol = NT1" for samba.tests.net_join_no_spnego via 94ab84f tests/auth_log: Permit SMB2 service description if empty binding is used for kerberos authentication via 5b60ffc s4:libcli: add smb_connect_nego_{send,recv}() via dcaa67f s4:libcli: allow a fallback to NTLMSSP if SPNEGO is not supported locally via 3212bc7 s4:libcli: add fallback_to_anonymous to smb2_connect_send() via 2fd61b0 s4:libcli: allow passing an already negotiated connection to smb2_connect_send() via 2635c62 s4:libcli: split out smb2_connect_session_start() via dbf268e s4:libcli: add smb2_transport_raw_init() via 1136ff2 s4:libcli: allow passing an already negotiated connection to smb_composite_connect() via 77ab463 s4:libcli: use talloc_zero() for struct smb_composite_connect in fetchfile.c via 19e65af s4:libcli: add smbcli_transport_raw_init() via 92b6b90 s4:libcli: split out smb_raw_negotiate_fill_transport() via d23a1c1 librpc: add binding handle support for [smb1] via b336179 s3: smbd: always set vuid in check_user_ok() via c5680ba s3: smbd/durable: remove dev and inode check from vfs_default_durable_reconnect_check_stat() via 6930bb9 libsmbclient: Initialize written in cli_splice_fallback() via 40c9784 libsmbclient: Initialize written value before use. via c7bedb9 lib: smb_threads: fix access before init bug via adef988 python: pysmbd: Additional error path leak fix. via 425f513 s3:smbd: don't allow renaming basefile if streams are open via dd78d9a s3:locking: add file_has_open_streams() via 85571d0 s3:smbd: add private option NTCREATEX_OPTIONS_PRIVATE_STREAM_BASEOPEN via 93ec87e s4:torture/vfs/fruit: adjust test testing basefile rename to expect failure via 36972fd s4:torture/smb2/streams: try to rename basefile while is has open streams via 00b001b selftest: run smb2.streams tests against a share with vfs_streams_xattr via af4cb57 vfs_fruit: delete 0 byte size streams if AAPL is enabled via c88aa5f s4:torture: test setting EOF of a stream to 0 with enabled AAPL extensions via 2ea15c5 s4:torture/vfs/fruit: decrease large resource fork size in test from 1 GB to 64 MB via b5d333c ctdb-tests: Avoid segfault by initializing logging via a19d52e ctdb-tests: Avoid segfault by initializing logging via 6600f4b ctdb-pmda: Use modified API in pcp library 4.0 via 0e3f149 socket_wrapper: Add missing dependency on tirpc via 7f46b39 ctdb-daemon: Only consider client ID for local database attach via 35128a9 ctdb-tests: Switch fake_ctdbd to use ctdb_get_peer_pid() via 8af4bac uid_wrapper: Be strict when checking __attribute__ features via e021b43 resolv_wrapper: Be strict when checking __attribute__ features via 81a05ba pam_wrapper: Be strict when checking __attribute__ features via d3b773d nss_wrapper: Be strict when checking __attribute__ features via a4ada0b socket_wrapper: Be strict when checking __attribute__ features via 7a0807d wafsamba: Be strict when checking __attribute__ features via 89de78e wafsamba: Add strict option to CHECK_CODE via 4561e66 ctdb-common: Use correct return type for tevent_queue_add_entry via a95e528 tdb: Fix build on AIX via ac5ca1d ctdb: Fix build on AIX via 9974975 ctdb-common: Use sin6_len only if the structure supports it via bf7ae2f replace: Add test for sin6_len in sockaddr_in6 structure via 2819c0d ctdb-docs: Fix the documentation for VNN map via 7a701e2 ctdb-server: Rename CTDB_BROADCAST_VNNMAP -> CTDB_BROADCAST_ACTIVE via a2d3593 ctdb-tests: Add a simple test for database traverses via 1f25b710 ctdb-tests: Add check for non-lmaster node status in integration tests via f4d7abd ctdb-client: Fix typo where CTDB_BROADCAST_ALL is repeated via eaa3c9a s3:tests: Add test for smbclient --quiet via de5bde9 s3:client: Add --quiet option to smbclient via 1df7f93 VERSION: Bump version up to 4.8.4... from 626c489 VERSION: Disable GIT_SNAPSHOT for the Samba 4.8.4 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-8-stable - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: VERSION | 2 +- WHATSNEW.txt | 119 +++- buildtools/wafsamba/samba_autoconf.py | 12 +- buildtools/wafsamba/wscript | 4 + ctdb/client/client_tunnel.c | 4 +- ctdb/common/ctdb_util.c | 4 +- ctdb/common/sock_io.c | 6 +- ctdb/common/system_util.c | 2 +- ctdb/doc/ctdb.1.xml | 7 +- ctdb/include/ctdb_private.h | 7 +- ctdb/protocol/protocol.h | 2 +- ctdb/protocol/protocol_debug.c | 4 +- ctdb/protocol/protocol_util.c | 2 +- ctdb/server/ctdb_cluster_mutex.c | 4 +- ctdb/server/ctdb_control.c | 36 +- ctdb/server/ctdb_ltdb_server.c | 21 +- ctdb/server/ctdb_server.c | 16 +- ctdb/server/ctdb_traverse.c | 4 +- ctdb/server/ipalloc.c | 4 +- ctdb/tests/scripts/integration.bash | 1 + ctdb/tests/simple/79_volatile_db_traverse.sh | 94 +++ ctdb/tests/src/ctdb_takeover_tests.c | 8 +- ctdb/tests/src/fake_ctdbd.c | 10 +- ctdb/tests/src/fetch_loop.c | 3 + ctdb/tests/src/fetch_loop_key.c | 3 + ctdb/tests/src/fetch_readonly.c | 3 + ctdb/tests/src/fetch_readonly_loop.c | 3 + ctdb/tests/src/fetch_ring.c | 3 + ctdb/tests/src/g_lock_loop.c | 4 +- ctdb/tests/src/ipalloc_read_known_ips.c | 4 +- ctdb/tests/src/message_ring.c | 3 + ctdb/tests/src/transaction_loop.c | 3 + ctdb/tests/src/tunnel_test.c | 3 + ctdb/tests/src/update_record.c | 3 + ctdb/tests/src/update_record_persistent.c | 3 + ctdb/tools/ctdb_killtcp.c | 6 +- ctdb/utils/ceph/ctdb_mutex_ceph_rados_helper.c | 200 ++++-- ctdb/utils/ceph/test_ceph_rados_reclock.sh | 57 +- ctdb/utils/pmda/pmda_ctdb.c | 30 +- ctdb/wscript | 17 +- docs-xml/manpages/vfs_ceph.8.xml | 19 + docs-xml/manpages/winbind_krb5_localauth.8.xml | 86 +++ ...b5_locator.7.xml => winbind_krb5_locator.8.xml} | 6 +- docs-xml/wscript_build | 6 +- lib/ldb/ABI/{ldb-1.3.5.sigs => ldb-1.3.6.sigs} | 0 ...b-util.py3-1.3.5.sigs => pyldb-util-1.3.6.sigs} | 0 ...il.py3-1.3.5.sigs => pyldb-util.py3-1.3.6.sigs} | 0 lib/ldb/tests/ldb_mod_op_test.c | 4 +- lib/ldb/wscript | 34 +- lib/replace/wscript | 4 + lib/tdb/tools/tdbtool.c | 8 +- lib/util/smb_threads.h | 3 + librpc/idl/quota.idl | 54 ++ librpc/idl/wscript_build | 1 + librpc/rpc/binding.c | 1 + librpc/rpc/rpc_common.h | 2 + librpc/wscript_build | 5 + nsswitch/{ => krb5_plugin}/winbind_krb5_locator.c | 0 nsswitch/wscript_build | 12 +- packaging/systemd/smb.service.in | 3 +- python/samba/netcmd/domain.py | 26 +- python/samba/tests/auth_log.py | 28 +- python/samba/tests/dns_wildcard.py | 48 ++ python/samba/tests/net_join_no_spnego.py | 2 + selftest/knownfail | 3 + selftest/subunithelper.py | 3 +- selftest/target/Samba3.pm | 21 +- source3/client/client.c | 9 +- source3/include/smb.h | 3 + source3/lib/sendfile.c | 293 ++++++++- source3/lib/sysquotas.c | 2 +- source3/libsmb/cli_smb2_fnum.c | 99 ++- source3/libsmb/cliquota.c | 399 ++++++------ source3/libsmb/clireadwrite.c | 6 +- source3/libsmb/libsmb_file.c | 2 +- source3/libsmb/proto.h | 6 + source3/locking/locking.c | 31 + source3/locking/proto.h | 1 + source3/modules/vfs_ceph.c | 11 +- source3/modules/vfs_fruit.c | 27 +- source3/modules/vfs_time_audit.c | 12 +- source3/script/tests/getset_quota.py | 154 +++++ source3/script/tests/test_dfree_quota.sh | 14 +- source3/script/tests/test_smbclient_s3.sh | 76 +++ source3/script/tests/test_smbcquota.py | 244 ++++++++ .../script/tests/test_smbcquota.sh | 42 +- source3/selftest/tests.py | 12 +- source3/smbd/durable.c | 24 - source3/smbd/nttrans.c | 668 ++++++++++++--------- source3/smbd/open.c | 7 +- source3/smbd/proto.h | 14 + source3/smbd/pysmbd.c | 1 + source3/smbd/reply.c | 4 + source3/smbd/smb2_create.c | 16 +- source3/smbd/smb2_getinfo.c | 87 ++- source3/smbd/smb2_setinfo.c | 41 ++ source3/smbd/trans2.c | 3 +- source3/smbd/uid.c | 2 + source3/torture/torture.c | 153 +++++ source3/utils/smbcquotas.c | 3 +- source3/winbindd/winbindd_util.c | 2 + source3/wscript_build | 2 + source4/dns_server/dnsserver_common.c | 1 + source4/libcli/raw/clitransport.c | 44 ++ source4/libcli/raw/clitree.c | 1 + source4/libcli/raw/rawnegotiate.c | 74 ++- source4/libcli/smb2/connect.c | 69 ++- source4/libcli/smb2/session.c | 35 +- source4/libcli/smb2/transport.c | 35 ++ source4/libcli/smb_composite/connect.c | 48 +- source4/libcli/smb_composite/connect_nego.c | 209 +++++++ source4/libcli/smb_composite/fetchfile.c | 2 +- source4/libcli/smb_composite/smb_composite.h | 23 + source4/libcli/wscript_build | 20 +- source4/librpc/rpc/dcerpc_connect.c | 257 ++++---- source4/ntvfs/cifs/vfs_cifs.c | 1 + source4/torture/basic/delete.c | 87 +++ source4/torture/smb2/durable_v2_open.c | 11 +- source4/torture/smb2/streams.c | 82 +++ source4/torture/vfs/fruit.c | 315 +++++++++- testsuite/unittests/test_lib_util_modules.c | 2 +- third_party/nss_wrapper/wscript | 2 + third_party/pam_wrapper/wscript | 2 + third_party/resolv_wrapper/wscript | 2 + third_party/socket_wrapper/wscript | 4 +- third_party/uid_wrapper/wscript | 4 +- 126 files changed, 3908 insertions(+), 992 deletions(-) create mode 100755 ctdb/tests/simple/79_volatile_db_traverse.sh create mode 100644 docs-xml/manpages/winbind_krb5_localauth.8.xml rename docs-xml/manpages/{winbind_krb5_locator.7.xml => winbind_krb5_locator.8.xml} (96%) copy lib/ldb/ABI/{ldb-1.3.5.sigs => ldb-1.3.6.sigs} (100%) copy lib/ldb/ABI/{pyldb-util.py3-1.3.5.sigs => pyldb-util-1.3.6.sigs} (100%) copy lib/ldb/ABI/{pyldb-util.py3-1.3.5.sigs => pyldb-util.py3-1.3.6.sigs} (100%) create mode 100644 librpc/idl/quota.idl rename nsswitch/{ => krb5_plugin}/winbind_krb5_locator.c (100%) create mode 100755 source3/script/tests/getset_quota.py create mode 100755 source3/script/tests/test_smbcquota.py copy python/samba/tests/policy.py => source3/script/tests/test_smbcquota.sh (52%) mode change 100644 => 100755 create mode 100644 source4/libcli/smb_composite/connect_nego.c Changeset truncated at 500 lines: diff --git a/VERSION b/VERSION index fd52ff2..9776c92 100644 --- a/VERSION +++ b/VERSION @@ -25,7 +25,7 @@ ######################################################## SAMBA_VERSION_MAJOR=4 SAMBA_VERSION_MINOR=8 -SAMBA_VERSION_RELEASE=4 +SAMBA_VERSION_RELEASE=5 ######################################################## # If a official release has a serious bug # diff --git a/WHATSNEW.txt b/WHATSNEW.txt index d092972..cde1819 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -1,4 +1,119 @@ ============================= + Release Notes for Samba 4.8.5 + August 24, 2018 + ============================= + + +This is the latest stable release of the Samba 4.8 release series. + + +Changes since 4.8.4: +-------------------- + +o Jeremy Allison <j...@samba.org> + * BUG 13474: python: pysmbd: Additional error path leak fix. + * BUG 13511: libsmbclient: Initialize written value before use. + * BUG 13519: ldb: Refuse to build Samba against a newer minor version of + ldb. + * BUG 13527: s3: libsmbclient: Fix cli_splice() fallback when reading less + than a complete file. + * BUG 13537: Using "sendfile = yes" with SMB2 can cause CPU spin. + +o Andrew Bartlett <abart...@samba.org> + * BUG 13575: ldb: Release LDB 1.3.6. + +o Bailey Berro <baileybe...@chromium.org> + * BUG 13511: libsmbclient: Initialize written in cli_splice_fallback(). + +o Ralph Boehme <s...@samba.org> + * BUG 13318: Durable Handles reconnect fails in a cluster when the cluster + fs uses different device ids. + * BUG 13351: s3: smbd: Always set vuid in check_user_ok(). + * BUG 13441: vfs_fruit: Delete 0 byte size streams if AAPL is enabled. + * BUG 13451: Fail renaming file if that file has open streams. + * BUG 13505: lib: smb_threads: Fix access before init bug. + * BUG 13535: s3: smbd: Fix path check in + smbd_smb2_create_durable_lease_check(). + +o Alexander Bokovoy <a...@samba.org> + * BUG 13538: samba-tool trust: Support discovery via netr_GetDcName. + +o Samuel Cabrero <scabr...@suse.de> + * BUG 13540: ctdb_mutex_ceph_rados_helper: Set SIGINT signal handler. + +o David Disseldorp <dd...@samba.org> + * BUG 13506: vfs_ceph: Don't lie about flock support. + * BUG 13540: Fix deadlock with ctdb_mutex_ceph_rados_helper. + +o Amitay Isaacs <ami...@gmail.com> + * BUG 13493: ctdb: Fix build on FreeBSD and AIX. + +o Volker Lendecke <v...@samba.org> + * BUG 13553: libsmb: Fix CID 1438243 (Unchecked return value), CID 1438244 + (Unsigned compared against 0), CID 1438245 (Dereference before null check), + CID 1438246 (Unchecked return value). + * BUG 13584: vfs_fruit: Fix a panic if fruit_access_check detects a locking + conflict. + +o Gary Lockyer <g...@catalyst.net.nz> + * BUG 13536: The current position in the dns name was not advanced past the + '.' character. + +o Stefan Metzmacher <me...@samba.org> + * BUG 13308: samba-tool domain trust: Fix trust compatibility to Windows + Server 1709 and FreeIPA. + +o Oleksandr Natalenko <oleksa...@redhat.com> + * BUG 13559: systemd: Only start smb when network interfaces are up. + +o Noel Power <noel.po...@suse.com> + * BUG 13553: Fix quotas with SMB2. + * BUG 13563: s3/smbd: Ensure quota code is only called when quota support + detected. + +o Anoop C S <anoo...@redhat.com> + * BUG 13204: s3/libsmb: Explicitly set delete_on_close token for rmdir. + +o Andreas Schneider <a...@samba.org> + * BUG 13489: krb5_plugin: Install plugins to krb5 modules dir. + * BUG 13503: s3:winbind: Do not lookup local system accounts in AD. + +o Martin Schwenke <mar...@meltin.net> + * BUG 13499: Don't use CTDB_BROADCAST_VNNMAP. + * BUG 13500: ctdb-daemon: Only consider client ID for local database attach. + +o Justin Stephenson <jstep...@redhat.com> + * BUG 13485: s3:client: Add "--quiet" option to smbclient. + +o Ralph Wuerthner <ralph.wuerth...@de.ibm.com> + * BUG 13568: s3: vfs: time_audit: Fix handling of token_blob in + smb_time_audit_offload_read_recv(). + + +####################################### +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.8.4 August 14, 2018 ============================= @@ -85,8 +200,8 @@ database (https://bugzilla.samba.org/). ====================================================================== -Release notes for older releases follow: ----------------------------------------- +---------------------------------------------------------------------- + ============================= Release Notes for Samba 4.8.3 diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index cc08e0d..1b1e88a 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -365,7 +365,7 @@ def CHECK_CODE(conf, code, define, headers=None, msg=None, cflags='', includes='# .', local_include=True, lib=None, link=True, define_ret=False, quote=False, - on_target=True): + on_target=True, strict=False): '''check if some code compiles and/or runs''' if CONFIG_SET(conf, define): @@ -395,6 +395,16 @@ def CHECK_CODE(conf, code, define, cflags = TO_LIST(cflags) + # Be strict when relying on a compiler check + # Some compilers (e.g. xlc) ignore non-supported features as warnings + if strict: + extra_cflags = None + if conf.env["CC_NAME"] == "gcc": + extra_cflags = "-Werror" + elif conf.env["CC_NAME"] == "xlc": + extra_cflags = "-qhalt=w" + cflags.append(extra_cflags) + if local_include: cflags.append('-I%s' % conf.curdir) diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index 3b36b57..1567c4b 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -374,6 +374,7 @@ def configure(conf): conf.CHECK_CODE('''int main(void) { return 0; } __attribute__((visibility("default"))) void vis_foo2(void) {}''', cflags=conf.env.VISIBILITY_CFLAGS, + strict=True, define='HAVE_VISIBILITY_ATTR', addmain=False) # check HAVE_CONSTRUCTOR_ATTRIBUTE @@ -391,6 +392,7 @@ def configure(conf): ''', 'HAVE_CONSTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library constructor support') # check HAVE_DESTRUCTOR_ATTRIBUTE @@ -408,6 +410,7 @@ def configure(conf): ''', 'HAVE_DESTRUCTOR_ATTRIBUTE', addmain=False, + strict=True, msg='Checking for library destructor support') conf.CHECK_CODE(''' @@ -424,6 +427,7 @@ def configure(conf): ''', 'HAVE___ATTRIBUTE__', addmain=False, + strict=True, msg='Checking for __attribute__') if sys.platform.startswith('aix'): diff --git a/ctdb/client/client_tunnel.c b/ctdb/client/client_tunnel.c index 17b6546..f3b1a00 100644 --- a/ctdb/client/client_tunnel.c +++ b/ctdb/client/client_tunnel.c @@ -431,8 +431,8 @@ struct tevent_req *ctdb_tunnel_request_send(TALLOC_CTX *mem_ctx, }; if (destnode == CTDB_BROADCAST_ALL || - destnode == CTDB_BROADCAST_VNNMAP || - destnode == CTDB_BROADCAST_ALL) { + destnode == CTDB_BROADCAST_ACTIVE || + destnode == CTDB_BROADCAST_CONNECTED) { state->wait_for_reply = false; } if (! state->wait_for_reply) { diff --git a/ctdb/common/ctdb_util.c b/ctdb/common/ctdb_util.c index 82526b5..ffaa1a7 100644 --- a/ctdb/common/ctdb_util.c +++ b/ctdb/common/ctdb_util.c @@ -389,8 +389,8 @@ void ctdb_canonicalize_ip(const ctdb_sock_addr *ip, ctdb_sock_addr *cip) sizeof(cip->ip.sin_addr)); } else { cip->ip6.sin6_family = AF_INET6; -#ifdef HAVE_SOCK_SIN_LEN - cip->ip6.sin_len = sizeof(ctdb_sock_addr); +#ifdef HAVE_SOCK_SIN6_LEN + cip->ip6.sin6_len = sizeof(ctdb_sock_addr); #endif cip->ip6.sin6_port = ip->ip6.sin6_port; memcpy(&cip->ip6.sin6_addr, diff --git a/ctdb/common/sock_io.c b/ctdb/common/sock_io.c index 3f7138f..e9e2fa3 100644 --- a/ctdb/common/sock_io.c +++ b/ctdb/common/sock_io.c @@ -275,7 +275,7 @@ int sock_queue_write(struct sock_queue *queue, uint8_t *buf, size_t buflen) { struct tevent_req *req; struct sock_queue_write_state *state; - bool status; + struct tevent_queue_entry *qentry; if (buflen >= INT32_MAX) { return -1; @@ -289,9 +289,9 @@ int sock_queue_write(struct sock_queue *queue, uint8_t *buf, size_t buflen) state->pkt = buf; state->pkt_size = (uint32_t)buflen; - status = tevent_queue_add_entry(queue->queue, queue->ev, req, + qentry = tevent_queue_add_entry(queue->queue, queue->ev, req, sock_queue_trigger, queue); - if (! status) { + if (qentry == NULL) { talloc_free(req); return -1; } diff --git a/ctdb/common/system_util.c b/ctdb/common/system_util.c index f27eed7..f1e9763 100644 --- a/ctdb/common/system_util.c +++ b/ctdb/common/system_util.c @@ -154,7 +154,7 @@ static bool parse_ipv6(const char *s, const char *ifaces, unsigned port, ctdb_so saddr->ip6.sin6_scope_id = if_nametoindex(ifaces); } -#ifdef HAVE_SOCK_SIN_LEN +#ifdef HAVE_SOCK_SIN6_LEN saddr->ip6.sin6_len = sizeof(*saddr); #endif return true; diff --git a/ctdb/doc/ctdb.1.xml b/ctdb/doc/ctdb.1.xml index 8dfca3b..b7362a4 100644 --- a/ctdb/doc/ctdb.1.xml +++ b/ctdb/doc/ctdb.1.xml @@ -292,10 +292,9 @@ <title>Virtual Node Number (VNN) map</title> <para> Consists of the number of virtual nodes and mapping from - virtual node numbers to physical node numbers. Virtual - nodes host CTDB databases. Only nodes that are - participating in the VNN map can become lmaster or dmaster - for database records. + virtual node numbers to physical node numbers. Only nodes + that are participating in the VNN map can become lmaster for + database records. </para> </refsect3> diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h index 23cb7dc..25d0047 100644 --- a/ctdb/include/ctdb_private.h +++ b/ctdb/include/ctdb_private.h @@ -726,9 +726,12 @@ int ctdb_set_db_readonly(struct ctdb_context *ctdb, int ctdb_process_deferred_attach(struct ctdb_context *ctdb); -int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata, +int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, + TDB_DATA indata, TDB_DATA *outdata, - uint8_t db_flags, uint32_t client_id, + uint8_t db_flags, + uint32_t srcnode, + uint32_t client_id, struct ctdb_req_control_old *c, bool *async_reply); int32_t ctdb_control_db_detach(struct ctdb_context *ctdb, TDB_DATA indata, diff --git a/ctdb/protocol/protocol.h b/ctdb/protocol/protocol.h index cb807e3..7189fab 100644 --- a/ctdb/protocol/protocol.h +++ b/ctdb/protocol/protocol.h @@ -44,7 +44,7 @@ enum ctdb_operation { /* send a broadcast to all nodes in the cluster, active or not */ #define CTDB_BROADCAST_ALL 0xF0000002 /* send a broadcast to all nodes in the current vnn map */ -#define CTDB_BROADCAST_VNNMAP 0xF0000003 +#define CTDB_BROADCAST_ACTIVE 0xF0000003 /* send a broadcast to all connected nodes */ #define CTDB_BROADCAST_CONNECTED 0xF0000004 /* send a broadcast to selected connected nodes */ diff --git a/ctdb/protocol/protocol_debug.c b/ctdb/protocol/protocol_debug.c index 4e15663..a34f5a8 100644 --- a/ctdb/protocol/protocol_debug.c +++ b/ctdb/protocol/protocol_debug.c @@ -264,8 +264,8 @@ static void ctdb_pnn_print(uint32_t pnn, FILE *fp) fprintf(fp, "CURRENT"); } else if (pnn == CTDB_BROADCAST_ALL) { fprintf(fp, "ALL"); - } else if (pnn == CTDB_BROADCAST_VNNMAP) { - fprintf(fp, "VNNMAP"); + } else if (pnn == CTDB_BROADCAST_ACTIVE) { + fprintf(fp, "ACTIVE"); } else if (pnn == CTDB_BROADCAST_CONNECTED) { fprintf(fp, "CONNECTED"); } else if (pnn == CTDB_MULTICAST) { diff --git a/ctdb/protocol/protocol_util.c b/ctdb/protocol/protocol_util.c index 73652e7..c75555f 100644 --- a/ctdb/protocol/protocol_util.c +++ b/ctdb/protocol/protocol_util.c @@ -206,7 +206,7 @@ static int ipv6_from_string(const char *str, struct sockaddr_in6 *ip6) return EINVAL; } -#ifdef HAVE_SOCK_SIN_LEN +#ifdef HAVE_SOCK_SIN6_LEN ip6->sin6_len = sizeof(*ip6); #endif return 0; diff --git a/ctdb/server/ctdb_cluster_mutex.c b/ctdb/server/ctdb_cluster_mutex.c index 9397746..804c6d5 100644 --- a/ctdb/server/ctdb_cluster_mutex.c +++ b/ctdb/server/ctdb_cluster_mutex.c @@ -19,11 +19,11 @@ along with this program; if not, see <http://www.gnu.org/licenses/>. */ -#include <tevent.h> - #include "replace.h" #include "system/network.h" +#include <tevent.h> + #include "lib/util/debug.h" #include "lib/util/time.h" #include "lib/util/strv.h" diff --git a/ctdb/server/ctdb_control.c b/ctdb/server/ctdb_control.c index b537cd1..848010e 100644 --- a/ctdb/server/ctdb_control.c +++ b/ctdb/server/ctdb_control.c @@ -267,18 +267,34 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb, } case CTDB_CONTROL_DB_ATTACH: - return ctdb_control_db_attach(ctdb, indata, outdata, 0, client_id, - c, async_reply); + return ctdb_control_db_attach(ctdb, + indata, + outdata, + 0, + srcnode, + client_id, + c, + async_reply); case CTDB_CONTROL_DB_ATTACH_PERSISTENT: - return ctdb_control_db_attach(ctdb, indata, outdata, - CTDB_DB_FLAGS_PERSISTENT, client_id, - c, async_reply); + return ctdb_control_db_attach(ctdb, + indata, + outdata, + CTDB_DB_FLAGS_PERSISTENT, + srcnode, + client_id, + c, + async_reply); case CTDB_CONTROL_DB_ATTACH_REPLICATED: - return ctdb_control_db_attach(ctdb, indata, outdata, - CTDB_DB_FLAGS_REPLICATED, client_id, - c, async_reply); + return ctdb_control_db_attach(ctdb, + indata, + outdata, + CTDB_DB_FLAGS_REPLICATED, + srcnode, + client_id, + c, + async_reply); case CTDB_CONTROL_SET_CALL: return control_not_implemented("SET_CALL", NULL); @@ -860,7 +876,7 @@ int ctdb_daemon_send_control(struct ctdb_context *ctdb, uint32_t destnode, return -1; } - if (((destnode == CTDB_BROADCAST_VNNMAP) || + if (((destnode == CTDB_BROADCAST_ACTIVE) || (destnode == CTDB_BROADCAST_ALL) || (destnode == CTDB_BROADCAST_CONNECTED)) && !(flags & CTDB_CTRL_FLAG_NOREPLY)) { @@ -868,7 +884,7 @@ int ctdb_daemon_send_control(struct ctdb_context *ctdb, uint32_t destnode, return -1; } - if (destnode != CTDB_BROADCAST_VNNMAP && + if (destnode != CTDB_BROADCAST_ACTIVE && destnode != CTDB_BROADCAST_ALL && destnode != CTDB_BROADCAST_CONNECTED && (!ctdb_validate_pnn(ctdb, destnode) || diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c index c199aac..ca5bb12 100644 --- a/ctdb/server/ctdb_ltdb_server.c +++ b/ctdb/server/ctdb_ltdb_server.c @@ -1105,9 +1105,12 @@ int ctdb_process_deferred_attach(struct ctdb_context *ctdb) /* a client has asked to attach a new database */ -int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata, +int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, + TDB_DATA indata, TDB_DATA *outdata, - uint8_t db_flags, uint32_t client_id, + uint8_t db_flags, + uint32_t srcnode, + uint32_t client_id, struct ctdb_req_control_old *c, bool *async_reply) { @@ -1128,7 +1131,7 @@ int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata, * allow all attach from the network since these are always from remote * recovery daemons. */ - if (client_id != 0) { + if (srcnode == ctdb->pnn && client_id != 0) { client = reqid_find(ctdb->idr, client_id, struct ctdb_client); } if (client != NULL) { @@ -1535,9 +1538,15 @@ static void ctdb_ltdb_seqnum_check(struct tevent_context *ev, TDB_DATA data; data.dptr = (uint8_t *)&ctdb_db->db_id; data.dsize = sizeof(uint32_t); - ctdb_daemon_send_control(ctdb, CTDB_BROADCAST_VNNMAP, 0, - CTDB_CONTROL_UPDATE_SEQNUM, 0, CTDB_CTRL_FLAG_NOREPLY, - data, NULL, NULL); + ctdb_daemon_send_control(ctdb, + CTDB_BROADCAST_ACTIVE, + 0, + CTDB_CONTROL_UPDATE_SEQNUM, + 0, + CTDB_CTRL_FLAG_NOREPLY, + data, + NULL, + NULL); } ctdb_db->seqnum = new_seqnum; diff --git a/ctdb/server/ctdb_server.c b/ctdb/server/ctdb_server.c index 8e31038..c991b85 100644 --- a/ctdb/server/ctdb_server.c +++ b/ctdb/server/ctdb_server.c @@ -394,14 +394,18 @@ static void ctdb_broadcast_packet_all(struct ctdb_context *ctdb, } /* - broadcast a packet to all nodes in the current vnnmap + broadcast a packet to all active nodes -- Samba Shared Repository