Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into 4-0-local
authorAndrew Bartlett <abartlet@samba.org>
Sat, 28 Jun 2008 12:04:19 +0000 (22:04 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 28 Jun 2008 12:04:19 +0000 (22:04 +1000)
(This used to be commit 6479f481dbf2f5c83edec0702ece73e83b6c810e)

12 files changed:
WHATSNEW.txt
packaging/Fedora/samba4.init
packaging/Fedora/samba4.spec
source4/build/m4/check_path.m4
source4/dynconfig/config.mk
source4/dynconfig/dynconfig.c
source4/dynconfig/dynconfig.h
source4/param/loadparm.c
source4/param/param.h
source4/param/param_wrap.c
source4/selftest/target/Samba4.pm
source4/winbind/wb_server.c

index 8f17e981feb1dd903b4681027de6e9202817a5b1..562a331b320b3b1957830e774c986fbbd19ec9c1 100644 (file)
@@ -1,4 +1,4 @@
-What's new in Samba 4 alpha4
+What's new in Samba 4 alpha5
 ============================
 
 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 alpha4 follows on from the alpha release series we have been
+Samba4 alpha5 follows on from the alpha release series we have been
 publishing since September 2007
 
 WARNINGS
 ========
 
-Samba4 alpha4 is not a final Samba release.  That is more a reference
+Samba4 alpha5 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
@@ -68,15 +68,18 @@ CHANGES SINCE Alpha4
 In the time since Samba4 Alpha4 was released in June 2008, Samba has
 continued to evolve, but you may particularly notice these areas:
 
-(TODO: update list when closer to a release)
+  LDAP backend support restored (issues preventing the use of the LDAP
+  backend in alpha4 have been addressed)
 
-  Python Bindings: Bindings for Python are now used for all internal
-  scripting, and the system python installation is used to run all
-  Samba python scripts (in place of smbpython found in the previous
-  alpha).
+  SMB2 Support:  The SMB2 server, while still disabled, has improved,
+  and now supports SMB2 signing. 
 
-  As such Python is no longer optional, and configure will generate an
-  error if it cannot locate an appropriate Python installation.
+  OpenChange support:  Updates have been made since alpha4 to better
+  support OpenChange's use of Samba4's libraries. 
+
+  Faster ldb loading:  A fix to avoid calling 'init_module' (which was
+  not defined by Samba modules, but was by the C library) will fix
+  some of the slowness in authentication. 
 
   SWAT Remains Disabled: Due to a lack of developer time and without a
   long-term web developer to maintain it, the SWAT web UI remains been
@@ -85,26 +88,6 @@ continued to evolve, but you may particularly notice these areas:
   GNU Make: To try and simplfy our build system, we rely on GNU Make
   to avoid autogenerating a massive single makefile. 
 
-  Registry: Samba4's registry library has continued to improve.
-
-  ID mapping: Samba4 uses the internal ID mapping in winbind for all
-  but a few core users.  Samba users should not appear in /etc/passwd,
-  as Samba will generate new user and group IDs regradless. 
-
-  NTP: Samba4 can act as a signing server for the ntp.org NTP deamon,
-  allowing NTPd to reply using Microsoft's non-standard signing
-  scheme.  A patch to make NTPd talk to Samba for this purpose has
-  been submitted to the ntp.org project.
-
-  CLDAP: Users should experience less arbitary delays and more success with
-  group policy, domain joins and logons due to an improved
-  implementation of CLDAP and the 'netlogon' mailslot datagrams.
-
-  SMB2: The Samba4 SMB2 server and testsuite have been greatly
-  improved, but the SMB2 server remains off by default.
-
-  Secure DNS update: Configuration for GSS-TSIG updates of DNS records
-  is now generated by the provision script.
 
 These are just some of the highlights of the work done in the past few
 months.  More details can be found in our GIT history.
@@ -130,13 +113,14 @@ KNOWN ISSUES
 
 - Clock Synchronisation is critical.  Many 'wrong password' errors are
   actually due to Kerberos objecting to a clock skew between client
-  and server.  (The NTP work is partly to assist with this problem).
+  and server.  (The NTP work in the previous alpha is partly to assist
+  with this problem).
 
-- Samba4 alpha4 is currently only portable to recent Linux
+- Samba4 alpha5 is currently only portable to recent Linux
   distributions.  Work to return support for other Unix varients is
   expected during the next alpha cycle
 
-- Samba4 alpha4 is incompatible with GnuTLS 2.0, found in Fedora 9 and
+- Samba4 alpha5 is incompatible with GnuTLS 2.0, found in Fedora 9 and
   recent Ubuntu releases.  GnuTLS use may be disabled using the
   --disable-gnutls argument to ./configure. (otherwise 'make test' and
   LDAPS operations will hang).
index 1e42364452b7f5eaf329be73c246768f1d9be512..a04cce92c5953fc699e7894e5b010e207c8813cd 100644 (file)
@@ -5,7 +5,7 @@
 #             used to provide SMB network services.
 #
 # pidfile: /var/run/samba4/smbd.pid
-# config:  /etc/samba/smb.conf
+# config:  /etc/samba4/smb.conf
 
 SAMBA_NAME=samba4
 
index 9059f14697eae0520d6d79f06ab1fc09cf8aee5c..ad929f117479a31c0de5d7c0dc7c1c7544dcfd90 100644 (file)
@@ -142,7 +142,7 @@ cd source
        --with-lockdir=/var/lib/%{name} \
        --with-piddir=/var/run \
        --with-privatedir=/var/lib/%{name}/private \
-       --with-logfilebase=/var/log/samba \
+       --with-logfilebase=/var/log/%{name} \
        --with-configdir=%{_sysconfdir}/%{name} \
        --with-winbindd-socket-dir=/var/run/winbind \
        --with-ntp-signd-socket-dir=/var/run/ntp_signd \
@@ -260,7 +260,6 @@ exit 0
 %{_datadir}/samba/setup/*
 %dir /var/lib/%{name}/sysvol
 %config(noreplace) %{_sysconfdir}/sysconfig/%{name}
-%dir %{_sysconfdir}/%{name}
 %attr(0700,root,root) %dir /var/log/%{name}
 %attr(0700,root,root) %dir /var/log/%{name}/old
 
@@ -271,6 +270,11 @@ exit 0
 %{_datadir}/samba/*.dat
 %{_libdir}/*.so.*
 %{_libdir}/samba
+%dir %{_sysconfdir}/%{name}
+#Need to mark this as being owned by Samba, but it is normally created
+#by the provision script, which runs best if there is no existing
+#smb.conf
+#%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
 
 %files winbind
 %defattr(-,root,root)
index c0b81f1a8d4ab44c048b6122145e19dbbd797a1b..a209a4b85a858c1c59c460bb7a7ce9cd40da147d 100644 (file)
@@ -19,7 +19,8 @@ lockdir="${localstatedir}/locks"
 piddir="${localstatedir}/run"
 privatedir="\${prefix}/private"
 modulesdir="\${prefix}/modules"
-winbindd_socket_dir="${localstatedir}/run/winbind_pipe"
+winbindd_socket_dir="${localstatedir}/run/winbindd"
+winbindd_privileged_socket_dir="${localstatedir}/lib/winbindd_privileged"
 ntp_signd_socket_dir="${localstatedir}/run/ntp_signd"
 
 AC_ARG_WITH(fhs, 
@@ -33,7 +34,8 @@ AC_ARG_WITH(fhs,
     datadir="${datadir}/samba"
     includedir="${includedir}/samba-4.0"
     ntp_signd_socket_dir="${localstatedir}/run/samba/ntp_signd"
-    winbindd_socket_dir="${localstatedir}/run/samba/winbind_pipe"
+    winbindd_socket_dir="${localstatedir}/run/samba/winbindd"
+    winbindd_privileged_socket_dir="${localstatedir}/lib/samba/winbindd_privileged"
 )
 
 #################################################
@@ -55,6 +57,38 @@ AC_ARG_WITH(privatedir,
 #################################################
 # set where the winbindd socket should be put
 AC_ARG_WITH(winbindd-socket-dir,
+[  --with-winbindd-socket-dir=DIR   Where to put the winbindd socket ($winbindd_socket_dir)],
+[ case "$withval" in
+  yes|no)
+  #
+  # Just in case anybody calls it without argument
+  #
+    AC_MSG_WARN([--with-winbind-socketdir called without argument - will use default])
+  ;;
+  * )
+    winbindd_socket_dir="$withval"
+    ;;
+  esac])
+
+#################################################
+# set where the winbindd privilaged socket should be put
+AC_ARG_WITH(winbindd-privileged-socket-dir,
+[  --with-winbindd-privileged-socket-dir=DIR   Where to put the winbindd socket ($winbindd_privileged_socket_dir)],
+[ case "$withval" in
+  yes|no)
+  #
+  # Just in case anybody calls it without argument
+  #
+    AC_MSG_WARN([--with-winbind-privileged-socketdir called without argument - will use default])
+  ;;
+  * )
+    winbindd_privileged_socket_dir="$withval"
+    ;;
+  esac])
+
+#################################################
+# set where the winbindd privilaged socket should be put
+AC_ARG_WITH(winbindd-socket-dir,
 [  --with-winbindd-socket-dir=DIR   Where to put the winbindd socket ($ac_default_prefix/run/winbind_pipe)],
 [ case "$withval" in
   yes|no)
@@ -140,6 +174,7 @@ AC_SUBST(privatedir)
 AC_SUBST(bindir)
 AC_SUBST(sbindir)
 AC_SUBST(winbindd_socket_dir)
+AC_SUBST(winbindd_privileged_socket_dir)
 AC_SUBST(ntp_signd_socket_dir)
 AC_SUBST(modulesdir)
 
index a353ba12147a679a07557ab56a743e655c2f05e4..4956fda5196fcba291234073694395c987b261b4 100644 (file)
@@ -19,6 +19,8 @@ $(dynconfigsrcdir)/dynconfig.o: CFLAGS+=-DCONFIGFILE=\"$(CONFIGFILE)\" -DBINDIR=
         -DPRIVATE_DIR=\"$(privatedir)\" \
         -DMODULESDIR=\"$(modulesdir)\" -DJSDIR=\"$(JSDIR)\" \
         -DTORTUREDIR=\"$(TORTUREDIR)\" \
-        -DSETUPDIR=\"$(SETUPDIR)\" -DWINBINDD_SOCKET_DIR=\"$(winbindd_socket_dir)\" \
+        -DSETUPDIR=\"$(SETUPDIR)\" \
+        -DWINBINDD_PRIVILEGED_SOCKET_DIR=\"$(winbindd_privileged_socket_dir)\" \
+        -DWINBINDD_SOCKET_DIR=\"$(winbindd_socket_dir)\" \
         -DNTP_SIGND_SOCKET_DIR=\"$(ntp_signd_socket_dir)\"
 
index ef5c40d6983994dab82fa77c3f2933651eeb1fd8..507570318d97773fbe756e2f613e9589e8e4f92e 100644 (file)
@@ -85,5 +85,8 @@ _PUBLIC_ const char *dyn_JSDIR = JSDIR;
 /** Where to find the winbindd socket */
 _PUBLIC_ const char *dyn_WINBINDD_SOCKET_DIR = WINBINDD_SOCKET_DIR;
 
+/** Where to find the winbindd privileged socket */
+_PUBLIC_ const char *dyn_WINBINDD_PRIVILEGED_SOCKET_DIR = WINBINDD_PRIVILEGED_SOCKET_DIR;
+
 /** Where to find the NTP signing deamon socket */
 _PUBLIC_ const char *dyn_NTP_SIGND_SOCKET_DIR = NTP_SIGND_SOCKET_DIR;
index e77c13bab30e6085ddb6815173bfed1b2b5f1d5d..1bba1f07dbaa0d18fe819a11cb57d73d3c2b0841 100644 (file)
@@ -38,4 +38,5 @@ extern const char *dyn_SWATDIR;
 extern const char *dyn_JSDIR;
 extern const char *dyn_SETUPDIR;
 extern const char *dyn_WINBINDD_SOCKET_DIR;
+extern const char *dyn_WINBINDD_PRIVILEGED_SOCKET_DIR;
 extern const char *dyn_NTP_SIGND_SOCKET_DIR;
index 0a7aec1985784a6757cc8d93763a3189ee1f6504..e63a7aa8a19c2f2c1e43e04d3b402270b5a834a9 100644 (file)
@@ -116,6 +116,7 @@ struct loadparm_global
        const char **server_services;
        char *ntptr_providor;
        char *szWinbindSeparator;
+       char *szWinbinddPrivilegedSocketDirectory;
        char *szWinbinddSocketDirectory;
        char *szTemplateShell;
        char *szTemplateHomedir;
@@ -485,6 +486,7 @@ static struct parm_struct parm_table[] = {
        {"host msdfs", P_BOOL, P_GLOBAL, GLOBAL_VAR(bHostMSDfs), NULL, NULL},
        {"winbind separator", P_STRING, P_GLOBAL, GLOBAL_VAR(szWinbindSeparator), NULL, NULL },
        {"winbindd socket directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szWinbinddSocketDirectory), NULL, NULL },
+       {"winbindd privileged socket directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szWinbinddPrivilegedSocketDirectory), NULL, NULL },
        {"winbind sealed pipes", P_BOOL, P_GLOBAL, GLOBAL_VAR(bWinbindSealedPipes), NULL, NULL },
        {"template shell", P_STRING, P_GLOBAL, GLOBAL_VAR(szTemplateShell), NULL, NULL },
        {"template homedir", P_STRING, P_GLOBAL, GLOBAL_VAR(szTemplateHomedir), NULL, NULL },
@@ -631,6 +633,7 @@ _PUBLIC_ FN_GLOBAL_STRING(lp_wins_config_url, szWINS_CONFIG_URL)
 _PUBLIC_ FN_GLOBAL_STRING(lp_wins_url, szWINS_URL)
 _PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbind_separator, szWinbindSeparator)
 _PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbindd_socket_directory, szWinbinddSocketDirectory)
+_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbindd_privileged_socket_directory, szWinbinddPrivilegedSocketDirectory)
 _PUBLIC_ FN_GLOBAL_CONST_STRING(lp_template_shell, szTemplateShell)
 _PUBLIC_ FN_GLOBAL_CONST_STRING(lp_template_homedir, szTemplateHomedir)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_winbind_sealed_pipes, bWinbindSealedPipes)
@@ -2382,6 +2385,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lp_do_global_parameter(lp_ctx, "winbind separator", "\\");
        lp_do_global_parameter(lp_ctx, "winbind sealed pipes", "True");
        lp_do_global_parameter(lp_ctx, "winbindd socket directory", dyn_WINBINDD_SOCKET_DIR);
+       lp_do_global_parameter(lp_ctx, "winbindd privileged socket directory", dyn_WINBINDD_PRIVILEGED_SOCKET_DIR);
        lp_do_global_parameter(lp_ctx, "template shell", "/bin/false");
        lp_do_global_parameter(lp_ctx, "template homedir", "/home/%WORKGROUP%/%ACCOUNTNAME%");
        lp_do_global_parameter(lp_ctx, "idmap trusted only", "False");
index 06a42575adba7c731b7c5d259ea42fe60c547d75..4ed2654692ea6dbff3b039cb60a797686b3a977f 100644 (file)
@@ -91,6 +91,7 @@ const char *lp_wins_config_url(struct loadparm_context *);
 const char *lp_wins_url(struct loadparm_context *);
 const char *lp_winbind_separator(struct loadparm_context *);
 const char *lp_winbindd_socket_directory(struct loadparm_context *);
+const char *lp_winbindd_privileged_socket_directory(struct loadparm_context *);
 const char *lp_template_shell(struct loadparm_context *);
 const char *lp_template_homedir(struct loadparm_context *);
 bool lp_winbind_sealed_pipes(struct loadparm_context *);
index aff239312d5414a67656fae4188c27409af3341f..48fd752f0eced5e3e051c2a530a8ce5c77e538ea 100644 (file)
@@ -2479,7 +2479,7 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags)
 #define SWIGTYPE_p_int swig_types[2]
 #define SWIGTYPE_p_loadparm_context swig_types[3]
 #define SWIGTYPE_p_loadparm_service swig_types[4]
-#define SWIGTYPE_p_long_long swig_types[5]
+#define SWIGTYPE_p_long swig_types[5]
 #define SWIGTYPE_p_param_context swig_types[6]
 #define SWIGTYPE_p_param_opt swig_types[7]
 #define SWIGTYPE_p_param_section swig_types[8]
@@ -2487,7 +2487,7 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags)
 #define SWIGTYPE_p_signed_char swig_types[10]
 #define SWIGTYPE_p_unsigned_char swig_types[11]
 #define SWIGTYPE_p_unsigned_int swig_types[12]
-#define SWIGTYPE_p_unsigned_long_long swig_types[13]
+#define SWIGTYPE_p_unsigned_long swig_types[13]
 #define SWIGTYPE_p_unsigned_short swig_types[14]
 static swig_type_info *swig_types[16];
 static swig_module_info swig_module = {swig_types, 15, 0, 0, 0, 0};
@@ -4250,18 +4250,18 @@ static PyMethodDef SwigMethods[] = {
 
 static swig_type_info _swigt__p_TALLOC_CTX = {"_p_TALLOC_CTX", "TALLOC_CTX *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_int = {"_p_int", "intptr_t *|int *|int_least32_t *|int_fast32_t *|int32_t *|int_fast16_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_int = {"_p_int", "int *|int_least32_t *|int32_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_loadparm_context = {"_p_loadparm_context", "struct loadparm_context *|loadparm_context *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_loadparm_service = {"_p_loadparm_service", "struct loadparm_service *|loadparm_service *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_long_long = {"_p_long_long", "int_least64_t *|int_fast64_t *|int64_t *|long long *|intmax_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_long = {"_p_long", "intptr_t *|int_least64_t *|int_fast32_t *|int_fast64_t *|int64_t *|long *|int_fast16_t *|intmax_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_param_context = {"_p_param_context", "struct param_context *|param *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_param_opt = {"_p_param_opt", "struct param_opt *|param_opt *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_param_section = {"_p_param_section", "struct param_section *|param_section *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_short = {"_p_short", "short *|int_least16_t *|int16_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_signed_char = {"_p_signed_char", "signed char *|int_least8_t *|int_fast8_t *|int8_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint_least8_t *|uint_fast8_t *|uint8_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uintptr_t *|uint_least32_t *|uint_fast32_t *|uint32_t *|unsigned int *|uint_fast16_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint_least64_t *|uint_fast64_t *|uint64_t *|unsigned long long *|uintmax_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint_least32_t *|uint32_t *|unsigned int *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "uintptr_t *|uint_least64_t *|uint_fast32_t *|uint_fast64_t *|uint64_t *|unsigned long *|uint_fast16_t *|uintmax_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint_least16_t *|uint16_t *", 0, 0, (void*)0, 0};
 
 static swig_type_info *swig_type_initial[] = {
@@ -4270,7 +4270,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_int,
   &_swigt__p_loadparm_context,
   &_swigt__p_loadparm_service,
-  &_swigt__p_long_long,
+  &_swigt__p_long,
   &_swigt__p_param_context,
   &_swigt__p_param_opt,
   &_swigt__p_param_section,
@@ -4278,7 +4278,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_signed_char,
   &_swigt__p_unsigned_char,
   &_swigt__p_unsigned_int,
-  &_swigt__p_unsigned_long_long,
+  &_swigt__p_unsigned_long,
   &_swigt__p_unsigned_short,
 };
 
@@ -4287,7 +4287,7 @@ static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0,
 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_loadparm_context[] = {  {&_swigt__p_loadparm_context, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_loadparm_service[] = {  {&_swigt__p_loadparm_service, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_long_long[] = {  {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_long[] = {  {&_swigt__p_long, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_param_context[] = {  {&_swigt__p_param_context, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_param_opt[] = {  {&_swigt__p_param_opt, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_param_section[] = {  {&_swigt__p_param_section, 0, 0, 0},{0, 0, 0, 0}};
@@ -4295,7 +4295,7 @@ static swig_cast_info _swigc__p_short[] = {  {&_swigt__p_short, 0, 0, 0},{0, 0,
 static swig_cast_info _swigc__p_signed_char[] = {  {&_swigt__p_signed_char, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_unsigned_int[] = {  {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_unsigned_long_long[] = {  {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_unsigned_long[] = {  {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_unsigned_short[] = {  {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}};
 
 static swig_cast_info *swig_cast_initial[] = {
@@ -4304,7 +4304,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_int,
   _swigc__p_loadparm_context,
   _swigc__p_loadparm_service,
-  _swigc__p_long_long,
+  _swigc__p_long,
   _swigc__p_param_context,
   _swigc__p_param_opt,
   _swigc__p_param_section,
@@ -4312,7 +4312,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_signed_char,
   _swigc__p_unsigned_char,
   _swigc__p_unsigned_int,
-  _swigc__p_unsigned_long_long,
+  _swigc__p_unsigned_long,
   _swigc__p_unsigned_short,
 };
 
index b3dc984593efc14390e78163fed76fff889a95b0..6283a3799a3be55a971053cbb0d1a1428469a406 100644 (file)
@@ -520,7 +520,8 @@ sub provision($$$$$$)
        my $privatedir = "$prefix_abs/private";
        my $ncalrpcdir = "$prefix_abs/ncalrpc";
        my $lockdir = "$prefix_abs/lockdir";
-       my $winbindd_socket_dir = "$prefix_abs/winbind_socket";
+       my $winbindd_socket_dir = "$prefix_abs/winbindd_socket";
+       my $winbindd_privileged_socket_dir = "$prefix_abs/winbindd_privileged_socket";
        my $ntp_signd_socket_dir = "$prefix_abs/ntp_signd_socket";
        my $winbindd_priv_pipe_dir = "$privatedir/smbd.tmp/winbind_pipe";
        my $nsswrap_passwd = "$etcdir/passwd";
@@ -557,6 +558,7 @@ sub provision($$$$$$)
        modules dir = $self->{bindir}/modules
        js include = $srcdir/scripting/libjs
        winbindd socket directory = $winbindd_socket_dir
+       winbindd privileged socket directory = $winbindd_privileged_socket_dir
        ntp signd socket directory = $ntp_signd_socket_dir
         winbind separator = /
        name resolve order = bcast
index 14d62b8568d76d49adf378b3f21f9c50405d558e..97646f2849f2045f729ab6570a46514507d2509f 100644 (file)
@@ -136,6 +136,13 @@ static void winbind_task_init(struct task_server *task)
                return;
        }
 
+       /* Make sure the directory for the Samba3 socket exists, and is of the correct permissions */
+       if (!directory_create_or_exist(lp_winbindd_privileged_socket_directory(task->lp_ctx), geteuid(), 0750)) {
+               task_server_terminate(task,
+                                     "Cannot create winbindd privileged pipe directory");
+               return;
+       }
+
        service = talloc_zero(task, struct wbsrv_service);
        if (!service) goto nomem;
        service->task   = task;
@@ -175,9 +182,10 @@ static void winbind_task_init(struct task_server *task)
        /* setup the privileged samba3 socket */
        listen_socket = talloc(service, struct wbsrv_listen_socket);
        if (!listen_socket) goto nomem;
-       listen_socket->socket_path      =
-               smbd_tmp_path(listen_socket, task->lp_ctx, 
-                             WINBINDD_SAMBA3_PRIVILEGED_SOCKET);
+       listen_socket->socket_path      = talloc_asprintf(listen_socket, "%s/%s", 
+                                                         lp_winbindd_privileged_socket_directory(task->lp_ctx), 
+                                                         WINBINDD_SAMBA3_SOCKET);
+       if (!listen_socket->socket_path) goto nomem;
        if (!listen_socket->socket_path) goto nomem;
        listen_socket->service          = service;
        listen_socket->privileged       = true;