[SCM] Samba Shared Repository - branch v4-0-stable updated
Andrew Bartlett
abartlet at samba.org
Tue Dec 8 17:51:49 MST 2009
The branch, v4-0-stable has been updated
via 100e249... This is alpha10
via 193e40c... A WHATSNEW for alpha10
via dd650ed... s4:selftest: skip SMB2-ACLS for now
via 33ecfb0... s4:selftest: run RAW-STREAMS again
via d3d2e39... RAW-STREAMS: convert failing tests to torture api
via 1b6c444... spoolss: fix spoolss_DriverInfo8 IDL.
via 5e8e5df... s4-smbtorture: make level 8 the reference for PrinterDriverEnum test.
via 7770d14... s3-spoolss: cleanup _spoolss_EnumPrinterDrivers().
via 0efbd93... s3-spoolss: remove unused architecture from fill_printer_driver_info1().
via af08962... s3-spoolss: remove ridiculous amount of duplicate driver code.
via 1c9eba4... s3-spoolss: fully support level 8 drivers.
via 35c50dc... s3-spoolss: use driver level info8 everywhere in spoolss server internally.
via 35c0677... s4-smbtorture: fill in COMPARE_STRING_ARRAY macro in spoolss driver test.
via c8615b6... s3: allocate only "new" space, not "old" sparse space in the posix_fallocate path
via ed5c337... s4:selftest: use ${selftest_prefix} instead of hardcoded st/
via 4608e3f... packaging(RHEL-CTDB): clean some commented out lines from the files sections
via ac702b8... packaging(RHEL-CTDB): explicitly list library versions in samba-winbind-32bit
via 551758a... packaging(RHEL-CTDB): explicitly list library versions in samba-common
via b921de7... packaging(RHEL-CTDB): explicitly list all packaged idmap/nss-info/charset modules
via cb831f36.. packaging(RHEL-CTDB): explicitly list all the vfs modules in the main package
via 8c37e70... packaging(RHEL-CTDB): add some checks to test the built smbd
via 87de8ae... packaging(RHEL-CTDB): make everything instead of all in the build stage
via 52083a8... s4-selftest: show the test summary at the end of 'make test' in the build farm
via 29c87ef... s4-heimdal: fixed a use-after-free heimdal bug
via cc9d4d5... s4-drs: use -r to ldbdel in unvampire devel script
via ff984cd... s4-ldb: fixed ldbdel with -r (recursive deletion)
via b2d8e11... s4:build Bump ldb and tdb required versions.
via 1bf825b... s4 torture: Cleanup RAW-ACLS a bit
via 978dc61... s4-selftest: don't consider spoolss failures to be an error in s4
via f1d9382... s4/smbstreams: Fix memory use after free.
via bf7cc32... krb5: Fix leaked hx509_context pointer
via 4653d05... tdr-test: Fix 'push_charset' test
via 8efabcc... talloc: Fix write behind memory block
via 105eb95... s4 quicktest: exclude raw-streams from quicktest until bug is fixed
via f717a79... s4 torture: Add a new torture:hide_on_access_denied parameter
via f4aa47b... s4 torture: win 7 doesn't like the sequential_only flag for directories
via d252d23... s4 torture: Port RAW-ACLS tests to SMB2
via 8ceb428... s4 torure: Add SMB2 utility functions
via 1724273... s4 torture: RAW-ACL Improvements
via 919440a... s4 torture: Convert RAW-STREAMS to a set of test suites rather than a monolithic test
via 6bc8a2b... s4 torture: Update RAW-RENAME to pass against win7
via cd72301... s4 torture: Add a new RAW-STREAMS test to simulate the summary tab
via 5d66d43... s4 torture: Fix the streams create disposition tests to actually return an error on failure
via 47f5aac... s4/torture: add test for zero byte read contention with byte range locks
via 995b480... s4/libcli: add define for exclusive lock mode
via b4c72e4... s4/torture: fix >80 column spacing issues
via 0c42d65... s4/torture: add delete-on-close test for directories
via a246310... parent_sd can never be null in this function, so don't check for it.
via 12bac42... Hopefullt final fix for 6802 - acl_xattr.c module: A created folder does not properly inherit permissions from parent and 6938 - No hook exists to check creation rights when using acl_xattr module
via 909cd26... s3: let gencache_init() use tdb_check()
via 8f19c08... s3: let netsamlogon_cache_init() use tdb_check()
via 6f6608c... s3: let tdb_validate_child() use tdb_check()
via 886fe5b... s3: require tdb 1.1.7 with tdb_check()
via 5055ba1... s3:docs: Document "directory name cache size".
via 9550ade... s3: de-deprecate "write cache size" to prevent its removal without a proper alternative
via 4334092... Fix release script with newer versins of git
via 8de6f71... s4-smbtorture: disable some spoolss printerdata tests which s3 does not pass at the moment.
via c85ed00... s3: fix net and rpcclient after setprinterdataex changes.
via 123d8d1... s4-smbtorture: fix RPC-SPOOLSS after _spoolss_SetPrinterDataEx IDL change.
via ef9d658... s3-spoolss: let _spoolss_DeletePrinterData call into _spoolss_DeletePrinterDataEx.
via 167dca0... s3-spoolss: let _spoolss_SetPrinterData call into _spoolss_SetPrinterDataEx.
via 778124e... s3-spoolss: let _spoolss_GetPrinterData call into _spoolss_GetPrinterDataEx.
via 0882316... spoolss: rework spoolss_GetPrinterDataEx and spoolss_SetPrinterDataEx.
via a367b2b... s3-spoolss: a default printer should have at least a "PrintDriverData" key.
via 1bc83b9... s3-winreg: fill in some inline comments.
via 5d46530... s3-winreg: remove trailing whitespace.
via 71018eb... s3:auth: Fix typo in debug message.
via fe01e0e... examples: Fix the build of the example VFS modules.
via 9b0780c... s4:dsdb Use ldb_match_msg_objectclass in operational.c
via 54ea4b1... s4:ldb Add a function to match a message against an objectClass
via b2db28b... s4:ldap.py Improve testsuite for primaryGroupToken behaviour
via 354b80b3.. s4:dsdb Make primaryGroupToken calculation more efficient and correct
via 45cd4c9... s4:dsdb Make parentGUID handler use dsdb_module_search_dn()
via a4725f5... s4:build torturedir and -DTORTUREDIR is unused
via 972ee4b... s4:dsdb Hide the LM password by default too
via 7050764... streamline some log levels for invalid servicenames
via da8b405... s3: Fix a const discard warning
via 3b8e85d... s3: talloc_array_length deals file with a NULL argument
via 1ba91c0... s3: Small simplification: qsort deals fine with just one entry
via 449045e... s3: Simplify usr_info_cmp by calling timeval_compare()
via aef303f... s3: Add rpcclient wkssvc_enumerateusers
via bbffd79... s3: Complete support for NetWkstaGetInfo/NetWkstaEnumUsers
via 7eaff9b... s3: First cut at _wkssvc_NetWkstaEnumUsers
via a902c4c... s3: Support NetWkstaGetInfo 101 and 102
via 9b265a6... s4-ldif: Fix memory leek in ldb_ldif_write()
via 21d3aa8... packaging(RHEL-CTDB): package dbwrap_tool and dbwrap_torture in the common pkg
via 04ba95c... s3:dbwrap_ctdb: increase the number of commit retries 5-->100
via d92d770... s3:dbwrap_ctdb: increase the rsn of the __transaction_lock__ when storing
via 743155f... s3: Fix explicit stat64 support
via 3264a98... s3: check if glibc has broken posix_fallocate
via 32915ce... Make Samba3 pass the RAW-LOCK test as Windows.
via 1d3942c... Make smbtorture4 match Windows behavior.
via 265e4df... s3: bug #6967: Prevent glibc error on net ads join: talloc()ed memory should not be SAFE_FREE()ed.
via 02fe863... s4-smbtorture: heavily expand printerdata tests in RPC-SPOOLSS.
via f5aff32... s3 aclocal.m4: Fix iconv checks, clean up m4 code
via be78d4a... s4-ldb: fixed show_deleted module not to corrupt parse trees
via ced3eef... s4-drsutil: fixed a memory leak in samdb_search_count
via 4f6d5d0... s4 torture: Convert create_complex_file to use BASIC_INFO instead of deprecated command
via 3507350... s4 torture: Fix call to smbcli_open
via a3df55b... s4 torture: Make RAW-SEARCH pass against win7
via 2dc5bd1... s4 torture: Parameterize WRITE_AND_CLOSE support
via f26a500... s4 torture: Add lockread_supported based off of CAP_LOCK_AND_READ
via 5882282... s4 torture: Allow READ to be parameterized, add more readx tests
via 60d9828... s4-torture: Allow the legacy DENY_FCB/DENY_DOS share modes to be ignored
via 5c85776... s4 selftest/quicktest: Update known failures for the sfileinfo and oplock changes
via 15e1c61... s4 torture: Add a new RAW-OPLOCK test: BATCH26
via 8f7e573... s4 torture: Close the third handle in RAW-OPLOCK-BATCH22
via 522d6bc... s4 torture: Convert an error to a warning in RAW-OPLOCK-BATCH22
via b14da4f... s4 torture: Add a few more windows target types
via fc78326... s4 torture: Convert to a more modern version of read in RAW-OPLOCK-BATCH4
via af8b785... s4 torture: Allow some implementations to break from level1 to none with two breaks
via 66c9687... Make sure we're not using the old smb_fname data.
via 3fe7dfd... Remove smb_fname duplicates that just keep the same information as in fsp->fsp_name.
via 459a968... s3-spoolss: handle SEC_FLAG_MAXIMUM_ALLOWED in spoolss_OpenPrinterEx.
via 2f0548f... s4-smbtorture: check more WERRORs in RPC-SPOOLSS.
via 4e20a6f... s4-smbtorture: call test_EnumPrinterDrivers with architecture in RPC-SPOOLSS.
via 91e0bdd... Refactor reply_rmdir to use handle based code. All calls are now handle based. Put rmdir into close.c and make it private. Jeremy.
via 80e0661... s4:operational LDB module - Fix usage of LDB constants
via fed6ac0... s4:ntvfs/posix/pvfs_streams - Fix "discard const" warning
via 1a855eb... s4:ntvfs/posix/pvfs_resolve - Fix "discard const" warning
via cdb68bd... s3: Fix crash in winbindd;(bug#6879).
via dfcc411... Remove unneeded argument from can_set_delete_on_close(). Ensure can_set_delete_on_close() is correctly called before any setting of the disposition bit (clean up the do_unlink() call). Jeremy.
via 76be0f6... s4/selftest: knownfail some locking tests until bugs are fixed
via 7c938d1... Ñ3: remove superfluous option check
via 48358b3... s4/torture: add multiple lock cancel test
via ad9c5a7... s4/torture: add addition multiple lock tests
via dfbb92e... s4/torture: fix build warnings by removing unecessary const
via 438b7c4... s4/torture: Add target functionality parameters to SMBv1 BRL tests
via 9a3d9ab... s3-selftest: run LOCAL-NDR when running make selftest.
via 450211b... s4-smbtorture: be very strict in checking spools_EnumPrinterKey results.
via f32ccc3... spoolss: hand-marshall the spoolss_StringArray2 struct for spoolss_EnumPrinterKey.
via 8d7a43f... s4-drs: fixed UDV and overlapping sync calls in DRS
via b65b887... s4-drs: fixed updating of uSNChanged in replmd_modify
via a2929a6... s3:build: remove redundant qnx block size definition
via 365c6b4... Restructure the ACL code some more, get the internal semantics right. The previous bugs were due to the fact that get_nt_acl_internal() could return an NTSTATUS error if there was no stored ACL blob, but otherwise would return the underlying ACL from the filysystem. Fix this so it always returns a valid acl if it can, and if it does not its an error to be reported back to the client. This then changes the inherit acl code. Previously we were trying to match Windows by setting a minimal ACL on a new file that didn't inherit anything from a parent directory. This is silly - the returned ACL wouldn't match the underlying UNIX permissions. The current code will correctly inherit from a parent if a parent has any inheritable ACE entries that apply to the new object, but will return a mapping from the underlying UNIX permissions if the parent has no inheritable entries. This makes much more sense for new files/directories. Jeremy.
via 1d013fd... s3:build: fix shared library build on QNX
via 148e79d... Ensure check_parent_acl_common() only looks at stored blobs - returns NT_STATUS_OK if there aren't any. Jeremy.
via 95c1862... s3: prefer posix_fallocate for doing "strict allocate"
via 486c8d5... Ensure get_nt_acl_internal() only looks at the ACL blobs, not reads off the underlying filesystem. Ensure that vfs_acl_tdb.c returns NT_STATUS_NOT_FOUND, not NT_STATUS_OBJECT_NAME_NOT_FOUND when it can't find a blob matching the file. Jeremy.
via b6fdecd... Fix bug #6837 - "Too many open files" when trying to access large number of files from Windows 7. Original patch by me fixed up with the correct open files number by jmaggard10 at hotmail.com. Jeremy.
via 5f60855... samba-spoolss: use spoolss_StringArray2 in spoolss_EnumPrinterKey.
via 292af4f... spoolss: add spoolss_StringArray2.
via 91bb065... s3-spoolss: move MAXDEVICENAME to spoolss idl.
via 53744f0... s3: Cope with older external libtdb
via ecb071c... Revert "s3-build: taise tdb version when building against system libtdb library."
via 8dda4ce... Ensure we don't see the xattr used to store NT security (visible when xattr_tdb is used). Allows make test to pass with acl_xattr.so prepended to the vfs modules. Jeremy.
via ae64978... s3: Fix smbd to correctly return INVALID_LEVEL on set_file_end_of_file_info for paths
via 4e8b6c5... s4 torture: Change oplock to use passthrough for exclusive3/batch11
via 5035a90... s4 torture: Update RAW-SFILEINFO-END-OF-FILE to test some additional corner cases
via 5a934fd... Revert "s4 torture: Allow onefs to be checked like samba3 and samba4"
via 66bf780... s4 torture: Change RAW-SFILEINFO-END-OF-FILE to check for share modes by default
via 2738e31... s4 torture: Move target macros to a common header instead of redefining them in multiple files
via 9d8867f... s3:build: fix detection of CTDB headers on systems without system-libtalloc
via 51b6e23... s3:build: fix the build when no external talloc and tdb are installed.
via 2d1bd87... s4:torture/raw/lock - Fix "discard const" warnings by introducing "discard_const_p"s
via 262d26d... s4:torture/nbt/wins - Add more casts
via 58a5e76... s4:torture/nbench/nbench - Add a cast before "str_list_make_shell"
via 8b44999... s4:torture/ldap/ldap_sort - Add some casts to suppress warnings
via 7be99d3... s4:schema - Make some more (result) variables const and fix up warnings with "discard_const_p"
via 012494b... util/util_strlist - add a call "const_str_list" for making "unconst" lists "const"
via 9ce7e9a... s4:kdc - Merged kdc_tcp_accept() and kpasswdd_tcp_accept().
via 0c89a6f... s4:kdc - Merged kdc_add_kdc_socket() and kdc_add_kpasswd_socket().
via bd17df7... s4 - Create default modules directory.
via c93fc3a... s4:kdc - Disable KDC port when it's set to 0.
via 183ea82... Merge commit 'origin/master' into abartlet-devel
via d58413d... On our way to Samba4 alpha10!
via 83c106e... s4-ldb: the '1' form of extended_dn search is easier to read
from ca2c645... Fix build of Samba4 from tarball generated by mkrelease.sh
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-stable
- Log -----------------------------------------------------------------
commit 100e249c79f945d7a27e473f2efe71331d0015ce
Author: Andrew Bartlett <abartlet at samba.org>
Date: Tue Dec 8 14:12:19 2009 +1100
This is alpha10
commit 193e40cd344b53aaaafb40556c20a3b45434bc0c
Author: Andrew Bartlett <abartlet at samba.org>
Date: Tue Dec 8 14:11:45 2009 +1100
A WHATSNEW for alpha10
-----------------------------------------------------------------------
Summary of changes:
WHATSNEW4.txt | 33 +-
.../smbdotconf/misc/directorynamecachesize.xml | 14 +
examples/VFS/skel_opaque.c | 8 +-
examples/VFS/skel_transparent.c | 15 +-
lib/talloc/talloc.c | 2 +-
lib/tdb/release-script.sh | 2 +-
lib/tdr/testsuite.c | 2 +-
lib/util/util.h | 5 +
lib/util/util_strlist.c | 9 +
librpc/gen_ndr/cli_spoolss.c | 38 +-
librpc/gen_ndr/cli_spoolss.h | 20 +-
librpc/gen_ndr/ndr_spoolss.c | 278 ++--
librpc/gen_ndr/ndr_spoolss.h | 18 +
librpc/gen_ndr/spoolss.h | 73 +-
librpc/gen_ndr/srv_spoolss.c | 12 +-
librpc/idl/spoolss.idl | 56 +-
librpc/ndr/ndr_spoolss_buf.c | 212 +++
librpc/ndr/ndr_spoolss_buf.h | 6 +
packaging/RHEL-CTDB/samba.spec.tmpl | 97 +-
source3/auth/auth_sam.c | 4 +-
source3/configure.in | 387 +++--
source3/include/local.h | 20 +-
source3/include/nt_printing.h | 2 -
source3/include/proto.h | 18 +-
source3/include/smb.h | 2 -
source3/lib/dbwrap_ctdb.c | 4 +-
source3/lib/gencache.c | 25 +
source3/lib/ldb/ldb_tdb/ldb_tdb.c | 2 +
source3/lib/secdesc.c | 20 +
source3/lib/system.c | 29 +-
source3/lib/tdb_validate.c | 11 +
source3/libads/ldap.c | 2 +-
source3/libsmb/samlogon_cache.c | 46 +-
source3/locking/brlock.c | 5 +
source3/locking/locking.c | 11 +-
source3/m4/aclocal.m4 | 57 +-
source3/modules/onefs_open.c | 11 +-
source3/modules/vfs_acl_common.c | 531 +++---
source3/modules/vfs_acl_tdb.c | 53 +-
source3/modules/vfs_acl_xattr.c | 36 +-
source3/modules/vfs_default.c | 45 +-
source3/param/loadparm.c | 18 +-
source3/printing/nt_printing.c | 302 +++-
source3/registry/reg_backend_printing.c | 28 +-
source3/rpc_client/cli_spoolss.c | 24 +-
source3/rpc_server/srv_spoolss_nt.c | 930 +++-------
source3/rpc_server/srv_winreg_nt.c | 128 +-
source3/rpc_server/srv_wkssvc_nt.c | 536 ++++++-
source3/rpcclient/cmd_spoolss.c | 23 +-
source3/rpcclient/cmd_wkssvc.c | 51 +
source3/script/tests/test_posix_s3.sh | 2 +-
source3/smbd/close.c | 260 +++-
source3/smbd/files.c | 2 -
source3/smbd/lanman.c | 50 +-
source3/smbd/open.c | 30 +-
source3/smbd/reply.c | 354 +---
source3/smbd/service.c | 2 +-
source3/smbd/smb2_tcon.c | 2 +-
source3/smbd/trans2.c | 42 +-
source3/utils/net_rpc_printer.c | 13 +-
source3/winbindd/winbindd_rpc.c | 10 +-
source4/Makefile | 4 +-
source4/VERSION | 2 +-
source4/dsdb/common/util.c | 67 +-
source4/dsdb/samdb/ldb_modules/operational.c | 116 +-
source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 5 +-
source4/dsdb/samdb/ldb_modules/show_deleted.c | 49 +-
source4/dsdb/schema/schema.h | 8 +-
source4/dsdb/schema/schema_inferiors.c | 117 +-
source4/dynconfig/config.mk | 1 -
source4/heimdal/lib/krb5/context.c | 4 +
source4/heimdal/lib/krb5/init_creds_pw.c | 1 +
source4/kdc/kdc.c | 147 +-
source4/lib/ldb/common/ldb_ldif.c | 2 +
source4/lib/ldb/common/ldb_match.c | 19 +
source4/lib/ldb/configure.ac | 2 +-
source4/lib/ldb/external/libtdb.m4 | 2 +-
source4/lib/ldb/include/ldb_module.h | 3 +
source4/lib/ldb/tests/python/ldap.py | 22 +
source4/lib/ldb/tools/cmdline.c | 2 +-
source4/lib/ldb/tools/ldbdel.c | 15 +
source4/libcli/raw/libcliraw.h | 1 +
source4/libcli/raw/rawnegotiate.c | 3 +
source4/libcli/raw/smb.h | 1 +
source4/libcli/smb2/util.c | 1 +
source4/min_versions.m4 | 4 +-
source4/ntvfs/posix/pvfs_resolve.c | 6 +-
source4/ntvfs/posix/pvfs_streams.c | 12 +-
source4/ntvfs/posix/vfs_posix.h | 4 +-
source4/rpc_server/drsuapi/getncchanges.c | 82 +-
source4/rpc_server/samr/dcesrv_samr.c | 6 +-
source4/scripting/devel/drs/unvampire_ad.sh | 7 +-
source4/selftest/config.mk | 1 +
source4/selftest/knownfail | 17 +-
source4/selftest/quick | 2 -
source4/selftest/skip | 1 +
source4/torture/basic/delete.c | 63 +
source4/torture/basic/denytest.c | 20 +
source4/torture/ldap/ldap_sort.c | 14 +-
source4/torture/nbench/nbench.c | 5 +-
source4/torture/nbt/wins.c | 18 +-
source4/torture/raw/acls.c | 968 ++++++++---
source4/torture/raw/lock.c | 347 ++++-
source4/torture/raw/lookuprate.c | 2 +-
source4/torture/raw/oplock.c | 190 ++-
source4/torture/raw/raw.c | 4 +-
source4/torture/raw/read.c | 36 +-
source4/torture/raw/rename.c | 32 +-
source4/torture/raw/search.c | 11 +-
source4/torture/raw/setfileinfo.c | 129 ++-
source4/torture/raw/streams.c | 572 ++++---
source4/torture/raw/write.c | 10 +
source4/torture/rpc/spoolss.c | 632 +++++--
source4/torture/rpc/spoolss_win.c | 28 +-
source4/torture/smb2/acls.c | 1875 ++++++++++++++++++++
source4/torture/smb2/config.mk | 1 +
source4/torture/smb2/create.c | 623 +++++--
source4/torture/smb2/lock.c | 373 ++++-
source4/torture/smb2/setinfo.c | 89 +-
source4/torture/smb2/smb2.c | 1 +
source4/torture/smb2/util.c | 104 ++-
source4/torture/smbtorture.c | 30 +-
source4/torture/smbtorture.h | 43 +
source4/torture/util.h | 11 +
source4/torture/util_smb.c | 46 +-
125 files changed, 8593 insertions(+), 3448 deletions(-)
create mode 100644 docs-xml/smbdotconf/misc/directorynamecachesize.xml
create mode 100644 source4/torture/smb2/acls.c
Changeset truncated at 500 lines:
diff --git a/WHATSNEW4.txt b/WHATSNEW4.txt
index 4513f22..75e2482 100644
--- a/WHATSNEW4.txt
+++ b/WHATSNEW4.txt
@@ -1,4 +1,4 @@
-What's new in Samba 4 alpha9
+What's new in Samba 4 alpha10
============================
Samba 4 is the ambitious next version of the Samba suite that is being
@@ -6,13 +6,13 @@ developed in parallel to the stable 3.0 series. The main emphasis in
this branch is support for the Active Directory logon protocols used
by Windows 2000 and above.
-Samba4 alpha9 follows on from the alpha release series we have been
+Samba4 alpha10 follows on from the alpha release series we have been
publishing since September 2007
WARNINGS
========
-Samba4 alpha9 is not a final Samba release. That is more a reference
+Samba4 alpha10 is not a final Samba release. That is more a reference
to Samba4's lack of the features we expect you will need than a
statement of code quality, but clearly it hasn't seen a broad
deployment yet. If you were to upgrade Samba3 (or indeed Windows) to
@@ -62,31 +62,12 @@ working on modules to map between AD-like behaviours and this backend.
We are aiming for Samba 4 to be powerful frontend to large
directories.
-CHANGES SINCE alpha8
+CHANGES SINCE alpha9
=====================
-In the time since Samba4 alpha8 was released in June 2009, Samba has
-continued to evolve, but you may particularly notice these areas
-(in no particular order):
-
- Samba4 now includes the full set of user interface strings (display Specifiers)
- required to have the Microsoft Management Console operate
-
- LDB (the core Samba4 database library) has again been reworked for
- better performance
-
- Replication between Samba4 and Active Directory domains using the
- native replication protocol (DRS) has been demonstrated.
-
- Access Control Lists (in nTSecurityDescriptor) are now set correctly
- on objects in the directory, based on the same rules as Windows 2008.
- (Searches and still use a simplistic administrator/not administrator
- criteria)
-
-These are just some of the user-visible highlights of the work done in
-the past few months. More details of the work done 'under the hood'
-can be found in our GIT history.
-
+Alpha9 was released last week, but in the time since the release we
+have found and fixed an important segfault, and improved the
+experimental DRS replication.
CHANGES
=======
diff --git a/docs-xml/smbdotconf/misc/directorynamecachesize.xml b/docs-xml/smbdotconf/misc/directorynamecachesize.xml
new file mode 100644
index 0000000..1064b7e
--- /dev/null
+++ b/docs-xml/smbdotconf/misc/directorynamecachesize.xml
@@ -0,0 +1,14 @@
+<samba:parameter name="directory name cache size"
+ context="S"
+ type="integer"
+ advanced="1"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>
+ This parameter specifies the the size of the directory name cache.
+ It will be needed to turn this off for *BSD systems.
+ </para>
+
+</description>
+<value type="default">100</value>
+</samba:parameter>
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 243621e..380b3b6 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -313,7 +313,7 @@ static bool skel_lock(vfs_handle_struct *handle, files_struct *fsp, int op, SMB_
return false;
}
-static int skel_kernel_flock(struct vfs_handle_struct *handle, struct files_struct *fsp, uint32 share_mode)
+static int skel_kernel_flock(struct vfs_handle_struct *handle, struct files_struct *fsp, uint32 share_mode, uint32 access_mask)
{
errno = ENOSYS;
return -1;
@@ -454,8 +454,10 @@ static void skel_strict_unlock(struct vfs_handle_struct *handle,
}
static NTSTATUS skel_translate_name(struct vfs_handle_struct *handle,
- char **mapped_name,
- enum vfs_translate_direction direction)
+ const char *mapped_name,
+ enum vfs_translate_direction direction,
+ TALLOC_CTX *mem_ctx,
+ char **pmapped_name)
{
return NT_STATUS_NOT_IMPLEMENTED;
}
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index c52b057..27363ff 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -295,9 +295,9 @@ static bool skel_lock(vfs_handle_struct *handle, files_struct *fsp, int op, SMB_
return SMB_VFS_NEXT_LOCK(handle, fsp, op, offset, count, type);
}
-static int skel_kernel_flock(struct vfs_handle_struct *handle, struct files_struct *fsp, uint32 share_mode)
+static int skel_kernel_flock(struct vfs_handle_struct *handle, struct files_struct *fsp, uint32 share_mode, uint32 access_mask)
{
- return SMB_VFS_NEXT_KERNEL_FLOCK(handle, fsp, share_mode);
+ return SMB_VFS_NEXT_KERNEL_FLOCK(handle, fsp, share_mode, access_mask);
}
static int skel_linux_setlease(struct vfs_handle_struct *handle, struct files_struct *fsp, int leasetype)
@@ -443,12 +443,13 @@ static void skel_strict_unlock(struct vfs_handle_struct *handle,
}
static NTSTATUS skel_translate_name(struct vfs_handle_struct *handle,
- char **mapped_name,
- enum vfs_translate_direction direction)
+ const char *mapped_name,
+ enum vfs_translate_direction direction,
+ TALLOC_CTX *mem_ctx,
+ char **pmapped_name)
{
- return SMB_VFS_NEXT_TRANSLATE_NAME(handle,
- mapped_name,
- direction);
+ return SMB_VFS_NEXT_TRANSLATE_NAME(handle, mapped_name, direction,
+ mem_ctx, pmapped_name);
}
static NTSTATUS skel_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c
index 7beda4b..f7b1ac3 100644
--- a/lib/talloc/talloc.c
+++ b/lib/talloc/talloc.c
@@ -1184,7 +1184,7 @@ void *_talloc_realloc(const void *context, void *ptr, size_t size, const char *n
#if ALWAYS_REALLOC
new_ptr = malloc(size + TC_HDR_SIZE);
if (new_ptr) {
- memcpy(new_ptr, tc, tc->size + TC_HDR_SIZE);
+ memcpy(new_ptr, tc, MIN(tc->size, size) + TC_HDR_SIZE);
free(tc);
}
#else
diff --git a/lib/tdb/release-script.sh b/lib/tdb/release-script.sh
index ddeb753..273ca30 100755
--- a/lib/tdb/release-script.sh
+++ b/lib/tdb/release-script.sh
@@ -13,7 +13,7 @@ fi
git clean -f -x -d lib/tdb
git clean -f -x -d lib/replace
-curbranch=`git-branch |grep "^*" | tr -d "* "`
+curbranch=`git branch |grep "^*" | tr -d "* "`
version=$1
strver=`echo ${version} | tr "." "-"`
diff --git a/lib/tdr/testsuite.c b/lib/tdr/testsuite.c
index 36bb164..ca76b52 100644
--- a/lib/tdr/testsuite.c
+++ b/lib/tdr/testsuite.c
@@ -154,7 +154,7 @@ static bool test_push_charset(struct torture_context *tctx)
torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, 4, 1, CH_UTF8),
"push failed");
torture_assert_int_equal(tctx, 4, tdr->data.length, "offset invalid");
- torture_assert(tctx, strcmp("bloe", (const char *)tdr->data.data) == 0, "right string push");
+ torture_assert(tctx, strncmp("bloe", (const char *)tdr->data.data, 4) == 0, "right string push");
torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, -1, 1, CH_UTF8),
"push failed");
diff --git a/lib/util/util.h b/lib/util/util.h
index e7ea0ba..729190a 100644
--- a/lib/util/util.h
+++ b/lib/util/util.h
@@ -535,6 +535,11 @@ _PUBLIC_ const char **str_list_add_const(const char **list, const char *s);
_PUBLIC_ const char **str_list_copy_const(TALLOC_CTX *mem_ctx,
const char **list);
+/**
+ * Needed for making an "unconst" list "const"
+ */
+_PUBLIC_ const char **const_str_list(char **list);
+
/* The following definitions come from lib/util/util_file.c */
diff --git a/lib/util/util_strlist.c b/lib/util/util_strlist.c
index 71998b9..6d1a695 100644
--- a/lib/util/util_strlist.c
+++ b/lib/util/util_strlist.c
@@ -486,3 +486,12 @@ _PUBLIC_ const char **str_list_copy_const(TALLOC_CTX *mem_ctx,
ret[i] = NULL;
return ret;
}
+
+/**
+ * Needed for making an "unconst" list "const"
+ */
+_PUBLIC_ const char **const_str_list(char **list)
+{
+ return (const char **)list;
+}
+
diff --git a/librpc/gen_ndr/cli_spoolss.c b/librpc/gen_ndr/cli_spoolss.c
index aba70f2..e63a781 100644
--- a/librpc/gen_ndr/cli_spoolss.c
+++ b/librpc/gen_ndr/cli_spoolss.c
@@ -11710,8 +11710,8 @@ struct tevent_req *rpccli_spoolss_SetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
const char *_key_name /* [in] [charset(UTF16)] */,
const char *_value_name /* [in] [charset(UTF16)] */,
enum winreg_Type _type /* [in] */,
- uint8_t *_buffer /* [in] [ref,size_is(offered)] */,
- uint32_t _offered /* [in] */)
+ union spoolss_PrinterData _data /* [in] [subcontext(4),switch_is(type)] */,
+ uint32_t __offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */)
{
struct tevent_req *req;
struct rpccli_spoolss_SetPrinterDataEx_state *state;
@@ -11730,8 +11730,8 @@ struct tevent_req *rpccli_spoolss_SetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
state->orig.in.key_name = _key_name;
state->orig.in.value_name = _value_name;
state->orig.in.type = _type;
- state->orig.in.buffer = _buffer;
- state->orig.in.offered = _offered;
+ state->orig.in.data = _data;
+ state->orig.in._offered = __offered;
/* Out parameters */
@@ -11814,8 +11814,8 @@ NTSTATUS rpccli_spoolss_SetPrinterDataEx(struct rpc_pipe_client *cli,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
enum winreg_Type type /* [in] */,
- uint8_t *buffer /* [in] [ref,size_is(offered)] */,
- uint32_t offered /* [in] */,
+ union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
+ uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
WERROR *werror)
{
struct spoolss_SetPrinterDataEx r;
@@ -11826,8 +11826,8 @@ NTSTATUS rpccli_spoolss_SetPrinterDataEx(struct rpc_pipe_client *cli,
r.in.key_name = key_name;
r.in.value_name = value_name;
r.in.type = type;
- r.in.buffer = buffer;
- r.in.offered = offered;
+ r.in.data = data;
+ r.in._offered = _offered;
status = cli->dispatch(cli,
mem_ctx,
@@ -11868,9 +11868,9 @@ struct tevent_req *rpccli_spoolss_GetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
struct policy_handle *_handle /* [in] [ref] */,
const char *_key_name /* [in] [charset(UTF16)] */,
const char *_value_name /* [in] [charset(UTF16)] */,
- enum winreg_Type *_type /* [out] [ref] */,
- uint8_t *_buffer /* [out] [ref,size_is(offered)] */,
uint32_t _offered /* [in] */,
+ enum winreg_Type *_type /* [out] [ref] */,
+ union spoolss_PrinterData *_data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
uint32_t *_needed /* [out] [ref] */)
{
struct tevent_req *req;
@@ -11893,7 +11893,7 @@ struct tevent_req *rpccli_spoolss_GetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
/* Out parameters */
state->orig.out.type = _type;
- state->orig.out.buffer = _buffer;
+ state->orig.out.data = _data;
state->orig.out.needed = _needed;
/* Result */
@@ -11943,7 +11943,7 @@ static void rpccli_spoolss_GetPrinterDataEx_done(struct tevent_req *subreq)
/* Copy out parameters */
*state->orig.out.type = *state->tmp.out.type;
- memcpy(state->orig.out.buffer, state->tmp.out.buffer, (state->tmp.in.offered) * sizeof(*state->orig.out.buffer));
+ *state->orig.out.data = *state->tmp.out.data;
*state->orig.out.needed = *state->tmp.out.needed;
/* Copy result */
@@ -11983,9 +11983,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
- enum winreg_Type *type /* [out] [ref] */,
- uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
+ enum winreg_Type *type /* [out] [ref] */,
+ union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
@@ -12014,7 +12014,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
/* Return variables */
*type = *r.out.type;
- memcpy(buffer, r.out.buffer, (r.in.offered) * sizeof(*buffer));
+ *data = *r.out.data;
*needed = *r.out.needed;
/* Return result */
@@ -12207,7 +12207,7 @@ struct tevent_req *rpccli_spoolss_EnumPrinterKey_send(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *cli,
struct policy_handle *_handle /* [in] [ref] */,
const char *_key_name /* [in] [charset(UTF16)] */,
- uint16_t *_key_buffer /* [out] [ref,size_is(offered/2)] */,
+ struct spoolss_StringArray2 *_key_buffer /* [out] [ref] */,
uint32_t _offered /* [in] */,
uint32_t *_needed /* [out] [ref] */)
{
@@ -12278,7 +12278,7 @@ static void rpccli_spoolss_EnumPrinterKey_done(struct tevent_req *subreq)
}
/* Copy out parameters */
- memcpy(state->orig.out.key_buffer, state->tmp.out.key_buffer, (state->tmp.in.offered / 2) * sizeof(*state->orig.out.key_buffer));
+ *state->orig.out.key_buffer = *state->tmp.out.key_buffer;
*state->orig.out.needed = *state->tmp.out.needed;
/* Copy result */
@@ -12317,7 +12317,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
- uint16_t *key_buffer /* [out] [ref,size_is(offered/2)] */,
+ struct spoolss_StringArray2 *key_buffer /* [out] [ref] */,
uint32_t offered /* [in] */,
uint32_t *needed /* [out] [ref] */,
WERROR *werror)
@@ -12345,7 +12345,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(key_buffer, r.out.key_buffer, (r.in.offered / 2) * sizeof(*key_buffer));
+ *key_buffer = *r.out.key_buffer;
*needed = *r.out.needed;
/* Return result */
diff --git a/librpc/gen_ndr/cli_spoolss.h b/librpc/gen_ndr/cli_spoolss.h
index 943cbce..f2c1353 100644
--- a/librpc/gen_ndr/cli_spoolss.h
+++ b/librpc/gen_ndr/cli_spoolss.h
@@ -1199,8 +1199,8 @@ struct tevent_req *rpccli_spoolss_SetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
const char *_key_name /* [in] [charset(UTF16)] */,
const char *_value_name /* [in] [charset(UTF16)] */,
enum winreg_Type _type /* [in] */,
- uint8_t *_buffer /* [in] [ref,size_is(offered)] */,
- uint32_t _offered /* [in] */);
+ union spoolss_PrinterData _data /* [in] [subcontext(4),switch_is(type)] */,
+ uint32_t __offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */);
NTSTATUS rpccli_spoolss_SetPrinterDataEx_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result);
@@ -1210,8 +1210,8 @@ NTSTATUS rpccli_spoolss_SetPrinterDataEx(struct rpc_pipe_client *cli,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
enum winreg_Type type /* [in] */,
- uint8_t *buffer /* [in] [ref,size_is(offered)] */,
- uint32_t offered /* [in] */,
+ union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
+ uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
WERROR *werror);
struct tevent_req *rpccli_spoolss_GetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
@@ -1219,9 +1219,9 @@ struct tevent_req *rpccli_spoolss_GetPrinterDataEx_send(TALLOC_CTX *mem_ctx,
struct policy_handle *_handle /* [in] [ref] */,
const char *_key_name /* [in] [charset(UTF16)] */,
const char *_value_name /* [in] [charset(UTF16)] */,
- enum winreg_Type *_type /* [out] [ref] */,
- uint8_t *_buffer /* [out] [ref,size_is(offered)] */,
uint32_t _offered /* [in] */,
+ enum winreg_Type *_type /* [out] [ref] */,
+ union spoolss_PrinterData *_data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
uint32_t *_needed /* [out] [ref] */);
NTSTATUS rpccli_spoolss_GetPrinterDataEx_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
@@ -1231,9 +1231,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
- enum winreg_Type *type /* [out] [ref] */,
- uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
+ enum winreg_Type *type /* [out] [ref] */,
+ union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
uint32_t *needed /* [out] [ref] */,
WERROR *werror);
struct tevent_req *rpccli_spoolss_EnumPrinterDataEx_send(TALLOC_CTX *mem_ctx,
@@ -1262,7 +1262,7 @@ struct tevent_req *rpccli_spoolss_EnumPrinterKey_send(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *cli,
struct policy_handle *_handle /* [in] [ref] */,
const char *_key_name /* [in] [charset(UTF16)] */,
- uint16_t *_key_buffer /* [out] [ref,size_is(offered/2)] */,
+ struct spoolss_StringArray2 *_key_buffer /* [out] [ref] */,
uint32_t _offered /* [in] */,
uint32_t *_needed /* [out] [ref] */);
NTSTATUS rpccli_spoolss_EnumPrinterKey_recv(struct tevent_req *req,
@@ -1272,7 +1272,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
- uint16_t *key_buffer /* [out] [ref,size_is(offered/2)] */,
+ struct spoolss_StringArray2 *key_buffer /* [out] [ref] */,
uint32_t offered /* [in] */,
uint32_t *needed /* [out] [ref] */,
WERROR *werror);
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index a578ed8..9a72dd3 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -1051,7 +1051,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
- NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
@@ -1070,7 +1070,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
- NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
@@ -1107,7 +1107,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
@@ -1126,7 +1126,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
@@ -8125,6 +8125,15 @@ _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *n
ndr->depth--;
}
+_PUBLIC_ void ndr_print_spoolss_StringArray2(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray2 *r)
+{
+ ndr_print_struct(ndr, name, "spoolss_StringArray2");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
+ ndr_print_string_array(ndr, "string", r->string);
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
{
if (ndr_flags & NDR_SCALARS) {
@@ -13183,6 +13192,12 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in
ndr->flags = _flags_save_string;
}
{
+ uint32_t _flags_save_string_array = ndr->flags;
+ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+ NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
+ ndr->flags = _flags_save_string_array;
+ }
+ {
uint32_t _flags_save_string = ndr->flags;
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
@@ -13197,12 +13212,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, in
{
uint32_t _flags_save_string_array = ndr->flags;
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
- NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
- ndr->flags = _flags_save_string_array;
- }
- {
- uint32_t _flags_save_string_array = ndr->flags;
- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
ndr->flags = _flags_save_string_array;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list