#!/bin/bash

_LIB=`/opt/novell/xad/share/dcinit/printConfigKey.pl "_Lib"`

EXEC_PREFIX=$REGISTRY=Prefix
BINDIR=$EXEC_PREFIX/bin
SBINDIR=$EXEC_PREFIX/sbin
LIBEXECDIR=$EXEC_PREFIX/libexec
SYSCONFDIR=$REGISTRY=SysConfDir
LOCALSTATEDIR=$REGISTRY=LocalStateDir
LIBDIR=$EXEC_PREFIX/$_LIB
DATADIR=$EXEC_PREFIX/share

NDS_EXEC_PREFIX=/opt/novell/eDirectory
NDS_BINDIR=$NDS_EXEC_PREFIX/bin
NDS_SBINDIR=$NDS_EXEC_PREFIX/sbin
NDS_LIBDIR=$NDS_EXEC_PREFIX/$_LIB
NDS_LOCALSTATEDIR=/var$NDS_EXEC_PREFIX

DCINIT_CONFIG=$SYSCONFDIR/xad.ini
export DCINIT_CONFIG

PATH=$DATADIR/dcinit:$SBINDIR:$LIBEXECDIR:$BINDIR:/sbin:$PATH
export PATH

LD_LIBRARY_PATH=/opt/novell/xad/$_LIB:/opt/novell/xad/$_LIB/nds-modules:/opt/novell/eDirectory/$_LIB:/opt/novell/eDirectory/$_LIB/nds-modules:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

SASL_PATH=$LIBDIR/sasl2
export SASL_PATH

LDAPCONF=$SYSCONFDIR/openldap/ldap.conf
export LDAPCONF

KRB5CCNAME=KCM:SYSTEM
export KRB5CCNAME

#NTP_BEGIN
NCALRPCDIR=${LOCALSTATEDIR}/rpc
IS_NTP_CHROOT=$(sed -n 's/NTPD_RUN_CHROOTED="\(.*\)"/\1/p' /etc/sysconfig/chronyd)
if [ "X${IS_NTP_CHROOT}" == "Xyes" ]
then
NCALRPCDIR=$REGISTRY=NcalRpcDir
fi
export RPC_NCALRPC_DIR=${NCALRPCDIR}
#NTP_END

RPC_SERVER_DISC_TIME=600
export RPC_SERVER_DISC_TIME

NDS_CONF=$SYSCONFDIR/nds.conf
NAMED_CONF=$SYSCONFDIR/named.conf
LDAPI_SOCKET=$LOCALSTATEDIR/run/ldapi

test -f $SYSCONFDIR/xad.ini || exit 0

# Souce xadsd server port if one is configured.
XADSD_CONF=/etc/sysconfig/novell/xadsd
test -f $XADSD_CONF && . $XADSD_CONF
test -n "$XADSD_RPC_SERVER_PORT" && XADSD_SERVER_PORT_ARGS="-p $XADSD_RPC_SERVER_PORT"

# Start the daemon
$LIBEXECDIR/xadsd $XADSD_SERVER_PORT_ARGS

sleep 3

# root and chrony need access to the domain socket
chown chrony $RPC_NCALRPC_DIR/xadsd

#Remove the old link
rm -f /var/lib/chrony/$LOCALSTATEDIR/rpc/xadsd

#Link the domain socket to /var/lib/chrony chroot jail
if [ "X${IS_NTP_CHROOT}" == "Xyes" ]
then
ln -f $RPC_NCALRPC_DIR/xadsd /var/lib/chrony/$LOCALSTATEDIR/rpc/xadsd
fi

# refresh winbindd to recognize xad services
#killall -SIGHUP nmbd 2>/dev/null
#killall -SIGHUP winbindd 2>/dev/null
#killall -SIGHUP smbd 2>/dev/null

