View | Details | Raw Unified | Return to bug 113358
Collapse All | Expand All

(-)Makefile (-6 / +66 lines)
Lines 6-12 Link Here
6
#
6
#
7
7
8
PORTNAME=		samba
8
PORTNAME=		samba
9
PORTVERSION?=		3.0.25
9
PORTVERSION?=		3.0.25a
10
PORTREVISION?=		0
10
PORTREVISION?=		0
11
PORTEPOCH?=		1
11
PORTEPOCH?=		1
12
CATEGORIES?=		net
12
CATEGORIES?=		net
Lines 76-82 Link Here
76
		DNSUPDATE	"With dynamic DNS update" off \
76
		DNSUPDATE	"With dynamic DNS update" off \
77
		EXP_MODULES	"With experimental modules" off \
77
		EXP_MODULES	"With experimental modules" off \
78
		POPT		"With system-wide POPT library" on \
78
		POPT		"With system-wide POPT library" on \
79
		MAX_DEBUG	"With maximum debuging" off
79
		MAX_DEBUG	"With maximum debuging" off \
80
		SMBTORTURE	"With smbtorture" off
80
.endif
81
.endif
81
82
82
.include <bsd.port.pre.mk>
83
.include <bsd.port.pre.mk>
Lines 180-188 Link Here
180
.		if !defined(WITH_MAX_DEBUG)
181
.		if !defined(WITH_MAX_DEBUG)
181
WANT_EXP_MODULES+=	rpc_echo
182
WANT_EXP_MODULES+=	rpc_echo
182
.		endif
183
.		endif
184
WANT_EXP_MODULES+=	vfs_catia vfs_cacheprime vfs_commit
183
.	endif
185
.	endif
184
WANT_EXP_MODULES!=	${ECHO_CMD} ${WANT_EXP_MODULES} | ${SED} -E 's/ +/,/g'
186
USE_EXP_MODULES!=	${ECHO_CMD} ${WANT_EXP_MODULES} | ${SED} -E 's/ +/,/g'
185
CONFIGURE_ARGS+=	--with-shared-modules="${WANT_EXP_MODULES}"
187
CONFIGURE_ARGS+=	--with-shared-modules="${USE_EXP_MODULES}"
186
.endif
188
.endif
187
189
188
.if defined(WITH_PAM_SMBPASS)
190
.if defined(WITH_PAM_SMBPASS)
Lines 218-223 Link Here
218
.endif
220
.endif
219
221
220
.if defined(WITH_DNSUPDATE)
222
.if defined(WITH_DNSUPDATE)
223
.	if !defined(WITH_ADS)
224
IGNORE=			dynamic DNS updates require ADS support
225
.	endif
221
LIB_DEPENDS+=		uuid.1:${PORTSDIR}/misc/e2fsprogs-libuuid
226
LIB_DEPENDS+=		uuid.1:${PORTSDIR}/misc/e2fsprogs-libuuid
222
CONFIGURE_ARGS+=	--with-dnsupdate
227
CONFIGURE_ARGS+=	--with-dnsupdate
223
.else
228
.else
Lines 283-288 Link Here
283
CONFIGURE_ARGS+=	--without-ldap
288
CONFIGURE_ARGS+=	--without-ldap
284
.endif
289
.endif
285
290
291
.if defined(WITH_SMBTORTURE)
292
PLIST_SUB+=		SMBTORTURE=""
293
.else
294
PLIST_SUB+=		SMBTORTURE="@comment "
295
.endif
296
286
.if !defined(SAMBA_SUBPORT)
297
.if !defined(SAMBA_SUBPORT)
287
# Samba server itself
298
# Samba server itself
288
MAN1=		findsmb.1 log2pcap.1 nmblookup.1 ntlm_auth.1 profiles.1 \
299
MAN1=		findsmb.1 log2pcap.1 nmblookup.1 ntlm_auth.1 profiles.1 \
Lines 290-297 Link Here
290
		smbget.1 smbstatus.1 smbtar.1 smbtree.1 testparm.1 vfstest.1
301
		smbget.1 smbstatus.1 smbtar.1 smbtree.1 testparm.1 vfstest.1
291
MAN5=		lmhosts.5 smb.conf.5 smbgetrc.5 smbpasswd.5
302
MAN5=		lmhosts.5 smb.conf.5 smbgetrc.5 smbpasswd.5
292
MAN7=		samba.7
303
MAN7=		samba.7
293
MAN8=		net.8 nmbd.8 pdbedit.8 smbd.8 smbpasswd.8 smbspool.8 \
304
MAN8=		eventlogadm.8 net.8 nmbd.8 pdbedit.8 smbd.8 smbpasswd.8 \
294
		swat.8 tdbbackup.8 tdbdump.8
305
		smbspool.8 swat.8 tdbbackup.8 tdbdump.8 tdbtool.8 \
306
		idmap_nss.8 idmap_tdb.8 \
307
		vfs_audit.8 vfs_cap.8 vfs_default_quota.8 vfs_extd_audit.8 \
308
		vfs_fake_perms.8 vfs_full_audit.8 vfs_netatalk.8 \
309
		vfs_readahead.8	vfs_readonly.8 vfs_recycle.8 \
310
		vfs_shadow_copy.8
311
295
.if defined(WITH_SMBSH)
312
.if defined(WITH_SMBSH)
296
MAN1+=		smbsh.1
313
MAN1+=		smbsh.1
297
.endif
314
.endif
Lines 301-306 Link Here
301
MAN8+=		winbindd.8
318
MAN8+=		winbindd.8
302
.endif
319
.endif
303
320
321
.if defined(WITH_FAM_SUPPORT)
322
MAN8+=		vfs_notify_fam.8
323
.endif
324
325
.if defined(SAMBA_WANT_LDAP)
326
MAN8+=		idmap_ldap.8
327
.endif
328
329
.if !empty(WANT_EXP_MODULES:Midmap_ad)
330
MAN8+=		idmap_ad.8
331
.endif
332
333
.if !empty(WANT_EXP_MODULES:Midmap_rid)
334
MAN8+=		idmap_rid.8
335
.endif
336
337
.if !empty(WANT_EXP_MODULES:Mvfs_cacheprime)
338
MAN8+=		vfs_cacheprime.8
339
.endif
340
341
.if !empty(WANT_EXP_MODULES:Mvfs_catia)
342
MAN8+=		vfs_catia.8
343
.endif
344
345
.if !empty(WANT_EXP_MODULES:Mvfs_commit)
346
MAN8+=		vfs_commit.8
347
.endif
348
304
PLIST_SUB+=	SAMBA_LOGDIR="${SAMBA_LOGDIR}" \
349
PLIST_SUB+=	SAMBA_LOGDIR="${SAMBA_LOGDIR}" \
305
		SAMBA_LOCKDIR="${SAMBA_LOCKDIR}" \
350
		SAMBA_LOCKDIR="${SAMBA_LOCKDIR}" \
306
		SAMBA_CONFDIR="${SAMBA_CONFDIR}" \
351
		SAMBA_CONFDIR="${SAMBA_CONFDIR}" \
Lines 346-351 Link Here
346
	@${FIND} ${WRKDIR}/${DISTNAME} -type d | ${XARGS} ${CHMOD} u+w,a+rx
391
	@${FIND} ${WRKDIR}/${DISTNAME} -type d | ${XARGS} ${CHMOD} u+w,a+rx
347
	@${FIND} ${WRKDIR}/${DISTNAME} -type f | ${XARGS} ${CHMOD} u+w,a+r
392
	@${FIND} ${WRKDIR}/${DISTNAME} -type f | ${XARGS} ${CHMOD} u+w,a+r
348
393
394
# This would speedup compilation for gcc 3.4(available in FreeBSD 5.2) and higher
395
.if ${OSVERSION} >= 502126
396
pre-build:
397
	cd ${WRKSRC} && ${MAKE} pch
398
.endif
399
400
.if defined(WITH_SMBTORTURE)
401
post-build:
402
	cd ${WRKSRC} && ${MAKE} smbtorture
403
.endif
404
349
pre-install:
405
pre-install:
350
	-@${FIND} "${SAMBA_MODULEDIR}" -type f 2>/dev/null | ${SORT} | ${SED} -E 's|^${PREFIX}/?||;' >> ${WRKDIR}/.PLIST.exclude
406
	-@${FIND} "${SAMBA_MODULEDIR}" -type f 2>/dev/null | ${SORT} | ${SED} -E 's|^${PREFIX}/?||;' >> ${WRKDIR}/.PLIST.exclude
351
	@${CAT} ${PKGDIR}/pkg-plist > ${PLIST}
407
	@${CAT} ${PKGDIR}/pkg-plist > ${PLIST}
Lines 382-387 Link Here
382
	${INSTALL_PROGRAM} "${WRKSRC}/bin/pam_smbpass.so" "${SAMBA_LIBDIR}"
438
	${INSTALL_PROGRAM} "${WRKSRC}/bin/pam_smbpass.so" "${SAMBA_LIBDIR}"
383
	@${ECHO_CMD} "${SAMBA_LIB}/pam_smbpass.so" >> ${TMPPLIST};
439
	@${ECHO_CMD} "${SAMBA_LIB}/pam_smbpass.so" >> ${TMPPLIST};
384
.endif
440
.endif
441
# smbtorture
442
.if defined(WITH_SMBTORTURE)
443
	${INSTALL_PROGRAM} "${WRKSRC}/bin/smbtorture" "${PREFIX}/bin"
444
.endif
385
# smbwrapper.so
445
# smbwrapper.so
386
.if defined(WITH_SMBSH)
446
.if defined(WITH_SMBSH)
387
	${INSTALL_PROGRAM} "${WRKSRC}/bin/smbsh" "${PREFIX}/bin"
447
	${INSTALL_PROGRAM} "${WRKSRC}/bin/smbsh" "${PREFIX}/bin"
(-)distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
MD5 (samba-3.0.25.tar.gz) = 267bd56b178a1b1285a41ec4cc1b75f0
1
MD5 (samba-3.0.25a.tar.gz) = cbd33bb5d904ccd8a294a4019743745d
2
SHA256 (samba-3.0.25.tar.gz) = c88981d1ad221583ebcc96bcda81fb8f957ea82fe1828444fdef523ccf07db73
2
SHA256 (samba-3.0.25a.tar.gz) = 12f4fa70b5131520b58f3b62450a2e304dd63efe2532905a0760c7f11a308470
3
SIZE (samba-3.0.25.tar.gz) = 18234944
3
SIZE (samba-3.0.25a.tar.gz) = 18145636
(-)pkg-plist (+1 lines)
Lines 22-27 Link Here
22
bin/tdbtool
22
bin/tdbtool
23
bin/testparm
23
bin/testparm
24
%%SMBSH%%bin/smbsh
24
%%SMBSH%%bin/smbsh
25
%%SMBTORTURE%%bin/smbtorture
25
%%WINBIND%%bin/wbinfo
26
%%WINBIND%%bin/wbinfo
26
sbin/smbd
27
sbin/smbd
27
sbin/nmbd
28
sbin/nmbd
(-)files/patch-client_client.c (+20 lines)
Added Link Here
1
--- client/client.c.orig	Tue Jun  5 02:42:29 2007
2
+++ client/client.c	Tue Jun  5 02:54:19 2007
3
@@ -2443,7 +2443,7 @@
4
 				break;
5
 			case SMB_POSIX_ACL_GROUP:
6
 				uorg = IVAL(retbuf,SMB_POSIX_ACL_HEADER_SIZE+(i*SMB_POSIX_ACL_ENTRY_SIZE)+2);
7
-				d_printf("group:%u", uorg);
8
+				d_printf("group:%u:", uorg);
9
 				break;
10
 			case SMB_POSIX_ACL_MASK:
11
 				d_printf("mask::");
12
@@ -2480,7 +2480,7 @@
13
 				break;
14
 			case SMB_POSIX_ACL_GROUP:
15
 				uorg = IVAL(retbuf,SMB_POSIX_ACL_HEADER_SIZE+((i+num_file_acls)*SMB_POSIX_ACL_ENTRY_SIZE)+2);
16
-				d_printf("default:group:%u", uorg);
17
+				d_printf("default:group:%u:", uorg);
18
 				break;
19
 			case SMB_POSIX_ACL_MASK:
20
 				d_printf("default:mask::");
(-)files/patch-configure.in (-9 / +25 lines)
Lines 1-6 Link Here
1
--- configure.in.orig	Mon Apr  9 19:31:00 2007
1
--- configure.in.orig	Wed May 23 17:29:20 2007
2
+++ configure.in	Wed Apr 18 03:30:37 2007
2
+++ configure.in	Mon Jun  4 03:22:42 2007
3
@@ -1040,6 +1040,21 @@
3
@@ -1041,6 +1041,21 @@
4
    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
4
    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
5
 fi
5
 fi
6
 
6
 
Lines 22-28 Link Here
22
 AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
22
 AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
23
     AC_TRY_COMPILE([
23
     AC_TRY_COMPILE([
24
 #include <sys/types.h>
24
 #include <sys/types.h>
25
@@ -5075,7 +5090,7 @@
25
@@ -4033,10 +4048,10 @@
26
 
27
   ################################################################
28
   # first test for Active Directory support being enabled
29
-  #if test x"$with_ads_support" = x"no"; then
30
-  #		AC_MSG_ERROR(Active Directory support is required to enable DNS Update support)
31
-  #		with_dnsupdate_support=no
32
-  #fi	  	
33
+  if test x"$with_ads_support" = x"no"; then
34
+  		AC_MSG_ERROR(Active Directory support is required to enable DNS Update support)
35
+  		with_dnsupdate_support=no
36
+  fi	  	
37
   ##################################################################
38
   # then test for uuid.h (necessary to generate unique DNS keynames
39
   # (uuid.h is required for this test)
40
@@ -5107,7 +5122,7 @@
26
 #################################################
41
 #################################################
27
 # check for ACL support
42
 # check for ACL support
28
 
43
 
Lines 31-37 Link Here
31
 AC_ARG_WITH(acl-support,
46
 AC_ARG_WITH(acl-support,
32
 [  --with-acl-support      Include ACL support (default=no)],
47
 [  --with-acl-support      Include ACL support (default=no)],
33
 [ case "$withval" in
48
 [ case "$withval" in
34
@@ -5083,42 +5098,37 @@
49
@@ -5115,43 +5130,37 @@
35
 
50
 
36
 	case "$host_os" in
51
 	case "$host_os" in
37
 	*sysv5*)
52
 	*sysv5*)
Lines 77-87 Link Here
77
-		AC_MSG_RESULT(Using FreeBSD posix ACLs)
92
-		AC_MSG_RESULT(Using FreeBSD posix ACLs)
78
-		AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
93
-		AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
79
-		AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
94
-		AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
95
-		default_static_modules="$default_static_modules vfs_posixacl"
80
-		;;
96
-		;;
81
 	*linux*)
97
 	*linux*)
82
 		AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
98
 		AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
83
        		AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
99
        		AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
84
@@ -5139,7 +5149,7 @@
100
@@ -5172,7 +5181,7 @@
85
 			LIBS=$acl_LIBS
101
 			LIBS=$acl_LIBS
86
 		])
102
 		])
87
 		if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
103
 		if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
Lines 90-96 Link Here
90
 			AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
106
 			AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
91
 			AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
107
 			AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
92
 				acl_LIBS=$LIBS
108
 				acl_LIBS=$LIBS
93
@@ -5160,12 +5170,18 @@
109
@@ -5193,12 +5202,18 @@
94
 				AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
110
 				AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
95
 			fi
111
 			fi
96
 		fi
112
 		fi
Lines 113-119 Link Here
113
 			AC_TRY_LINK([
129
 			AC_TRY_LINK([
114
 				#include <sys/types.h>
130
 				#include <sys/types.h>
115
 				#include <sys/acl.h>
131
 				#include <sys/acl.h>
116
@@ -5178,20 +5194,20 @@
132
@@ -5211,20 +5226,20 @@
117
 			[samba_cv_HAVE_POSIX_ACLS=yes],
133
 			[samba_cv_HAVE_POSIX_ACLS=yes],
118
 			[samba_cv_HAVE_POSIX_ACLS=no])
134
 			[samba_cv_HAVE_POSIX_ACLS=no])
119
 			LIBS=$acl_LIBS
135
 			LIBS=$acl_LIBS
Lines 139-145 Link Here
139
 				],
155
 				],
140
 				[samba_cv_HAVE_ACL_GET_PERM_NP=yes],
156
 				[samba_cv_HAVE_ACL_GET_PERM_NP=yes],
141
 				[samba_cv_HAVE_ACL_GET_PERM_NP=no])
157
 				[samba_cv_HAVE_ACL_GET_PERM_NP=no])
142
@@ -5200,17 +5216,22 @@
158
@@ -5233,17 +5248,22 @@
143
 			if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
159
 			if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
144
 				AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
160
 				AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
145
 			fi
161
 			fi
(-)files/patch-lib_iconv.c (+11 lines)
Added Link Here
1
--- lib/iconv.c.orig	Tue Jun  5 01:45:05 2007
2
+++ lib/iconv.c	Tue Jun  5 01:46:09 2007
3
@@ -137,7 +137,7 @@
4
 			char **outbuf, size_t *outbytesleft)
5
 {
6
 	size_t ret = iconv((iconv_t)cd, 
7
-			   (char **)inbuf, inbytesleft, 
8
+			   inbuf, inbytesleft, 
9
 			   outbuf, outbytesleft);
10
 	if (ret == (size_t)-1) {
11
 		int saved_errno = errno;
(-)files/patch-lib_replace_libreplace_cc.m4 (+13 lines)
Added Link Here
1
--- lib/replace/libreplace_cc.m4.orig	Thu Mar  1 05:54:23 2007
2
+++ lib/replace/libreplace_cc.m4	Mon Jun  4 21:20:13 2007
3
@@ -131,6 +131,10 @@
4
 AC_CHECK_TYPE(intptr_t, unsigned long long)
5
 AC_CHECK_TYPE(ptrdiff_t, unsigned long long)
6
 
7
+if test x"$ac_cv_type_intptr_t" = x"yes"; then
8
+	AC_DEFINE(HAVE_INTPTR_T,1,[Whether the host has intptr_t])
9
+fi
10
+
11
 if test x"$ac_cv_type_long_long" != x"yes";then
12
 	AC_MSG_ERROR([LIBREPLACE needs type 'long long'])
13
 fi
(-)files/patch-modules_vfs_posixacl.c (-15 lines)
Removed Link Here
1
--- modules/vfs_posixacl.c.orig	Wed Apr 18 11:51:22 2007
2
+++ modules/vfs_posixacl.c	Wed Apr 18 11:51:48 2007
3
@@ -200,9 +200,9 @@
4
 		return False;
5
 	}
6
 	ace->a_perm = 0;
7
-	ace->a_perm |= (acl_get_perm(permset, ACL_READ) ? SMB_ACL_READ : 0);
8
-	ace->a_perm |= (acl_get_perm(permset, ACL_WRITE) ? SMB_ACL_WRITE : 0);
9
-	ace->a_perm |= (acl_get_perm(permset, ACL_EXECUTE) ? SMB_ACL_EXECUTE : 0);
10
+	ace->a_perm |= (acl_get_perm_np(permset, ACL_READ) ? SMB_ACL_READ : 0);
11
+	ace->a_perm |= (acl_get_perm_np(permset, ACL_WRITE) ? SMB_ACL_WRITE : 0);
12
+	ace->a_perm |= (acl_get_perm_np(permset, ACL_EXECUTE) ? SMB_ACL_EXECUTE : 0);
13
 	return True;
14
 }
15
 
(-)files/patch-nsswitch_pam_winbind.c (-2 / +147 lines)
Lines 1-5 Link Here
1
--- ./nsswitch/pam_winbind.c.orig	Mon Apr  9 19:30:57 2007
1
--- nsswitch/pam_winbind.c.orig	Sat Apr 21 03:48:07 2007
2
+++ ./nsswitch/pam_winbind.c	Tue Apr 17 02:06:59 2007
2
+++ nsswitch/pam_winbind.c	Mon Jun  4 02:56:34 2007
3
@@ -14,13 +14,13 @@
4
 
5
 #define _PAM_LOG_FUNCTION_ENTER(function, pamh, ctrl, flags) \
6
 	do { \
7
-		_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] ENTER: " function " (flags: 0x%04x)", (uint32) pamh, flags); \
8
+		_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] ENTER: " function " (flags: 0x%04x)", pamh, flags); \
9
 		_pam_log_state(pamh, ctrl); \
10
 	} while (0)
11
 
12
 #define _PAM_LOG_FUNCTION_LEAVE(function, pamh, ctrl, retval) \
13
 	do { \
14
-		_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] LEAVE: " function " returning %d", (uint32) pamh, retval); \
15
+		_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] LEAVE: " function " returning %d", pamh, retval); \
16
 		_pam_log_state(pamh, ctrl); \
17
 	} while (0)
18
 
19
@@ -32,16 +32,16 @@
20
  * Work around the pam API that has functions with void ** as parameters.
21
  * These lead to strict aliasing warnings with gcc.
22
  */
23
-static int _pam_get_item(const pam_handle_t *pamh, int item_type,
24
+static int _pam_get_item(pam_handle_t *pamh, int item_type,
25
 			 const void *_item)
26
 {
27
 	const void **item = (const void **)_item;
28
 	return pam_get_item(pamh, item_type, item);
29
 }
30
-static int _pam_get_data(const pam_handle_t *pamh,
31
-			 const char *module_data_name, const void *_data)
32
+static int _pam_get_data(pam_handle_t *pamh,
33
+			 const char *module_data_name, void *_data)
34
 {
35
-	const void **data = (const void **)_data;
36
+	void **data = (void **)_data;
37
 	return pam_get_data(pamh, module_data_name, data);
38
 }
39
 
40
@@ -53,7 +53,7 @@
41
 	pam_vsyslog(pamh, err, format, args);
42
 }
43
 #else
44
-static void _pam_log_int(const pam_handle_t *pamh, int err, const char *format, va_list args)
45
+static void _pam_log_int(pam_handle_t *pamh, int err, const char *format, va_list args)
46
 {
47
 	char *format2 = NULL;
48
 	const char *service;
49
@@ -78,8 +78,8 @@
50
 	return on(ctrl, WINBIND_SILENT);
51
 }
52
 
53
-static void _pam_log(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5);
54
-static void _pam_log(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...)
55
+static void _pam_log(pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5);
56
+static void _pam_log(pam_handle_t *pamh, int ctrl, int err, const char *format, ...)
57
 {
58
 	va_list args;
59
 
60
@@ -118,8 +118,8 @@
61
 	return _pam_log_is_debug_enabled(ctrl);
62
 }
63
 
64
-static void _pam_log_debug(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5);
65
-static void _pam_log_debug(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...)
66
+static void _pam_log_debug(pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5);
67
+static void _pam_log_debug(pam_handle_t *pamh, int ctrl, int err, const char *format, ...)
68
 {
69
 	va_list args;
70
 
71
@@ -132,20 +132,20 @@
72
 	va_end(args);
73
 }
74
 
75
-static void _pam_log_state_datum(const pam_handle_t *pamh, int ctrl, int item_type, const char *key, int is_string)
76
+static void _pam_log_state_datum(pam_handle_t *pamh, int ctrl, int item_type, const char *key, int is_string)
77
 {
78
-	const void *data = NULL;
79
+	void *data = NULL;
80
 	if (item_type != 0) {
81
-		pam_get_item(pamh, item_type, &data);
82
+		_pam_get_item(pamh, item_type, &data);
83
 	} else {
84
 		pam_get_data(pamh, key, &data);
85
 	}
86
 	if (data != NULL) {
87
 		const char *type = (item_type != 0) ? "ITEM" : "DATA";
88
 		if (is_string != 0) {
89
-			_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] STATE: %s(%s) = \"%s\" (0x%08x)", (uint32) pamh, type, key, (const char *) data, (uint32) data);
90
+			_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] STATE: %s(%s) = \"%s\" (0x%p)", pamh, type, key, (const char *) data, data);
91
 		} else {
92
-			_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] STATE: %s(%s) = 0x%08x", (uint32) pamh, type, key, (uint32) data);
93
+			_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] STATE: %s(%s) = 0x%p", pamh, type, key, data);
94
 		}
95
 	}
96
 }
97
@@ -171,7 +171,7 @@
98
 #define _PAM_LOG_STATE_ITEM_PASSWORD(pamh, ctrl, item_type) \
99
 	_pam_log_state_datum(pamh, ctrl, item_type, #item_type, _LOG_PASSWORD_AS_STRING)
100
 
101
-static void _pam_log_state(const pam_handle_t *pamh, int ctrl)
102
+static void _pam_log_state(pam_handle_t *pamh, int ctrl)
103
 {
104
 	if (!_pam_log_is_debug_state_enabled(ctrl)) {
105
 		return;
106
@@ -202,7 +202,7 @@
107
 	_PAM_LOG_STATE_DATA_POINTER(pamh, ctrl, PAM_WINBIND_PWD_LAST_SET);
108
 }
109
 
110
-static int _pam_parse(const pam_handle_t *pamh, int flags, int argc, const char **argv, dictionary **result_d)
111
+static int _pam_parse(pam_handle_t *pamh, int flags, int argc, const char **argv, dictionary **result_d)
112
 {
113
 	int ctrl = 0;
114
 	const char *config_file = NULL;
115
@@ -313,7 +313,7 @@
116
 {
117
 	int ctrl = _pam_parse(pamh, 0, 0, NULL, NULL);
118
 	if (_pam_log_is_debug_state_enabled(ctrl)) {
119
-		_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] CLEAN: cleaning up PAM data 0x%08x (error_status = %d)", (uint32) pamh, (uint32) data, error_status);
120
+		_pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] CLEAN: cleaning up PAM data 0x%p (error_status = %d)", pamh, data, error_status);
121
 	}
122
 	SAFE_FREE(data);
123
 }
124
@@ -1441,7 +1441,7 @@
125
 	return PAM_SUCCESS;
126
 }
127
 
128
-const char *get_conf_item_string(const pam_handle_t *pamh,
129
+const char *get_conf_item_string(pam_handle_t *pamh,
130
 				 int argc, 
131
 				 const char **argv, 
132
 				 int ctrl,
133
@@ -1490,12 +1490,12 @@
134
 	return parm_opt;
135
 }
136
 
137
-const char *get_krb5_cc_type_from_config(const pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d)
138
+const char *get_krb5_cc_type_from_config(pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d)
139
 {
140
 	return get_conf_item_string(pamh, argc, argv, ctrl, d, "krb5_ccache_type", WINBIND_KRB5_CCACHE_TYPE);
141
 }
142
 
143
-const char *get_member_from_config(const pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d)
144
+const char *get_member_from_config(pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d)
145
 {
146
 	const char *ret = NULL;
147
 	ret = get_conf_item_string(pamh, argc, argv, ctrl, d, "require_membership_of", WINBIND_REQUIRED_MEMBERSHIP);
3
@@ -1735,7 +1735,7 @@
148
@@ -1735,7 +1735,7 @@
4
 		ret = PAM_USER_UNKNOWN;
149
 		ret = PAM_USER_UNKNOWN;
5
 		goto out;
150
 		goto out;
(-)files/patch-nsswitch_winbindd.c (+12 lines)
Added Link Here
1
--- nsswitch/winbindd.c.orig	Sun Apr 22 01:00:32 2007
2
+++ nsswitch/winbindd.c	Mon Jun  4 02:59:13 2007
3
@@ -303,6 +303,9 @@
4
 	if (state->mem_ctx == NULL)
5
 		return;
6
 
7
+	/* Remember who asked us. */
8
+	state->pid = state->request.pid;
9
+
10
 	/* Process command */
11
 
12
 	for (table = dispatch_table; table->fn; table++) {
(-)files/patch-python_setup.py (-11 lines)
Removed Link Here
1
--- python/setup.py.orig	Tue May 15 13:41:41 2007
2
+++ python/setup.py	Tue May 15 13:43:03 2007
3
@@ -67,6 +67,8 @@
4
         libraries.append(lib[2:])
5
     elif lib[0:8] == ("-pthread"):
6
         pass # Skip linker flags
7
+    elif lib[0:4] == ("-pie"):
8
+        pass # Skip linker flags
9
     elif lib[0:2] == "-L":
10
         library_dirs.append(lib[2:])
11
     elif lib[0:2] in ("-W","-s"):
(-)files/patch-smbd_sec_ctx.c (+63 lines)
Added Link Here
1
--- smbd/sec_ctx.c.orig	Thu Mar  1 05:54:08 2007
2
+++ smbd/sec_ctx.c	Tue Jun  5 01:16:32 2007
3
@@ -192,7 +192,7 @@
4
 
5
 	if (sec_ctx_stack_ndx == MAX_SEC_CTX_DEPTH) {
6
 		DEBUG(0, ("Security context stack overflow!\n"));
7
-		smb_panic("Security context stack overflow!\n");
8
+		smb_panic("Security context stack overflow!");
9
 	}
10
 
11
 	/* Store previous user context */
12
@@ -234,7 +234,9 @@
13
 void set_sec_ctx(uid_t uid, gid_t gid, int ngroups, gid_t *groups, NT_USER_TOKEN *token)
14
 {
15
 	struct sec_ctx *ctx_p = &sec_ctx_stack[sec_ctx_stack_ndx];
16
-	
17
+#ifdef HAVE_SETGROUPS
18
+	gid_t *new_groups = NULL;
19
+#endif
20
 	/* Set the security context */
21
 
22
 	DEBUG(3, ("setting sec ctx (%u, %u) - sec_ctx_stack_ndx = %d\n", 
23
@@ -246,12 +248,20 @@
24
 	gain_root();
25
 
26
 #ifdef HAVE_SETGROUPS
27
-	sys_setgroups(ngroups, groups);
28
+	if (!(new_groups = SMB_MALLOC_ARRAY(gid_t, ngroups+1))) {
29
+	    smb_panic("malloc for groups failed");
30
+	}
31
+	new_groups[0] = gid;
32
+	if(ngroups) {
33
+		memcpy(&new_groups[1], groups, sizeof(gid_t) * ngroups);
34
+	}
35
+	sys_setgroups(ngroups+1, new_groups);
36
+	SAFE_FREE(new_groups);
37
 #endif
38
 
39
 	ctx_p->ut.ngroups = ngroups;
40
-
41
 	SAFE_FREE(ctx_p->ut.groups);
42
+
43
 	if (token && (token == ctx_p->token)) {
44
 		smb_panic("DUPLICATE_TOKEN");
45
 	}
46
@@ -262,7 +272,7 @@
47
 		ctx_p->ut.groups = (gid_t *)memdup(groups,
48
 						   sizeof(gid_t) * ngroups);
49
 		if (!ctx_p->ut.groups) {
50
-			smb_panic("memdup failed");
51
+			smb_panic("memdup for groups failed");
52
 		}
53
 	} else {
54
 		ctx_p->ut.groups = NULL;
55
@@ -315,7 +325,7 @@
56
 
57
 	if (sec_ctx_stack_ndx == 0) {
58
 		DEBUG(0, ("Security context stack underflow!\n"));
59
-		smb_panic("Security context stack underflow!\n");
60
+		smb_panic("Security context stack underflow!");
61
 	}
62
 
63
 	ctx_p = &sec_ctx_stack[sec_ctx_stack_ndx];
(-)files/patch-utils_ntlm_auth.c (+295 lines)
Added Link Here
1
--- utils/ntlm_auth.c.orig	Sun Jun  3 04:28:29 2007
2
+++ utils/ntlm_auth.c	Sun Jun  3 04:47:26 2007
3
@@ -689,8 +689,8 @@
4
 	NTSTATUS nt_status;
5
 
6
 	if (strlen(buf) < 2) {
7
-		DEBUG(1, ("NTLMSSP query [%s] invalid", buf));
8
-		x_fprintf(x_stdout, "BH\n");
9
+		DEBUG(1, ("NTLMSSP query [%s] invalid\n", buf));
10
+		x_fprintf(x_stdout, "BH NTLMSSP query [%s] invalid\n", buf);
11
 		return;
12
 	}
13
 
14
@@ -714,7 +714,7 @@
15
 
16
 		if (opt_password == NULL) {
17
 			DEBUG(1, ("Out of memory\n"));
18
-			x_fprintf(x_stdout, "BH\n");
19
+			x_fprintf(x_stdout, "BH Out of memory\n");
20
 			data_blob_free(&request);
21
 			return;
22
 		}
23
@@ -741,14 +741,14 @@
24
 			x_fprintf(x_stdout, "GK %s\n", key64?key64:"<NULL>");
25
 			SAFE_FREE(key64);
26
 		} else {
27
-			x_fprintf(x_stdout, "BH\n");
28
+			x_fprintf(x_stdout, "BH missing NTLMSSP session key\n");
29
 		}
30
 			
31
 		data_blob_free(&request);
32
 		return;
33
 	} else {
34
-		DEBUG(1, ("NTLMSSP query [%s] invalid", buf));
35
-		x_fprintf(x_stdout, "BH\n");
36
+		DEBUG(1, ("NTLMSSP query [%s] invalid\n", buf));
37
+		x_fprintf(x_stdout, "BH NTLMSSP query [%s] invalid\n", buf);
38
 		return;
39
 	}
40
 
41
@@ -817,8 +817,8 @@
42
 	}
43
 
44
 	if (strlen(buf) < 2) {
45
-		DEBUG(1, ("NTLMSSP query [%s] invalid", buf));
46
-		x_fprintf(x_stdout, "BH\n");
47
+		DEBUG(1, ("NTLMSSP query [%s] invalid\n", buf));
48
+		x_fprintf(x_stdout, "BH NTLMSSP query [%s] invalid\n", buf);
49
 		return;
50
 	}
51
 
52
@@ -842,7 +842,7 @@
53
 
54
 		if (opt_password == NULL) {
55
 			DEBUG(1, ("Out of memory\n"));
56
-			x_fprintf(x_stdout, "BH\n");
57
+			x_fprintf(x_stdout, "BH Out of memory\n");
58
 			data_blob_free(&request);
59
 			return;
60
 		}
61
@@ -892,14 +892,14 @@
62
 			SAFE_FREE(key64);
63
 		}
64
 		else {
65
-			x_fprintf(x_stdout, "BH\n");
66
+			x_fprintf(x_stdout, "BH missing session key\n");
67
 		}
68
 
69
 		data_blob_free(&request);
70
 		return;
71
 	} else {
72
-		DEBUG(1, ("NTLMSSP query [%s] invalid", buf));
73
-		x_fprintf(x_stdout, "BH\n");
74
+		DEBUG(1, ("NTLMSSP query [%s] invalid\n", buf));
75
+		x_fprintf(x_stdout, "BH NTLMSSP query [%s] invalid\n", buf);
76
 		return;
77
 	}
78
 
79
@@ -1027,7 +1027,7 @@
80
 
81
 	if (len == -1) {
82
 		DEBUG(1, ("Could not write SPNEGO data blob\n"));
83
-		x_fprintf(x_stdout, "BH\n");
84
+		x_fprintf(x_stdout, "BH Could not write SPNEGO data blob\n");
85
 		return;
86
 	}
87
 
88
@@ -1057,8 +1057,8 @@
89
 	pstring     reply_argument;
90
 
91
 	if (strlen(buf) < 2) {
92
-		DEBUG(1, ("SPENGO query [%s] invalid", buf));
93
-		x_fprintf(x_stdout, "BH\n");
94
+		DEBUG(1, ("SPNEGO query [%s] invalid\n", buf));
95
+		x_fprintf(x_stdout, "BH SPNEGO query [%s] invalid\n", buf);
96
 		return;
97
 	}
98
 
99
@@ -1068,8 +1068,8 @@
100
 	} else if (strncmp(buf, "KK", 2) == 0) {
101
 		
102
 	} else {
103
-		DEBUG(1, ("SPENGO query [%s] invalid", buf));
104
-		x_fprintf(x_stdout, "BH\n");
105
+		DEBUG(1, ("SPNEGO query [%s] invalid\n", buf));
106
+		x_fprintf(x_stdout, "BH SPNEGO query [%s] invalid\n", buf);
107
 		return;
108
 	}
109
 
110
@@ -1086,7 +1086,7 @@
111
 
112
 	if (strlen(buf) <= 3) {
113
 		DEBUG(1, ("GSS-SPNEGO query [%s] invalid\n", buf));
114
-		x_fprintf(x_stdout, "BH\n");
115
+		x_fprintf(x_stdout, "BH GSS-SPENEGO query [%s] invalid\n", buf);
116
 		return;
117
 	}
118
 
119
@@ -1096,7 +1096,7 @@
120
 
121
 	if (len == -1) {
122
 		DEBUG(1, ("GSS-SPNEGO query [%s] invalid", buf));
123
-		x_fprintf(x_stdout, "BH\n");
124
+		x_fprintf(x_stdout, "BH GSS-SPNEGO query [%s] invalid", buf);
125
 		return;
126
 	}
127
 
128
@@ -1107,8 +1107,8 @@
129
 
130
 		if ( (request.negTokenInit.mechTypes == NULL) ||
131
 		     (request.negTokenInit.mechTypes[0] == NULL) ) {
132
-			DEBUG(1, ("Client did not offer any mechanism"));
133
-			x_fprintf(x_stdout, "BH\n");
134
+			DEBUG(1, ("Client did not offer any mechanism\n"));
135
+			x_fprintf(x_stdout, "BH Client did not offer any mechanism\n");
136
 			return;
137
 		}
138
 
139
@@ -1116,15 +1116,15 @@
140
 		if (strcmp(request.negTokenInit.mechTypes[0], OID_NTLMSSP) == 0) {
141
 
142
 			if ( request.negTokenInit.mechToken.data == NULL ) {
143
-				DEBUG(1, ("Client did not provide  NTLMSSP data\n"));
144
-				x_fprintf(x_stdout, "BH\n");
145
+				DEBUG(1, ("Client did not provide NTLMSSP data\n"));
146
+				x_fprintf(x_stdout, "BH Client did not provide NTLMSSP data\n");
147
 				return;
148
 			}
149
 
150
 			if ( ntlmssp_state != NULL ) {
151
 				DEBUG(1, ("Client wants a new NTLMSSP challenge, but "
152
 					  "already got one\n"));
153
-				x_fprintf(x_stdout, "BH\n");
154
+				x_fprintf(x_stdout, "BH Client wants a new NTLMSSP challenge, but already got one\n");
155
 				ntlmssp_end(&ntlmssp_state);
156
 				return;
157
 			}
158
@@ -1157,7 +1157,7 @@
159
 
160
 			if ( request.negTokenInit.mechToken.data == NULL ) {
161
 				DEBUG(1, ("Client did not provide Kerberos data\n"));
162
-				x_fprintf(x_stdout, "BH\n");
163
+				x_fprintf(x_stdout, "BH Client did not provide Kerberos data\n");
164
 				return;
165
 			}
166
 
167
@@ -1183,7 +1183,7 @@
168
 				if (domain == NULL) {
169
 					DEBUG(1, ("Did not get a valid principal "
170
 						  "from ads_verify_ticket\n"));
171
-					x_fprintf(x_stdout, "BH\n");
172
+					x_fprintf(x_stdout, "BH Did not get a valid principal from ads_verify_ticket\n");
173
 					return;
174
 				}
175
 
176
@@ -1206,13 +1206,14 @@
177
 			   is the only one we support that sends this stuff */
178
 			DEBUG(1, ("Got a negTokenTarg for something non-NTLMSSP: %s\n",
179
 				  request.negTokenTarg.supportedMech));
180
-			x_fprintf(x_stdout, "BH\n");
181
+			x_fprintf(x_stdout, "BH Got a negTokenTarg for something non-NTLMSSP: %s\n",
182
+				  request.negTokenTarg.supportedMech);
183
 			return;
184
 		}
185
 
186
 		if (request.negTokenTarg.responseToken.data == NULL) {
187
 			DEBUG(1, ("Got a negTokenTarg without a responseToken!\n"));
188
-			x_fprintf(x_stdout, "BH\n");
189
+			x_fprintf(x_stdout, "BH Got a negTokenTarg without a responseToken!\n");
190
 			return;
191
 		}
192
 
193
@@ -1256,7 +1257,7 @@
194
 
195
 	if (len == -1) {
196
 		DEBUG(1, ("Could not write SPNEGO data blob\n"));
197
-		x_fprintf(x_stdout, "BH\n");
198
+		x_fprintf(x_stdout, "BH Could not write SPNEGO data blob\n");
199
 		return;
200
 	}
201
 
202
@@ -1346,7 +1347,7 @@
203
 
204
 	if (client_ntlmssp_state == NULL) {
205
 		DEBUG(1, ("Got NTLMSSP tArg without a client state\n"));
206
-		x_fprintf(x_stdout, "BH\n");
207
+		x_fprintf(x_stdout, "BH Got NTLMSSP tArg without a client state\n");
208
 		return;
209
 	}
210
 
211
@@ -1370,7 +1371,9 @@
212
 		DEBUG(1, ("Expected MORE_PROCESSING_REQUIRED from "
213
 			  "ntlmssp_client_update, got: %s\n",
214
 			  nt_errstr(status)));
215
-		x_fprintf(x_stdout, "BH\n");
216
+		x_fprintf(x_stdout, "BH Expected MORE_PROCESSING_REQUIRED from "
217
+			  "ntlmssp_client_update, got: %s\n",
218
+			  nt_errstr(status));
219
 		data_blob_free(&request);
220
 		ntlmssp_end(&client_ntlmssp_state);
221
 		return;
222
@@ -1486,7 +1489,7 @@
223
 	switch (spnego.negTokenTarg.negResult) {
224
 	case SPNEGO_ACCEPT_INCOMPLETE:
225
 		DEBUG(1, ("Got a Kerberos negTokenTarg with ACCEPT_INCOMPLETE\n"));
226
-		x_fprintf(x_stdout, "BH\n");
227
+		x_fprintf(x_stdout, "BH Got a Kerberos negTokenTarg with ACCEPT_INCOMPLETE\n");
228
 		break;
229
 	case SPNEGO_ACCEPT_COMPLETED:
230
 		DEBUG(10, ("Accept completed\n"));
231
@@ -1518,7 +1521,7 @@
232
 
233
 	if (strlen(buf) <= 3) {
234
 		DEBUG(1, ("SPNEGO query [%s] too short\n", buf));
235
-		x_fprintf(x_stdout, "BH\n");
236
+		x_fprintf(x_stdout, "BH SPNEGO query [%s] too short\n", buf);
237
 		return;
238
 	}
239
 
240
@@ -1532,7 +1535,7 @@
241
 		
242
 		if (opt_password == NULL) {
243
 			DEBUG(1, ("Out of memory\n"));
244
-			x_fprintf(x_stdout, "BH\n");
245
+			x_fprintf(x_stdout, "BH Out of memory\n");
246
 			data_blob_free(&request);
247
 			return;
248
 		}
249
@@ -1546,7 +1549,7 @@
250
 	     (strncmp(buf, "AF ", 3) != 0) &&
251
 	     (strncmp(buf, "NA ", 3) != 0) ) {
252
 		DEBUG(1, ("SPNEGO request [%s] invalid\n", buf));
253
-		x_fprintf(x_stdout, "BH\n");
254
+		x_fprintf(x_stdout, "BH SPNEGO request [%s] invalid\n", buf);
255
 		data_blob_free(&request);
256
 		return;
257
 	}
258
@@ -1559,7 +1562,7 @@
259
 
260
 	if (len == -1) {
261
 		DEBUG(1, ("Could not read SPNEGO data for [%s]\n", buf));
262
-		x_fprintf(x_stdout, "BH\n");
263
+		x_fprintf(x_stdout, "BH Could not read SPNEGO data for [%s]\n", buf);
264
 		return;
265
 	}
266
 
267
@@ -1588,7 +1591,7 @@
268
 		}
269
 
270
 		DEBUG(1, ("Server offered no compatible mechanism\n"));
271
-		x_fprintf(x_stdout, "BH\n");
272
+		x_fprintf(x_stdout, "BH Server offered no compatible mechanism\n");
273
 		return;
274
 	}
275
 
276
@@ -1610,7 +1613,9 @@
277
 				DEBUG(1, ("Got a negTokenTarg with no mech and an "
278
 					  "unknown negResult: %d\n",
279
 					  spnego.negTokenTarg.negResult));
280
-				x_fprintf(x_stdout, "BH\n");
281
+				x_fprintf(x_stdout, "BH Got a negTokenTarg with no mech and an "
282
+					  "unknown negResult: %d\n",
283
+					  spnego.negTokenTarg.negResult);
284
 			}
285
 
286
 			ntlmssp_end(&client_ntlmssp_state);
287
@@ -1634,7 +1639,7 @@
288
 	}
289
 
290
 	DEBUG(1, ("Got an SPNEGO token I could not handle [%s]!\n", buf));
291
-	x_fprintf(x_stdout, "BH\n");
292
+	x_fprintf(x_stdout, "BH Got an SPNEGO token I could not handle [%s]!\n", buf);
293
 	return;
294
 
295
  out:
(-)files/samba.in (-1 / +1 lines)
Lines 135-141 Link Here
135
		debug "reloading ${name} configuration"
135
		debug "reloading ${name} configuration"
136
		echo "Reloading ${name}."
136
		echo "Reloading ${name}."
137
		# XXX: Hack with pid_extra
137
		# XXX: Hack with pid_extra
138
		"${smbcontrol_command}" "${name}${pid_extra}" 'reload-config' ${command_args}
138
		"${smbcontrol_command}" "${name}${pid_extra}" 'reload-config' ${command_args} >/dev/null 2>&1
139
	    fi
139
	    fi
140
	fi
140
	fi
141
    done
141
    done

Return to bug 113358