components/samba/samba/Solaris/samba.sh
changeset 1140 501d8b6b07c2
parent 878 f5bfc829326f
child 1396 2c75b46fc80a
--- a/components/samba/samba/Solaris/samba.sh	Sat Feb 02 09:38:05 2013 -0800
+++ b/components/samba/samba/Solaris/samba.sh	Thu Jan 31 19:36:21 2013 +0100
@@ -22,13 +22,32 @@
 #
 
 #
-# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 . /lib/svc/share/smf_include.sh
 
 SAMBA_CONFIG=/etc/samba/smb.conf
 
+# Check if given service is working properly
+check_running() {
+	case "$SMF_FMRI" in
+		svc:/network/winbind:*)
+			# It takes some time before winbind starts to really work
+			# This is infinite loop which will be killed after smf timeout
+			while : ; do
+				sleep 2
+				PING=`/usr/bin/wbinfo --ping-dc 2>&1`
+				if [ $? -eq 0 ]; then
+					break
+				fi
+				echo "$PING"
+			done
+			;;
+	esac
+	return 0
+}
+
 case "$1" in
 	start)
 		if [ ! -f "$SAMBA_CONFIG" ]; then
@@ -39,6 +58,7 @@
 		# Command to execute is found in second and further script arguments
 		shift
 		eval "[email protected]"
+		check_running
 		;;
 	stop)
 		# kill whole contract group