#!/bin/bash

PROGRAM=/bin/false
RUNLEVEL=3
NEEDS="+remote_fs"
ARGS="-D"

. /etc/init.d/smgl_init

start()
{
  . /etc/sysconfig/samba

  if [ ! -e /var/run/samba ]; then
    mkdir /var/run/samba
  fi &&
  if ! netstat -nl --udp | grep -q ":137" ; then
    echo "Starting NetBIOS nameserver ..."
    loadproc /usr/sbin/nmbd ${ARGS}
    evaluate_retval
  fi  &&
  if ! netstat -nl --tcp | grep -q ":139\|:445" ; then
    echo "Starting NetBIOS sessions ..."
    loadproc /usr/sbin/smbd ${ARGS}
    evaluate_retval
  fi
}
#
stop()
{
  if netstat -nl --udp | grep -q ":137" ; then
    if ps -C nmbd | grep -q nmbd ; then
      echo "Stopping NetBIOS nameserver ..."
      killproc /usr/sbin/nmbd
      evaluate_retval
    fi 
  fi &&
  if netstat -nl --tcp | grep -q ":139\|:445" ; then
    if ps -C smbd | grep -q smbd; then
      echo "Stopping NetBIOS sessions ..."
      killproc /usr/sbin/smbd
      evaluate_retval
    fi
  fi
}
#
status()
{
  if netstat -nl --udp | grep -q ":137" ; then
    if ! ps -C nmbd | grep -q nmbd; then
      echo "NetBIOS nameserver : xinetd"
      evaluate_retval
    fi
    if ps -C nmbd | grep -q nmbd; then
      echo "NetBIOS nameserver : daemon"
      evaluate_retval
    fi
  fi  &&
  if netstat -nl --tcp | grep -q ":139\|:445" ; then
    if ! ps -C smbd | grep -q smbd ; then
      echo "NetBIOS sessions : xinetd"
      evaluate_retval
    fi
    if ps -C smbd | grep -q smbd ; then
      echo "NetBIOS sessions : daemon"
      evaluate_retval
    fi
  fi
}

restart() {
  stop &&
  sleep 1 &&
  start
}
