#!/bin/ksh
#
# Recover ldap_cachemgr(1M) status after the local LDAP server starting
#
# chkconfig.solaris: 2 71 39

sv_fmri="svc:/network/ldap/client:default"

[ -x /usr/lib/ldap/ldap_cachemgr ] || exit 0
[ -f /var/ldap/ldap_client_file ] || exit 0

sv_state=`/usr/bin/svcs -H -o STATE "$sv_fmri"`

sv_start() {
  case "$sv_state" in
  disabled*)
    ## You can disable ldap/client service to avoid delaying OS bootup
    ## until an LDAP server starts or ldap/client service gets timeout.
    /usr/sbin/svcadm enable -t "$sv_fmri"
    ;;
  online*|uninitialized*)
    ## OK, ldap/client service is online or not started yet.
    ;;
  maintenance*)
    ## Need recovery
    /usr/sbin/svcadm clear "$sv_fmri"
    ;;
  *)
    ## Need recovery
    /usr/sbin/svcadm restart "$sv_fmri"
    ;;
  esac
}

case "$1" in
start)
  sv_start
  ;;
esac

