The branch, v4-1-stable has been updated
       via  9da023a WHATSNEW: Add release notes for Samba 4.1.7.
       via  dadd863 s3: messages: Implement cleanup of dead records.
       via  bdd6da6 s3:libsmb: SMBC_getatr() if no method worked, try all 
methods again on next attempt
       via  4aa742a client: use cli_qpathinfo3 for allinfo
       via  0874ff2 s3:libsmb: cli_qpathinfo3 use cli_qpathinfo2 for smb2
       via  e98e835 client: remove a write only variable
       via  66115ff s3:libsmb: SMBC_getatr use pathinfo3 for second try
       via  0bea2d2 s3:libsmb: SMBC_getatr do not let ino undefined on success
       via  d15c014 s3:libsmb: SMBC_getatr try pathinfo2 only once
       via  976030c s3:libsmb: add function cli_qpathinfo3()
       via  f76511c s3:libsmb: add function cli_qpathinfo_standard()
       via  1f4b445 s3:libsmb: pass creation or birth time in 
cli_qpathinfo_basic()
       via  b1c6431 rpcclient: abort shadow-copy set on commit failure
       via  400e4f0 rpcclient: append a trailing slash to FSRVP request UNCs
       via  c9703c9 s3: smbd: Ensure we always go via getgroups_unix_user() 
when creating an NT token.
       via  34fcb4e lsa.idl: define lsa.ForestTrustCollisionInfo and 
ForestTrustCollisionRecord as public structs
       via  3687ab1 s3-rpc_server: Fix handling of fragmented rpc requests.
       via  f2592b6 s3:rpc_server: minor refactoring of process_request_pdu()
       via  f3f0f62 pidl-waf: Only install Yapp::Driver if it is not available.
       via  c7a35ab pidl-waf: Check for system perl(Parse::Yapp::Driver).
       via  7d66a2c pidl-waf: Add a function to check for a system perl module.
       via  fadd326 pidl-waf: Do not glob to install pidl modules.
       via  3957564 pidl-waf: Install pidl modules to the perl vendorlib 
directory.
       via  7876b4b pidl-waf: Remove unused variable pidl_src.
       via  fe7d930 autobuild: Set perl vendorlib direcotry.
       via  b1d86ee buildtools: Add perl vendorlib configure option.
       via  4ba0f7a buildtools: Rename perl vendorarch configure option.
       via  b53c122 dns: Extend tests for records with another type
       via  5e62b6e bug #10471: Don't respond with NXDOMAIN to records that 
exist with another type
       via  8745204 s3: smbd: Fileserving share access checks.
       via  032ab0b smbreadline: switch to new-style readline typedef
       via  d60f58d s4:lib/socket: simplify iface_list_wildcard() and its 
callers
       via  0644125 s4:lib/socket: use the same logic in iface_list_wildcard() 
as in smbd
       via  8d256c8 s3:smbd: s/BUFFER_SIZE/LARGE_WRITEX_BUFFER_SIZE
       via  3ada2b3 s3:smbd: fix the maxentries calculation depending on the 
max_send.
       via  f5f5e5b s3:smbd: simplify maxentries calculation in reply_search()
       via  57f6afc s3:smbd: fix the read numtoread calculation depending on 
the max_send.
       via  6deb0f2 s3:smbd: fix the lockread numtoread calculation depending 
on the max_send.
       via  434e211 s3:smbd: pass the final numtoread reply_outbuf() for the 
lockread reply.
       via  49197c1 s3:smbd: fix lockread numtoread calculation to match 
reply_outbuf() arguments.
       via  9404bd6 s3:smbd: take less than SMB_BUFFER_SIZE_MIN ('500') as 
header overhead in ipc.c
       via  39af4a7 s3:smbd: reject a MaxBufferSize < SMB_BUFFER_SIZE_MIN (500) 
in a session setup request
       via  8724f6c s3:smbd: use sconn->smb1.sessions.max_send = 
SMB_BUFFER_SIZE_MAX
       via  047f881 s3:smbd: use SMB_BUFFER_SIZE_MIN/MAX to limit lp_max_xmit()
       via  08aa53b s3:include: let CLI_BUFFER_SIZE be an alias of 
SMB_BUFFER_SIZE_MAX
       via  ba91a66 libcli/smb: add SMB_BUFFER_SIZE_MIN/MAX defines
       via  3a36bf7 s3:param: avoid using BUFFER_SIZE to limit the 
lp_min_receive_file_size()
       via  2092577 s3:client: only limit the buffer by the given length 'n'
       via  3528b52 s3:torture: use CLI_BUFFER_SIZE instead of BUFFER_SIZE
       via  8733ce1 s3:utils/smbfilter: use a local variable for the packet 
buffer
       via  3b6d207 s4: smbtorture: Add a proper change_notify going async 
followed by tdis test.
       via  4df79f0 s4: smbtorture: Update the torture_smb2_notify_ulogoff test 
to demonstrate the problem.
       via  91dea25 s3:smb2_tcon: cancel and wait for pending requests on tdis
       via  e039346 s3:smb2_sesssetup: cancel and wait for pending requests on 
logoff
       via  3f4af7f s3:smb2_tcon: split smbd_smb2_tdis into an async 
*_send/recv pair.
       via  0ca9ce8 s3:smb2_sesssetup: split smbd_smb2_logoff into an async 
*_send/recv pair.
       via  ad5d9c3 s3:smb2_lock: return RANGE_NOT_LOCKED instead of CANCELLED 
for logoff and tdis
       via  2ded846 s3:smb2_lock: fix whitespaces/tabs in 
smbd_smb2_lock_cancel()
       via  1a4e5cf s4:torture/smb2: accept NT_STATUS_RANGE_NOT_LOCKED after 
smb2_logoff/tdis
       via  a9703c9 s3: lib: Back-port tevent_queue_wait_send/recv -> 
smbd_tevent_queue_wait_send/recv
       via  c77fbd2 tevent: fix crash bug in tevent_queue_immediate_trigger()
       via  71eade3 Merge tag 'samba-4.1.6' into v4-1-test
       via  1cd273e VERSION: Bump version number up to 4.1.7.
       via  5d724b9 VERSION: Disable git snapshots for the 4.1.6 release.
       via  31d0028 WHATSNEW: Add release notes for Samba 4.1.6.
       via  0508f04 CVE-2013-6442: s3:smbcacls - ensure we don't lose an 
existing ACL when setting owner or group owner.
       via  b6f2145 CVE-2013-4496:Revert remainder of 
ce895609b04380bfc41e4f8fddc84bd2f9324340
       via  1313f96 CVE-2013-4496:samr: Remove ChangePasswordUser
       via  cb9fdd3 CVE-2013-4496:s3:auth: fix memory leak in the 
ACCOUNT_LOCKED_OUT case.
       via  0f243b2 CVE-2013-4496:s3-samr: Block attempts to crack passwords 
via repeated password changes
       via  705595f s3-spoolssd: Don't register spoolssd if epmd is not running.
       via  51241bb s3-vfs: Fix stream_depot vfs module on btrfs.
       via  70455f0 s3:winbindd: avoid directly asking a trusted domain in 
wb_lookupsids*()
       via  64bb989 s3:winbindd: fix _wbint_LookupSids() on error
       via  0acd76f pidl:NDR/Client: fix dcerpc_function() with [out,ref] 
pointers
       via  3d5ae09 s3: smbd: Ensure brl_get_locks_internal() always returns a 
valid struct byte_range_lock even if there are no locks.
       via  c62eec5 doc: add "spoolss: architecture" parameter usage
       via  d94e563 s3-printing: Fix obvious memory leak in 
printer_list_get_printer().
       via  440052f rpc_client: retry open on STATUS_PIPE_NOT_AVAILABLE
       via  729b124 s3:smbd: avoid invalid lock_order panic triggered by 
"CTDB_SRVID_RELEASE_IP"
       via  cd17ba7 s3:lib/ctdbd_conn: let release_ip_handler return bool
       via  2942419 s3:smbd: maintain smbd_server_connection->status
       via  540cfe1 s3:smbd: simplify exit_server_common()
       via  7318632 s3: ldap client can return NT_STATUS_OK when an error 
occurs in a paged search.
       via  ad1dac1 waf: improve iconv checks
       via  f2774ce s3:libsmb: call smbXcli_tcon_set_fs_attributes() directly
       via  082c5ea s3:libsmb: remove unused cli_state->case_sensitive
       via  2acadbb s3:libsmb: remove unused cli_state->dfsroot
       via  ee8089b s3:libsmb: add SMB2/3 support to cli_dfs_get_referral()
       via  c35d8a3 s3/libsmb: make use of smbXcli_tcon_is_dfs_share()
       via  e55b6fb s3/libsmb: Use smbXcli_conn_dfs_supported instead of test 
on CAP_DFS
       via  e5b0378 s3:libsmb: don't pass down FLAG_CASELESS_PATHNAMES and 
FLAGS2_DFS_PATHNAMES anymore
       via  75acb84 s3:libsmb: call smbXcli_tcon_{get,set}_fs_attributes() from 
cli_set_case_sensitive()
       via  e5b7647 libcli/smb: add SMB2_HDR_FLAG_DFS for SMB2 Create 
operations on dfs shares
       via  66de913 libcli/smb: add FLAG_CASELESS_PATHNAMES based on 
FILE_CASE_SENSITIVE_SEARCH to smb1 requests
       via  c711e5b libcli/smb: move Filesystem Attributes defines to 
smb_constants.h
       via  748b205 libcli/smb: add FLAGS2_DFS_PATHNAMES for SMB1 operations 
against dfs shares
       via  18d7628 libcli/smb: add smbXcli_tcon_{set,get}_fs_attributes()
       via  27bad7d libcli/smb: add smbXcli_tcon_is_dfs_share()
       via  2bd871c libcli/smb: Introduce smbXcli_conn_dfs_supported
       via  26f03f1 s3:libsmb: make use of smb1cli_tcon_set_values()
       via  3b0e363 s3/libsmb: Use smbXcli_conn_use_unicode instead of smb1 
specific test
       via  195a64c heimdal_build: only enable libintl functions if everything 
was found
       via  bbbeed6 waf:lib/replace fix iconv checks on HP/UX
       via  8a0b5a4 waf:lib/replace gettext configure checks
       via  57df0d3 waf:lib/replace fix gettext detection
       via  7a64fb0 waf:lib/replace change detection of gettext
       via  05f917c waf:lib/replace fix up libintl related checks
       via  540da46 waf:lib/replace correct detection of libiconv
       via  ec1dacc s3: printing: Fix problem with server taking too long to 
respond to a MSG_PRINTER_DRVUPGRADE message.
       via  ce98b19 librpc/nbt: increase MAX_COMPONENTS limit for nbt_names.
       via  09e750b dfs: always call create_conn_struct with root privileges
       via  629e95e VERSION: Bump version number up to 4.1.6...
      from  48966b6 VERSION: Disable git snapshots for the 4.1.6 release.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-1-stable


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                            |    2 +-
 WHATSNEW.txt                                       |  117 ++++++++++++-
 buildtools/wafadmin/Tools/perl.py                  |   23 ++-
 buildtools/wafsamba/wscript                        |    3 +-
 .../smbdotconf/printing/spoolssarchitecture.xml    |   15 ++
 lib/replace/wscript                                |   30 +++-
 lib/tevent/tevent_queue.c                          |    4 +
 libcli/smb/smb2cli_create.c                        |   10 +-
 libcli/smb/smbXcli_base.c                          |   62 +++++++
 libcli/smb/smbXcli_base.h                          |    6 +
 libcli/smb/smb_constants.h                         |   27 +++
 libcli/smbreadline/smbreadline.c                   |    2 +-
 librpc/idl/lsa.idl                                 |    4 +-
 librpc/ndr/ndr_nbt.c                               |    2 +-
 pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm           |   14 ++
 pidl/lib/wscript_build                             |   35 ++++-
 pidl/wscript                                       |   30 +++-
 python/samba/tests/dns.py                          |   30 ++++
 script/autobuild.py                                |    7 +-
 source3/auth/token_util.c                          |  101 +++++++++++
 source3/build/charset.py                           |    6 +
 source3/client/client.c                            |    9 +-
 source3/include/client.h                           |    5 +-
 source3/include/ctdbd_conn.h                       |    2 +-
 source3/include/libsmb_internal.h                  |    1 +
 source3/include/messages.h                         |    6 +
 source3/include/smb.h                              |   23 +---
 source3/lib/ctdbd_conn.c                           |   36 ++++-
 source3/lib/messages.c                             |   17 ++
 source3/lib/messages_local.c                       |   38 ++++
 .../lib/smbd_tevent_queue.c                        |   59 ++++---
 .../kerberos.h => source3/lib/smbd_tevent_queue.h  |   31 ++--
 source3/libads/ldap.c                              |   11 +-
 source3/libsmb/async_smb.c                         |   22 ---
 source3/libsmb/cliconnect.c                        |   25 ++-
 source3/libsmb/clidfs.c                            |   95 ++++++++---
 source3/libsmb/clientgen.c                         |   26 +++-
 source3/libsmb/clirap.c                            |  110 ++++++++++++
 source3/libsmb/clirap.h                            |   11 ++
 source3/libsmb/clitrans.c                          |   21 ---
 source3/libsmb/libsmb_file.c                       |   27 +++-
 source3/libsmb/libsmb_server.c                     |   15 +-
 source3/libsmb/libsmb_stat.c                       |   11 +-
 source3/locking/brlock.c                           |   34 +++--
 source3/modules/vfs_streams_depot.c                |   10 +-
 source3/param/loadparm.c                           |    2 +-
 source3/printing/nt_printing.c                     |   29 +++-
 source3/printing/printer_list.c                    |    1 +
 source3/printing/queue_process.c                   |    6 +
 source3/printing/spoolssd.c                        |   39 +++--
 source3/rpc_client/rpc_transport_np.c              |   57 ++++++-
 source3/rpc_server/spoolss/srv_spoolss_nt.c        |    1 +
 source3/rpc_server/srv_pipe.c                      |   40 ++---
 source3/rpcclient/cmd_fss.c                        |   57 +++++-
 source3/smbd/globals.h                             |    1 +
 source3/smbd/ipc.c                                 |   10 +-
 source3/smbd/msdfs.c                               |   31 ++++-
 source3/smbd/process.c                             |   83 ++++++++-
 source3/smbd/reply.c                               |   54 +++---
 source3/smbd/server.c                              |    7 +
 source3/smbd/server_exit.c                         |   17 ++-
 source3/smbd/service.c                             |   12 +-
 source3/smbd/sesssetup.c                           |   19 ++-
 source3/smbd/smb2_lock.c                           |   42 ++++--
 source3/smbd/smb2_server.c                         |   16 ++
 source3/smbd/smb2_sesssetup.c                      |  183 ++++++++++++++++++--
 source3/smbd/smb2_tcon.c                           |  180 ++++++++++++++++++--
 source3/torture/torture.c                          |    2 +-
 source3/utils/smbfilter.c                          |    2 +-
 source3/winbindd/wb_lookupsids.c                   |    2 +-
 source3/winbindd/winbindd_dual_srv.c               |    8 +-
 source3/wscript_build                              |    1 +
 source4/cldap_server/cldap_server.c                |    2 +-
 source4/dns_server/dns_query.c                     |   14 +-
 source4/dns_server/dns_server.c                    |    8 +-
 source4/heimdal_build/config.h                     |    3 +-
 source4/kdc/kdc.c                                  |    2 +-
 source4/ldap_server/ldap_server.c                  |    4 +-
 source4/lib/socket/interface.c                     |   26 +---
 source4/libcli/raw/smb.h                           |   14 --
 source4/rpc_server/dcerpc_server.c                 |    4 +-
 source4/smb_server/service_smb.c                   |    4 +-
 source4/torture/smb2/lock.c                        |   24 ++--
 source4/torture/smb2/notify.c                      |   88 +++++++++-
 source4/web_server/web_server.c                    |    4 +-
 85 files changed, 1824 insertions(+), 450 deletions(-)
 create mode 100644 docs-xml/smbdotconf/printing/spoolssarchitecture.xml
 copy lib/tevent/tevent_wakeup.c => source3/lib/smbd_tevent_queue.c (53%)
 copy lib/replace/system/kerberos.h => source3/lib/smbd_tevent_queue.h (61%)


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index 4c9eba6..3e45362 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=1
-SAMBA_VERSION_RELEASE=6
+SAMBA_VERSION_RELEASE=7
 
 ########################################################
 # If a official release has a serious bug              #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index defe3cb..131cab6 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,117 @@
                    =============================
+                   Release Notes for Samba 4.1.7
+                           April 17, 2014
+                   =============================
+
+
+This is the latest stable release of Samba 4.1.
+
+
+Changes since 4.1.6:
+--------------------
+
+o   Jeremy Allison <j...@samba.org>
+    * BUG 9878: Make "force user" work as expected.
+    * BUG 9942: Fix problem with server taking too long to respond to a
+      MSG_PRINTER_DRVUPGRADE message.
+    * BUG 9993: s3-printing: Fix obvious memory leak in
+      printer_list_get_printer().
+    * BUG 10344: SessionLogoff on a signed connection with an outstanding 
notify
+      request crashes smbd.
+    * BUG 10431: Fix STATUS_NO_MEMORY response from Query File Posix Lock 
request.
+    * BUG 10508: smbd: Correctly add remote users into local groups.
+    * BUG 10534: Cleanup messages.tdb record after unclean smbd shutdown.
+
+
+o   Christian Ambach <a...@samba.org>
+    * BUG 9911: Fix build on AIX with IBM XL C/C++ (gettext detection issues).
+    * BUG 10308: Fix String Conversion Errors with Samba 4.1.0 Build on AIX 
7.1.
+
+
+o   Gregor Beck <gb...@sernet.de>
+    * BUG 10230: Make (lib)smbclient work with NetApp.
+    * BUG 10458: Fix 'wbinfo -i' with one-way trust.
+    * s3:rpc_server: Minor refactoring of process_request_pdu().
+
+
+o   Kai Blin <k...@samba.org>
+    * BUG 10471: Don't respond with NXDOMAIN to records that exist with another
+      type.
+
+
+o   Alexander Bokovoy <a...@samba.org>
+    * BUG 10504: lsa.idl: Define lsa.ForestTrustCollisionInfo and
+      ForestTrustCollisionRecord as public structs.
+
+
+o   Günther Deschner <g...@samba.org>
+    * BUG 10439: Increase max netbios name components.
+
+
+o   David Disseldorp <dd...@samba.org>
+    * BUG 10188: doc: Add "spoolss: architecture" parameter usage.
+    * BUG 10484: Initial FSRVP rpcclient requests fail with
+      NT_STATUS_PIPE_NOT_AVAILABLE.
+    * BUG 10521: rpcclient FSRVP request UNCs should include a trailing
+      backslash.
+
+
+o   Daniel Liberman <danie...@gmail.com>
+    * BUG 10387: 'net ads search' on high latency networks can return a partial
+      list with no error indication.
+
+
+o   Stefan Metzmacher <me...@samba.org>
+    * BUG 10200: Make 'smbclient' support DFS shares with SMB2/3.
+    * BUG 10344: SessionLogoff on a signed connection with an outstanding 
notify
+      request crashes smbd.
+    * BUG 10422: max xmit > 64kb leads to segmentation fault.
+    * BUG 10444: smbd_server_connection_terminate("CTDB_SRVID_RELEASE_IP")
+      panics from within ctdbd_migrate() with invalid lock_order.
+    * BUG 10464: samba4 services not binding on IPv6 addresses causing
+      connection delays.
+
+
+o   Garming Sam <garm...@catalyst.net.nz>
+    * BUG 10378: dfs: Always call create_conn_struct with root privileges.
+
+
+o   Andreas Schneider <a...@cryptomilk.org>
+    * BUG 10467: s3-vfs: Fix stream_depot vfs module on btrfs.
+    * BUG 10472: pidl: waf should have an option for the dir to install perl
+      files and do not glob.
+    * BUG 10474: s3-spoolssd: Don't register spoolssd if epmd is not running.
+    * BUG 10481: s3-rpc_server: Fix handling of fragmented rpc requests.
+
+
+o   Gustavo Zacarias <gust...@zacarias.com.ar>
+    * BUG 10506: Make 'smbreadline' build with readline 6.3.
+
+
+#######################################
+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 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.1.6
                            March 11, 2014
                    =============================
@@ -61,8 +174,8 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
+
 
                    =============================
                    Release Notes for Samba 4.1.5
diff --git a/buildtools/wafadmin/Tools/perl.py 
b/buildtools/wafadmin/Tools/perl.py
index a6787a8..8f13e28 100644
--- a/buildtools/wafadmin/Tools/perl.py
+++ b/buildtools/wafadmin/Tools/perl.py
@@ -98,12 +98,27 @@ def check_perl_ext_devel(conf):
        conf.env.EXTUTILS_TYPEMAP  = read_out('print 
"$Config{privlib}/ExtUtils/typemap"')
        conf.env.perlext_PATTERN   = '%s.' + read_out('print $Config{dlext}')[0]
 
-       if getattr(Options.options, 'perlarchdir', None):
-               conf.env.ARCHDIR_PERL = Options.options.perlarchdir
+       if getattr(Options.options, 'perl_vendorarch_dir', None):
+               conf.env.PERL_VENDORARCH_DIR = 
Options.options.perl_vendorarch_dir
        else:
-               conf.env.ARCHDIR_PERL = read_out('print $Config{sitearch}')[0]
+               conf.env.PERL_VENDORARCH_DIR = read_out('print 
$Config{vendorarch}')[0]
+
+       if getattr(Options.options, 'perl_vendorlib_dir', None):
+               conf.env.PERL_VENDORLIB_DIR = Options.options.perl_vendorlib_dir
+       else:
+               conf.env.PERL_VENDORLIB_DIR = read_out('print 
$Config{vendorlib}')[0]
 
 def set_options(opt):
        opt.add_option("--with-perl-binary", type="string", dest="perlbinary", 
help = 'Specify alternate perl binary', default=None)
-       opt.add_option("--with-perl-archdir", type="string", 
dest="perlarchdir", help = 'Specify directory where to install arch specific 
files', default=None)
 
+       opt.add_option("--with-perl-vendorarch",
+                      type="string",
+                      dest="perl_vendorarch_dir",
+                      help = ('Specify directory where to install arch 
specific files'),
+                      default=None)
+
+       opt.add_option("--with-perl-vendorlib",
+                      type="string",
+                      dest="perl_vendorlib_dir",
+                      help = ('Specify directory where to install vendor 
specific files'),
+                      default=None)
diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
index fe2e515..7984227 100755
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
@@ -80,8 +80,7 @@ def set_options(opt):
                    match = ['Checking for library iconv', 'Checking for 
iconv_open', 'Checking for header iconv.h'])
     opt.add_option('--with-gettext',
                    help='additional directory to search for gettext',
-                   action='store', dest='gettext_location', 
default='/usr/local',
-                   match = ['Checking for library intl', 'Checking for header 
libintl.h'])
+                   action='store', dest='gettext_location', default='None')
     opt.add_option('--without-gettext',
                    help=("Disable use of gettext"),
                    action="store_true", dest='disable_gettext', default=False)
diff --git a/docs-xml/smbdotconf/printing/spoolssarchitecture.xml 
b/docs-xml/smbdotconf/printing/spoolssarchitecture.xml
new file mode 100644
index 0000000..5ce9f13
--- /dev/null
+++ b/docs-xml/smbdotconf/printing/spoolssarchitecture.xml
@@ -0,0 +1,15 @@
+<samba:parameter name="spoolss: architecture"
+                context="G"
+                type="string"
+                advanced="1"
+                developer="1"
+                xmlns:samba="http://www.samba.org/samba/DTD/samba-doc";>
+<description>
+       <para>Windows spoolss print clients only allow association of 
server-side drivers
+       with printers when the driver architecture matches the advertised print 
server
+       architecture. Samba's spoolss print server architecture can be changed 
using
+       this parameter.</para>
+</description>
+<value type="default">Windows NT x86</value>
+<value type="example">Windows x64</value>
+</samba:parameter>
diff --git a/lib/replace/wscript b/lib/replace/wscript
index b6fb10b..8451689 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -363,10 +363,19 @@ removeea setea
                         headers='netinet/in.h arpa/nameser.h resolv.h')
 
 
+    # try to find libintl (if --without-gettext is not given)
     conf.env.intl_libs=''
     if not Options.options.disable_gettext:
+        # any extra path given to look at?
+        if not Options.options.gettext_location == 'None':
+           conf.env['CFLAGS'].extend(["-I%s" % 
Options.options.gettext_location]);
+           conf.env['LDFLAGS'].extend(["-L%s" % 
Options.options.gettext_location]);
+        else:
+           conf.env['CFLAGS'].extend(["-I/usr/local"]);
+           conf.env['LDFLAGS'].extend(["-L/usr/local"]);
         conf.CHECK_HEADERS('libintl.h')
         conf.CHECK_LIB('intl')
+        conf.CHECK_DECLS('dgettext gettext bindtextdomain textdomain 
bind_textdomain_codeset', headers="libintl.h")
         # *textdomain functions are not strictly necessary
         conf.CHECK_FUNCS_IN('bindtextdomain textdomain 
bind_textdomain_codeset',
                             '', checklibc=True, headers='libintl.h')
@@ -385,18 +394,27 @@ removeea setea
         else:
             # Some hosts need lib iconv for linking with lib intl
             # So we try with flags just in case it helps.
-            oldflags = conf.env['EXTRA_LDFLAGS'];
-            conf.env['EXTRA_LDFLAGS'].extend("-liconv")
+            oldflags = list(conf.env['EXTRA_LDFLAGS']);
+            conf.env['EXTRA_LDFLAGS'].extend(["-liconv"])
             conf.CHECK_FUNCS_IN('dgettext gettext bindtextdomain textdomain 
bind_textdomain_codeset',
                                 'intl', checklibc=False, headers='libintl.h')
             conf.env['EXTRA_LDFLAGS'] = oldflags
             if conf.env['HAVE_GETTEXT'] and conf.env['HAVE_DGETTEXT']:
                 # save for dependency definitions
                 conf.env.intl_libs='iconv intl'
-            else:
-                conf.fatal('library gettext not found, try specifying the path 
to ' +
-                           'it with --with-gettext=</path/to/gettext> or ' +
-                           '--without-gettext to build without''')
+
+    # did we find both prototypes and a library to link against?
+    # if not, unset the detected values (see Bug #9911)
+    if not (conf.env['HAVE_GETTEXT'] and conf.env['HAVE_DECL_GETTEXT']):
+       conf.undefine('HAVE_GETTEXT')
+       conf.undefine('HAVE_DECL_GETTEXT')
+    if not (conf.env['HAVE_DGETTEXT'] and conf.env['HAVE_DECL_DGETTEXT']):
+       conf.undefine('HAVE_DGETTEXT')
+       conf.undefine('HAVE_DECL_DGETTEXT')
+
+    # did the user insist on gettext (--with-gettext)?
+    if Options.options.gettext_location != 'None' and (not 
conf.env['HAVE_GETTEXT'] or not conf.env['HAVE_DGETTEXT']):
+        conf.fatal('library gettext not found at specified location')
 
     conf.CHECK_FUNCS_IN('pthread_create', 'pthread', checklibc=True, 
headers='pthread.h')
 
diff --git a/lib/tevent/tevent_queue.c b/lib/tevent/tevent_queue.c
index 4750675..eeb922f 100644
--- a/lib/tevent/tevent_queue.c
+++ b/lib/tevent/tevent_queue.c
@@ -140,6 +140,10 @@ static void tevent_queue_immediate_trigger(struct 
tevent_context *ev,
                return;
        }
 
+       if (!q->list) {
+               return;
+       }
+
        q->list->triggered = true;
        q->list->trigger(q->list->req, q->list->private_data);
 }
diff --git a/libcli/smb/smb2cli_create.c b/libcli/smb/smb2cli_create.c
index 3f8d672..9cb94b1 100644
--- a/libcli/smb/smb2cli_create.c
+++ b/libcli/smb/smb2cli_create.c
@@ -63,6 +63,8 @@ struct tevent_req *smb2cli_create_send(
        uint8_t *dyn;
        size_t dyn_len;
        size_t max_dyn_len;
+       uint32_t additional_flags = 0;
+       uint32_t clear_flags = 0;
 
        req = tevent_req_create(mem_ctx, &state,
                                struct smb2cli_create_state);
@@ -130,6 +132,12 @@ struct tevent_req *smb2cli_create_send(
                data_blob_free(&blob);
        }
 
+       if (smbXcli_conn_dfs_supported(conn) &&
+           smbXcli_tcon_is_dfs_share(tcon))
+       {
+               additional_flags |= SMB2_HDR_FLAG_DFS;
+       }
+
        /*
         * We use max_dyn_len = 0
         * as we don't explicitly ask for any output length.
@@ -140,7 +148,7 @@ struct tevent_req *smb2cli_create_send(
        max_dyn_len = 0;
 
        subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_CREATE,
-                                 0, 0, /* flags */
+                                 additional_flags, clear_flags,
                                  timeout_msec,
                                  tcon,
                                  session,
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c
index 14d4cc3..25fbabd 100644
--- a/libcli/smb/smbXcli_base.c
+++ b/libcli/smb/smbXcli_base.c
@@ -167,6 +167,9 @@ struct smbXcli_session {
 };
 
 struct smbXcli_tcon {
+       bool is_smb1;
+       uint32_t fs_attributes;
+
        struct {
                uint16_t tcon_id;
                uint16_t optional_support;
@@ -1269,6 +1272,19 @@ struct tevent_req *smb1cli_req_create(TALLOC_CTX 
*mem_ctx,
 
        if (tcon) {
                tid = tcon->smb1.tcon_id;
+
+               if (tcon->fs_attributes & FILE_CASE_SENSITIVE_SEARCH) {
+                       clear_flags |= FLAG_CASELESS_PATHNAMES;
+               } else {
+                       /* Default setting, case insensitive. */
+                       additional_flags |= FLAG_CASELESS_PATHNAMES;
+               }
+
+               if (smbXcli_conn_dfs_supported(conn) &&
+                   smbXcli_tcon_is_dfs_share(tcon))
+               {
+                       additional_flags2 |= FLAGS2_DFS_PATHNAMES;
+               }
        }
 
        state->smb1.recv_cmd = 0xFF;
@@ -2460,6 +2476,15 @@ bool smbXcli_conn_has_async_calls(struct smbXcli_conn 
*conn)
                || (talloc_array_length(conn->pending) != 0));
 }
 
+bool smbXcli_conn_dfs_supported(struct smbXcli_conn *conn)
+{
+       if (conn->protocol >= PROTOCOL_SMB2_02) {
+               return (smb2cli_conn_server_capabilities(conn) & SMB2_CAP_DFS);
+       }
+
+       return (smb1cli_conn_capabilities(conn) & CAP_DFS);
+}
+
 bool smb2cli_conn_req_possible(struct smbXcli_conn *conn, uint32_t 
*max_dyn_len)
 {
        uint16_t credits = 1;
@@ -5014,6 +5039,38 @@ struct smbXcli_tcon *smbXcli_tcon_create(TALLOC_CTX 
*mem_ctx)
        return tcon;
 }
 
+void smbXcli_tcon_set_fs_attributes(struct smbXcli_tcon *tcon,
+                                   uint32_t fs_attributes)
+{
+       tcon->fs_attributes = fs_attributes;
+}
+
+uint32_t smbXcli_tcon_get_fs_attributes(struct smbXcli_tcon *tcon)
+{
+       return tcon->fs_attributes;
+}
+
+bool smbXcli_tcon_is_dfs_share(struct smbXcli_tcon *tcon)
+{
+       if (tcon == NULL) {
+               return false;
+       }
+
+       if (tcon->is_smb1) {
+               if (tcon->smb1.optional_support & SMB_SHARE_IN_DFS) {
+                       return true;
+               }
+
+               return false;
+       }
+
+       if (tcon->smb2.capabilities & SMB2_SHARE_CAP_DFS) {
+               return true;
+       }
+
+       return false;
+}
+
 uint16_t smb1cli_tcon_current_id(struct smbXcli_tcon *tcon)
 {
        return tcon->smb1.tcon_id;
@@ -5021,6 +5078,7 @@ uint16_t smb1cli_tcon_current_id(struct smbXcli_tcon 
*tcon)
 
 void smb1cli_tcon_set_id(struct smbXcli_tcon *tcon, uint16_t tcon_id)
 {
+       tcon->is_smb1 = true;
        tcon->smb1.tcon_id = tcon_id;
 }
 
@@ -5032,6 +5090,8 @@ bool smb1cli_tcon_set_values(struct smbXcli_tcon *tcon,
                             const char *service,
                             const char *fs_type)
 {
+       tcon->is_smb1 = true;
+       tcon->fs_attributes = 0;
        tcon->smb1.tcon_id = tcon_id;
        tcon->smb1.optional_support = optional_support;
        tcon->smb1.maximal_access = maximal_access;
@@ -5070,6 +5130,8 @@ void smb2cli_tcon_set_values(struct smbXcli_tcon *tcon,
                             uint32_t capabilities,
                             uint32_t maximal_access)
 {
+       tcon->is_smb1 = false;
+       tcon->fs_attributes = 0;
        tcon->smb2.tcon_id = tcon_id;
        tcon->smb2.type = type;
        tcon->smb2.flags = flags;
diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h
index 3d93427..5fe4018 100644
--- a/libcli/smb/smbXcli_base.h
+++ b/libcli/smb/smbXcli_base.h
@@ -43,6 +43,8 @@ void smbXcli_conn_disconnect(struct smbXcli_conn *conn, 
NTSTATUS status);
 
 bool smbXcli_conn_has_async_calls(struct smbXcli_conn *conn);
 
+bool smbXcli_conn_dfs_supported(struct smbXcli_conn *conn);
+
 enum protocol_types smbXcli_conn_protocol(struct smbXcli_conn *conn);
 bool smbXcli_conn_use_unicode(struct smbXcli_conn *conn);
 
@@ -297,6 +299,10 @@ NTSTATUS smb2cli_session_set_channel_key(struct 
smbXcli_session *session,
 NTSTATUS smb2cli_session_encryption_on(struct smbXcli_session *session);
 
 struct smbXcli_tcon *smbXcli_tcon_create(TALLOC_CTX *mem_ctx);
+void smbXcli_tcon_set_fs_attributes(struct smbXcli_tcon *tcon,
+                                   uint32_t fs_attributes);
+uint32_t smbXcli_tcon_get_fs_attributes(struct smbXcli_tcon *tcon);
+bool smbXcli_tcon_is_dfs_share(struct smbXcli_tcon *tcon);
 uint16_t smb1cli_tcon_current_id(struct smbXcli_tcon *tcon);
 void smb1cli_tcon_set_id(struct smbXcli_tcon *tcon, uint16_t tcon_id);
 bool smb1cli_tcon_set_values(struct smbXcli_tcon *tcon,
diff --git a/libcli/smb/smb_constants.h b/libcli/smb/smb_constants.h
index 6dd7b28..175ffaf 100644
--- a/libcli/smb/smb_constants.h
+++ b/libcli/smb/smb_constants.h
@@ -208,6 +208,14 @@ enum smb_signing_setting {
 #define NEGOTIATE_SECURITY_SIGNATURES_ENABLED  0x04
 #define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED 0x08
 
+/*
+ * The negotiated buffer size for non LARGE_READX/WRITEX
+ * should be limited to uint16_t and has to be at least
+ * 500, which is the default for MinClientBufferSize on Windows.
+ */
+#define SMB_BUFFER_SIZE_MIN 500
+#define SMB_BUFFER_SIZE_MAX 65535
+
 /* Capabilities.  see ftp.microsoft.com/developr/drg/cifs/cifs/cifs4.txt */
 
 #define CAP_RAW_MODE           0x00000001
@@ -363,6 +371,25 @@ enum csc_policy {
 #define OPLOCK_BREAK_TO_NONE     0
 #define OPLOCK_BREAK_TO_LEVEL_II 1
 
+/* Filesystem Attributes. */
+#define FILE_CASE_SENSITIVE_SEARCH      0x00000001
+#define FILE_CASE_PRESERVED_NAMES       0x00000002
+#define FILE_UNICODE_ON_DISK            0x00000004
+/* According to cifs9f, this is 4, not 8 */
+/* Acconding to testing, this actually sets the security attribute! */
+#define FILE_PERSISTENT_ACLS            0x00000008
+#define FILE_FILE_COMPRESSION           0x00000010
+#define FILE_VOLUME_QUOTAS              0x00000020
+#define FILE_SUPPORTS_SPARSE_FILES      0x00000040
+#define FILE_SUPPORTS_REPARSE_POINTS    0x00000080
+#define FILE_SUPPORTS_REMOTE_STORAGE    0x00000100
+#define FS_LFN_APIS                     0x00004000


-- 
Samba Shared Repository

Reply via email to