#!/bin/bash

# This wrapper requires Samba package and smbclient binary file
# Using: /usr/bin/nf_auth_smb username PRIMARY_DC <SECONDARY_DC>
# Example: /usr/bin/nf_auth_smb %u pdc.mydomain.org bdc.mydomain.org
# This script require user's password on the standard input.


CMD="/usr/bin/smbclient"

USERNAME="$1"
PRI="$2"
SEC="$3"


if [ ! -x "$CMD" ]; then
  exit 100
fi


read PASSWORD



if [ "x$USERNAME" == "x" ]; then
  exit 101
fi

if [ "x$PASSWORD" == "x" ]; then
  exit 102
fi

if [ "x$PRI" == "x" ]; then
  exit 103
fi

if [ -x "/bin/mktemp" ]; then
  TMPFILE=`/bin/mktemp -t auth_smb.XXXXXXXXXX`
else
  TMPFILE="/tmp/smb_auth_tmp"
  rm -f "$TMPFILE" &>/dev/null
  touch "$TMPFILE"
  chmod 600 "$TMPFILE"
fi

if [ ! -w "$TMPFILE" ]; then
  exit 104
fi


echo "username=$USERNAME" > "$TMPFILE"
echo "password=$PASSWORD" >> "$TMPFILE"




$CMD -A "$TMPFILE" -L "$PRI" &>/dev/null
CODE=$?

if [ "x$CODE" == "x0" ]; then
  rm -f "$TMPFILE" &>/dev/null
  exit 0
fi

if [ "x$SEC" == "x" ]; then
  rm -f "$TMPFILE" &>/dev/null
  exit $CODE
fi




$CMD -A "$TMPFILE" -L "$SEC" &>/dev/null
CODE=$?
if [ "x$CODE" == "x0" ]; then
  rm -f "$TMPFILE" &>/dev/null
  exit 0
fi

rm -f "$TMPFILE" &>/dev/null
exit $CODE
