The branch, v3-6-test has been updated
       via  32057f3 s3: "make etags" should not grow TAGS infinitely... (cherry 
picked from commit fd49ed238c5e82c8444eec35a09c32c191b76074)
       via  77a6ab1 s3: Use the right uid winbindd_raw_kerberos_login() (cherry 
picked from commit 92e138f920126f417a20bc49aebe0c3cbab5056d)
       via  b8d541d wb_reqtrans is not used in libwbclient (cherry picked from 
commit a881d6ab867a1d28c08a993a6212bd8bbdea6038)
       via  87777cf Move wbc_async.[ch] to its only user: smbtorture3 (cherry 
picked from commit c0a7c9f99188ebb3cd27094b9364449bcc2f80d8)
       via  f551cf7 libwbclient: Put the wb_reqtrans definitions into 
wb_reqtrans.h (cherry picked from commit 
6bfd745c61458308c3a05a1678cf6507d1a8a375)
       via  f60e96e s3: wcache_invalidate_samlogon only needs the SID (cherry 
picked from commit a159958065e195413f459a82643c780d80b6c088)
       via  5da3528 s3: netsamlogon_clear_cached_user only needs the SID 
(cherry picked from commit e113b1c64f1dfd84911050379d06d9ffc4958db3)
       via  ec67223 s3: Remove two pointless slprintf calls (cherry picked from 
commit ff5f767d0e31ea0c5311ce48d8e0387eebd84ce8)
       via  aec389a s3: FreeBSD has getpeereid(), use it (cherry picked from 
commit d39fedaa69b20e8f29fff9cd9a09c1bb1ecec7be)
       via  d9ce86c s3: Reply correctly to FSCTL_IS_VOLUME_DIRTY (cherry picked 
from commit d082701ea5131b02a49321ef29d1aa58a80ee92a)
       via  d9f072e s3: Fix some nonempty blank lines (cherry picked from 
commit 356add8a638b737cf72181beaa13342ab920ace8)
       via  44a05b3 s3: Did I say this module is from hell? (cherry picked from 
commit cf74a4857c051b43b1f6a06b714a93a65e8a1f90)
       via  1181bfa s3: re-add some debugs to check_reduced_name (cherry picked 
from commit 98a2fff2e5dbcc6f125136f94ff552c3fb05cc01)
      from  92fd198 s3: Remove unused "retry" from cli_start_connection

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 32057f3c865c3743e36de345c6fa2398f7df88b2
Author: Volker Lendecke <[email protected]>
Date:   Sun Dec 19 14:00:05 2010 +0100

    s3: "make etags" should not grow TAGS infinitely...
    (cherry picked from commit fd49ed238c5e82c8444eec35a09c32c191b76074)

commit 77a6ab1eee261f4f83f7747804ec1a80da801feb
Author: Volker Lendecke <[email protected]>
Date:   Sat Dec 11 10:29:57 2010 +0100

    s3: Use the right uid winbindd_raw_kerberos_login()
    (cherry picked from commit 92e138f920126f417a20bc49aebe0c3cbab5056d)

commit b8d541d3425d0a7356319d828353be2c65f34977
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 8 19:51:14 2010 +0100

    wb_reqtrans is not used in libwbclient
    (cherry picked from commit a881d6ab867a1d28c08a993a6212bd8bbdea6038)

commit 87777cff56665b3bb0f314ee76ed4fbeec1c4ee7
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 8 20:11:46 2010 +0100

    Move wbc_async.[ch] to its only user: smbtorture3
    (cherry picked from commit c0a7c9f99188ebb3cd27094b9364449bcc2f80d8)

commit f551cf7908db4dfac5d0cd9a4a3f6d968b255811
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 8 20:06:03 2010 +0100

    libwbclient: Put the wb_reqtrans definitions into wb_reqtrans.h
    (cherry picked from commit 6bfd745c61458308c3a05a1678cf6507d1a8a375)

commit f60e96e9b9b040286901a620aec95b40369cee5b
Author: Volker Lendecke <[email protected]>
Date:   Sat Dec 11 14:27:54 2010 +0100

    s3: wcache_invalidate_samlogon only needs the SID
    (cherry picked from commit a159958065e195413f459a82643c780d80b6c088)

commit 5da3528988258afc74a7771063f520d9435df1ff
Author: Volker Lendecke <[email protected]>
Date:   Sat Dec 11 14:19:50 2010 +0100

    s3: netsamlogon_clear_cached_user only needs the SID
    (cherry picked from commit e113b1c64f1dfd84911050379d06d9ffc4958db3)

commit ec67223f6e96a67179d7a254e8370814d97e426d
Author: Volker Lendecke <[email protected]>
Date:   Sat Dec 11 14:16:51 2010 +0100

    s3: Remove two pointless slprintf calls
    (cherry picked from commit ff5f767d0e31ea0c5311ce48d8e0387eebd84ce8)

commit aec389a086cb2b320afe2cb5bc8e308f1297ac3f
Author: Volker Lendecke <[email protected]>
Date:   Fri Dec 10 23:02:19 2010 +0100

    s3: FreeBSD has getpeereid(), use it
    (cherry picked from commit d39fedaa69b20e8f29fff9cd9a09c1bb1ecec7be)

commit d9ce86cc3a6b07a64e455b3e3f353325d7a94c7b
Author: Volker Lendecke <[email protected]>
Date:   Fri Dec 10 08:48:19 2010 -0700

    s3: Reply correctly to FSCTL_IS_VOLUME_DIRTY
    (cherry picked from commit d082701ea5131b02a49321ef29d1aa58a80ee92a)

commit d9f072ea1652cf1b2a872b79b939f9ccf3436627
Author: Volker Lendecke <[email protected]>
Date:   Fri Dec 10 19:59:06 2010 +0100

    s3: Fix some nonempty blank lines
    (cherry picked from commit 356add8a638b737cf72181beaa13342ab920ace8)

commit 44a05b3b85c4f7eae4311dd7b02d83a1a7fdec8b
Author: Volker Lendecke <[email protected]>
Date:   Tue Dec 7 14:40:13 2010 +0100

    s3: Did I say this module is from hell?
    (cherry picked from commit cf74a4857c051b43b1f6a06b714a93a65e8a1f90)

commit 1181bfaefa52b8a8e1e7ad4367537f8a60a53f80
Author: Volker Lendecke <[email protected]>
Date:   Tue Nov 30 18:21:46 2010 +0100

    s3: re-add some debugs to check_reduced_name
    (cherry picked from commit 98a2fff2e5dbcc6f125136f94ff552c3fb05cc01)

-----------------------------------------------------------------------

Summary of changes:
 source3/Makefile.in                                |    7 +-
 source3/configure.in                               |   12 ++++
 source3/include/ntioctl.h                          |    1 +
 source3/include/proto.h                            |    2 +-
 source3/lib/system.c                               |    4 +
 .../libwbclient => source3/lib}/wb_reqtrans.c      |    2 +-
 source3/lib/wb_reqtrans.h                          |   61 ++++++++++++++++++++
 source3/libsmb/samlogon_cache.c                    |   16 ++----
 source3/modules/vfs_shadow_copy2.c                 |    2 +-
 source3/smbd/negprot.c                             |   44 +++++++-------
 source3/smbd/nttrans.c                             |    9 +++
 source3/smbd/vfs.c                                 |    2 +
 source3/torture/torture.c                          |    2 +-
 .../libwbclient => source3/torture}/wbc_async.c    |    2 +-
 .../libwbclient => source3/torture}/wbc_async.h    |   31 +----------
 source3/winbindd/winbindd.c                        |    2 +-
 source3/winbindd/winbindd_cache.c                  |   11 +--
 source3/winbindd/winbindd_dual.c                   |    2 +-
 source3/winbindd/winbindd_pam.c                    |   16 ++++--
 source3/winbindd/winbindd_proto.h                  |    2 +-
 source3/wscript_build                              |    6 +-
 21 files changed, 147 insertions(+), 89 deletions(-)
 rename {nsswitch/libwbclient => source3/lib}/wb_reqtrans.c (99%)
 create mode 100644 source3/lib/wb_reqtrans.h
 rename {nsswitch/libwbclient => source3/torture}/wbc_async.c (99%)
 rename {nsswitch/libwbclient => source3/torture}/wbc_async.h (82%)


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 874c2a8..3e49869 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -1205,8 +1205,8 @@ SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o 
torture/scanner.o torture/uta
 SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) $(TLDAP_OBJ) \
        $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
        @LIBWBCLIENT_STATIC@ \
-        ../nsswitch/libwbclient/wbc_async.o \
-        ../nsswitch/libwbclient/wb_reqtrans.o \
+        torture/wbc_async.o \
+        lib/wb_reqtrans.o \
        $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(LIBCLI_ECHO_OBJ)
 
 MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
@@ -1402,7 +1402,7 @@ WINBINDD_OBJ1 = \
                auth/server_info_sam.o \
                auth/user_info.o \
                auth/pampass.o \
-               ../nsswitch/libwbclient/wb_reqtrans.o
+               lib/wb_reqtrans.o
 
 WINBINDD_OBJ = \
                $(WINBINDD_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
@@ -3313,6 +3313,7 @@ include/build_env.h: script/build_env.sh
 proto::
 
 etags::
+       rm -f TAGS
        find $(srcdir)/.. -name "*.[ch]" | xargs -n 100 etags --append 
$(ETAGS_OPTIONS)
 
 ctags::
diff --git a/source3/configure.in b/source3/configure.in
index c772f58..ed99b17 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -6388,6 +6388,18 @@ if test x"$samba_cv_HAVE_PEERCRED" = x"yes"; then
     AC_DEFINE(HAVE_PEERCRED,1,[Whether we can use SO_PEERCRED to get socket 
credentials])
 fi
 
+AC_CACHE_CHECK([for getpeereid],samba_cv_HAVE_GETPEEREID,[
+AC_TRY_LINK([#include <sys/types.h>
+#include <unistd.h>],
+[uid_t uid; gid_t gid; int ret;
+ ret = getpeereid(0, &uid, &gid);
+],
+samba_cv_HAVE_GETPEEREID=yes,samba_cv_HAVE_GETPEEREID=no)])
+if test x"$samba_cv_HAVE_GETPEEREID" = xyes; then
+   AC_DEFINE(HAVE_GETPEEREID,1,
+            [Whether we have getpeereid to get socket credentials])
+fi
+
 
 #################################################
 # Check to see if we should use the included popt
diff --git a/source3/include/ntioctl.h b/source3/include/ntioctl.h
index c565b8f..41b1dce 100644
--- a/source3/include/ntioctl.h
+++ b/source3/include/ntioctl.h
@@ -38,6 +38,7 @@
 #define FSCTL_UNLOCK_VOLUME          0x0009001C
 #define FSCTL_GET_COMPRESSION        0x0009003C
 #define FSCTL_SET_COMPRESSION        0x0009C040
+#define FSCTL_IS_VOLUME_DIRTY       0x00090078
 #define FSCTL_REQUEST_FILTER_OPLOCK  0x0009008C
 #define FSCTL_FIND_FILES_BY_SID             0x0009008F
 #define FSCTL_FILESYS_GET_STATISTICS 0x00090090
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 7ae71a0..f9bf72f 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2832,7 +2832,7 @@ NTSTATUS remote_password_change(const char 
*remote_machine, const char *user_nam
 
 bool netsamlogon_cache_init(void);
 bool netsamlogon_cache_shutdown(void);
-void netsamlogon_clear_cached_user(struct netr_SamInfo3 *info3);
+void netsamlogon_clear_cached_user(const struct dom_sid *user_sid);
 bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 
*info3);
 struct netr_SamInfo3 *netsamlogon_cache_get(TALLOC_CTX *mem_ctx, const struct 
dom_sid *user_sid);
 bool netsamlogon_cache_have(const struct dom_sid *user_sid);
diff --git a/source3/lib/system.c b/source3/lib/system.c
index d5b833c..4cf6a29 100644
--- a/source3/lib/system.c
+++ b/source3/lib/system.c
@@ -2665,6 +2665,10 @@ int sys_getpeereid( int s, uid_t *uid)
        *uid = cred.uid;
        return 0;
 #else
+#if defined(HAVE_GETPEEREID)
+       gid_t gid;
+       return getpeereid(s, uid, &gid);
+#endif
        errno = ENOSYS;
        return -1;
 #endif
diff --git a/nsswitch/libwbclient/wb_reqtrans.c b/source3/lib/wb_reqtrans.c
similarity index 99%
rename from nsswitch/libwbclient/wb_reqtrans.c
rename to source3/lib/wb_reqtrans.c
index 6dc429b..78f806d 100644
--- a/nsswitch/libwbclient/wb_reqtrans.c
+++ b/source3/lib/wb_reqtrans.c
@@ -32,7 +32,7 @@
 #include "lib/util/tevent_unix.h"
 #include "nsswitch/winbind_struct_protocol.h"
 #include "nsswitch/libwbclient/wbclient.h"
-#include "nsswitch/libwbclient/wbc_async.h"
+#include "lib/wb_reqtrans.h"
 
 /* can't use DEBUG here... */
 #define DEBUG(a,b)
diff --git a/source3/lib/wb_reqtrans.h b/source3/lib/wb_reqtrans.h
new file mode 100644
index 0000000..941edf6
--- /dev/null
+++ b/source3/lib/wb_reqtrans.h
@@ -0,0 +1,61 @@
+/*
+   Unix SMB/CIFS implementation.
+   Headers for the async winbind client library
+   Copyright (C) Volker Lendecke 2008
+
+     ** NOTE! The following LGPL license applies to the wbclient
+     ** library. This does NOT imply that all of Samba is released
+     ** under the LGPL
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 3 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _WB_REQTRANS_H_
+#define _WB_REQTRANS_H_
+
+#include <talloc.h>
+#include <tevent.h>
+#include "nsswitch/winbind_struct_protocol.h"
+
+struct tevent_req *wb_req_read_send(TALLOC_CTX *mem_ctx,
+                                   struct tevent_context *ev,
+                                   int fd, size_t max_extra_data);
+ssize_t wb_req_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+                        struct winbindd_request **preq, int *err);
+
+struct tevent_req *wb_req_write_send(TALLOC_CTX *mem_ctx,
+                                    struct tevent_context *ev,
+                                    struct tevent_queue *queue, int fd,
+                                    struct winbindd_request *wb_req);
+ssize_t wb_req_write_recv(struct tevent_req *req, int *err);
+
+struct tevent_req *wb_resp_read_send(TALLOC_CTX *mem_ctx,
+                                    struct tevent_context *ev, int fd);
+ssize_t wb_resp_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+                         struct winbindd_response **presp, int *err);
+
+struct tevent_req *wb_resp_write_send(TALLOC_CTX *mem_ctx,
+                                     struct tevent_context *ev,
+                                     struct tevent_queue *queue, int fd,
+                                     struct winbindd_response *wb_resp);
+ssize_t wb_resp_write_recv(struct tevent_req *req, int *err);
+
+struct tevent_req *wb_simple_trans_send(TALLOC_CTX *mem_ctx,
+                                       struct tevent_context *ev,
+                                       struct tevent_queue *queue, int fd,
+                                       struct winbindd_request *wb_req);
+int wb_simple_trans_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+                        struct winbindd_response **presponse, int *err);
+
+#endif /*_WB_REQTRANS_H_*/
diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c
index 2e7a9c6..f3ef954 100644
--- a/source3/libsmb/samlogon_cache.c
+++ b/source3/libsmb/samlogon_cache.c
@@ -99,14 +99,9 @@ bool netsamlogon_cache_shutdown(void)
  Clear cache getpwnam and getgroups entries from the winbindd cache
 ***********************************************************************/
 
-void netsamlogon_clear_cached_user(struct netr_SamInfo3 *info3)
+void netsamlogon_clear_cached_user(const struct dom_sid *user_sid)
 {
-       struct dom_sid  user_sid;
-       fstring keystr, tmp;
-
-       if (!info3) {
-               return;
-       }
+       fstring keystr;
 
        if (!netsamlogon_cache_init()) {
                DEBUG(0,("netsamlogon_clear_cached_user: cannot open "
@@ -114,10 +109,9 @@ void netsamlogon_clear_cached_user(struct netr_SamInfo3 
*info3)
                        NETSAMLOGON_TDB));
                return;
        }
-       sid_compose(&user_sid, info3->base.domain_sid, info3->base.rid);
 
        /* Prepare key as DOMAIN-SID/USER-RID string */
-       slprintf(keystr, sizeof(keystr), "%s", sid_to_fstring(tmp, &user_sid));
+       sid_to_fstring(keystr, user_sid);
 
        DEBUG(10,("netsamlogon_clear_cached_user: SID [%s]\n", keystr));
 
@@ -132,7 +126,7 @@ void netsamlogon_clear_cached_user(struct netr_SamInfo3 
*info3)
 bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
 {
        TDB_DATA data;
-       fstring keystr, tmp;
+       fstring keystr;
        bool result = false;
        struct dom_sid  user_sid;
        time_t t = time(NULL);
@@ -154,7 +148,7 @@ bool netsamlogon_cache_store(const char *username, struct 
netr_SamInfo3 *info3)
        sid_compose(&user_sid, info3->base.domain_sid, info3->base.rid);
 
        /* Prepare key as DOMAIN-SID/USER-RID string */
-       slprintf(keystr, sizeof(keystr), "%s", sid_to_fstring(tmp, &user_sid));
+       sid_to_fstring(keystr, &user_sid);
 
        DEBUG(10,("netsamlogon_cache_store: SID [%s]\n", keystr));
 
diff --git a/source3/modules/vfs_shadow_copy2.c 
b/source3/modules/vfs_shadow_copy2.c
index f47b287..0393f30 100644
--- a/source3/modules/vfs_shadow_copy2.c
+++ b/source3/modules/vfs_shadow_copy2.c
@@ -674,7 +674,7 @@ static char *shadow_copy2_realpath(vfs_handle_struct 
*handle,
                SHADOW2_NEXT(REALPATH, (handle, fname), char *,
                             NULL);
        }
-        SHADOW2_NEXT(REALPATH, (handle, fname), char *, NULL);
+        SHADOW2_NEXT(REALPATH, (handle, name), char *, NULL);
 }
 
 static const char *shadow_copy2_connectpath(struct vfs_handle_struct *handle,
diff --git a/source3/smbd/negprot.c b/source3/smbd/negprot.c
index 443fac4..9cc34d8 100644
--- a/source3/smbd/negprot.c
+++ b/source3/smbd/negprot.c
@@ -3,17 +3,17 @@
    negprot reply code
    Copyright (C) Andrew Tridgell 1992-1998
    Copyright (C) Volker Lendecke 2007
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -140,7 +140,7 @@ static void reply_lanman2(struct smb_request *req, uint16 
choice)
        struct smbd_server_connection *sconn = req->sconn;
 
        sconn->smb1.negprot.encrypted_passwords = lp_encrypted_passwords();
-  
+
        if (lp_security()>=SEC_USER) {
                secword |= NEGOTIATE_SECURITY_USER_LEVEL;
        }
@@ -291,7 +291,7 @@ static void reply_nt1(struct smb_request *req, uint16 
choice)
 
        /* do spnego in user level security if the client
           supports it and we can do encrypted passwords */
-       
+
        if (sconn->smb1.negprot.encrypted_passwords &&
            (lp_security() != SEC_SHARE) &&
            lp_use_spnego() &&
@@ -304,28 +304,28 @@ static void reply_nt1(struct smb_request *req, uint16 
choice)
                SSVAL(req->outbuf, smb_flg2,
                      req->flags2 | FLAGS2_EXTENDED_SECURITY);
        }
-       
+
        capabilities |= CAP_NT_SMBS|CAP_RPC_REMOTE_APIS|CAP_UNICODE;
 
        if (lp_unix_extensions()) {
                capabilities |= CAP_UNIX;
        }
-       
+
        if (lp_large_readwrite() && (SMB_OFF_T_BITS == 64))
                capabilities |= CAP_LARGE_READX|CAP_LARGE_WRITEX|CAP_W2K_SMBS;
-       
+
        if (SMB_OFF_T_BITS == 64)
                capabilities |= CAP_LARGE_FILES;
 
        if (lp_readraw() && lp_writeraw())
                capabilities |= CAP_RAW_MODE;
-       
+
        if (lp_nt_status_support())
                capabilities |= CAP_STATUS32;
-       
+
        if (lp_host_msdfs())
                capabilities |= CAP_DFS;
-       
+
        if (lp_security() >= SEC_USER) {
                secword |= NEGOTIATE_SECURITY_USER_LEVEL;
        }
@@ -351,9 +351,9 @@ static void reply_nt1(struct smb_request *req, uint16 
choice)
 
        SSVAL(req->outbuf,smb_vwv0,choice);
        SCVAL(req->outbuf,smb_vwv1,secword);
-       
+
        set_Protocol(PROTOCOL_NT1);
-       
+
        SSVAL(req->outbuf,smb_vwv1+1,lp_maxmux()); /* maxmpx */
        SSVAL(req->outbuf,smb_vwv2+1,1); /* num vcs */
        SIVAL(req->outbuf,smb_vwv3+1,
@@ -364,7 +364,7 @@ static void reply_nt1(struct smb_request *req, uint16 
choice)
        clock_gettime(CLOCK_REALTIME,&ts);
        put_long_date_timespec(TIMESTAMP_SET_NT_OR_BETTER,(char 
*)req->outbuf+smb_vwv11+1,ts);
        SSVALS(req->outbuf,smb_vwv15+1,set_server_zone_offset(ts.tv_sec)/60);
-       
+
        if (!negotiate_spnego) {
                /* Create a token value and add it to the outgoing packet. */
                if (sconn->smb1.negprot.encrypted_passwords) {
@@ -482,7 +482,7 @@ protocol [LANMAN2.1]
   *  [email protected] 09/29/95
   *  Win2K added by matty 17/7/99
   */
-  
+
 #define ARCH_WFWG     0x3      /* This is a fudge because WfWg is like Win95 */
 #define ARCH_WIN95    0x2
 #define ARCH_WINNT    0x4
@@ -491,9 +491,9 @@ protocol [LANMAN2.1]
 #define ARCH_SAMBA    0x20
 #define ARCH_CIFSFS   0x40
 #define ARCH_VISTA    0x8C     /* Vista is like XP/2K */
- 
+
 #define ARCH_ALL      0x7F
- 
+
 /* List of supported protocols, most desired first */
 static const struct {
        const char *proto_name;
@@ -662,10 +662,10 @@ void reply_negprot(struct smb_request *req)
                        set_remote_arch(RA_UNKNOWN);
                break;
        }
- 
+
        /* possibly reload - change of architecture */
        reload_services(sconn->msg_ctx, sconn->sock, True);
-       
+
        /* moved from the netbios session setup code since we don't have that 
           when the client connects to port 445.  Of course there is a small
           window where we are listening to messages   -- jerry */
@@ -673,7 +673,7 @@ void reply_negprot(struct smb_request *req)
        serverid_register(sconn_server_id(sconn),
                          FLAG_MSG_GENERAL|FLAG_MSG_SMBD
                          |FLAG_MSG_PRINT_GENERAL);
-    
+
        /* Check for protocols, most desirable first */
        for (protocol = 0; supported_protocols[protocol].proto_name; 
protocol++) {
                i = 0;
@@ -687,7 +687,7 @@ void reply_negprot(struct smb_request *req)
                if(choice != -1)
                        break;
        }
-  
+
        if(choice != -1) {
                fstrcpy(remote_proto,supported_protocols[protocol].short_name);
                reload_services(sconn->msg_ctx, sconn->sock, True);
@@ -698,7 +698,7 @@ void reply_negprot(struct smb_request *req)
                reply_outbuf(req, 1, 0);
                SSVAL(req->outbuf, smb_vwv0, choice);
        }
-  
+
        DEBUG( 5, ( "negprot index=%d\n", choice ) );
 
        if ((lp_server_signing() == Required) && (get_Protocol() < 
PROTOCOL_NT1)) {
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index cccb47a..da1231c 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -2432,6 +2432,15 @@ static void call_nt_transact_ioctl(connection_struct 
*conn,
                }
                return;
        }
+       case FSCTL_IS_VOLUME_DIRTY:
+               DEBUG(10,("FSCTL_IS_VOLUME_DIRTY: called on FID[0x%04X] "
+                         "(but not implemented)\n", (int)fidnum));
+               /*
+                * 
http://msdn.microsoft.com/en-us/library/cc232128%28PROT.10%29.aspx
+                * says we have to respond with NT_STATUS_INVALID_PARAMETER
+                */
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+               return;
        default:
                /* Only print this once... */
                if (!logged_ioctl_message) {
diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c
index 341079e..802639f 100644
--- a/source3/smbd/vfs.c
+++ b/source3/smbd/vfs.c
@@ -997,6 +997,8 @@ NTSTATUS check_reduced_name(connection_struct *conn, const 
char *fname)
                            DEBUG(2, ("check_reduced_name: Bad access "
                                      "attempt: %s is a symlink outside the "
                                      "share path\n", fname));
+                           DEBUGADD(2, ("conn_rootdir =%s\n", conn_rootdir));
+                           DEBUGADD(2, ("resolved_name=%s\n", resolved_name));
                            SAFE_FREE(resolved_name);
                            return NT_STATUS_ACCESS_DENIED;
                    }
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 89429d1..2eb2566 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -19,7 +19,7 @@
 */
 
 #include "includes.h"
-#include "nsswitch/libwbclient/wbc_async.h"
+#include "wbc_async.h"
 #include "torture/proto.h"
 #include "libcli/security/security.h"
 #include "tldap.h"
diff --git a/nsswitch/libwbclient/wbc_async.c b/source3/torture/wbc_async.c
similarity index 99%
rename from nsswitch/libwbclient/wbc_async.c
rename to source3/torture/wbc_async.c
index d1dd76d..182474c 100644
--- a/nsswitch/libwbclient/wbc_async.c
+++ b/source3/torture/wbc_async.c
@@ -29,7 +29,7 @@
 #include "lib/async_req/async_sock.h"
 #include "nsswitch/winbind_struct_protocol.h"
 #include "nsswitch/libwbclient/wbclient.h"
-#include "nsswitch/libwbclient/wbc_async.h"
+#include "wbc_async.h"
 
 wbcErr map_wbc_err_from_errno(int error)
 {
diff --git a/nsswitch/libwbclient/wbc_async.h b/source3/torture/wbc_async.h
similarity index 82%
rename from nsswitch/libwbclient/wbc_async.h
rename to source3/torture/wbc_async.h
index c918ccb..6a49511 100644
--- a/nsswitch/libwbclient/wbc_async.h
+++ b/source3/torture/wbc_async.h
@@ -27,6 +27,7 @@
 #include <talloc.h>
 #include <tevent.h>
 #include "nsswitch/libwbclient/wbclient.h"
+#include "lib/wb_reqtrans.h"
 
 struct wb_context;
 struct winbindd_request;
@@ -62,36 +63,6 @@ wbcErr map_wbc_err_from_errno(int error);
 bool tevent_req_is_wbcerr(struct tevent_req *req, wbcErr *pwbc_err);
 wbcErr tevent_req_simple_recv_wbcerr(struct tevent_req *req);
 
-struct tevent_req *wb_req_read_send(TALLOC_CTX *mem_ctx,
-                                   struct tevent_context *ev,
-                                   int fd, size_t max_extra_data);
-ssize_t wb_req_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
-                        struct winbindd_request **preq, int *err);
-
-struct tevent_req *wb_req_write_send(TALLOC_CTX *mem_ctx,
-                                    struct tevent_context *ev,
-                                    struct tevent_queue *queue, int fd,
-                                    struct winbindd_request *wb_req);
-ssize_t wb_req_write_recv(struct tevent_req *req, int *err);
-
-struct tevent_req *wb_resp_read_send(TALLOC_CTX *mem_ctx,
-                                    struct tevent_context *ev, int fd);
-ssize_t wb_resp_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
-                         struct winbindd_response **presp, int *err);
-


-- 
Samba Shared Repository

Reply via email to