#!/bin/sh

[ -f /etc/obex ] || exit 1
[ -x /usr/bin/ussp-push ] || exit 1

FIFO=/var/op_fifo
MPFIFO=/var/mp_control
BASENAME=

mkfifo $FIFO 2>/dev/null

while true; do
  read FILE < $FIFO
  if [ -f "$FILE" ]; then
    `hciconfig | grep -iq "UP RUNNING"` || ( echo "osd_show_text \"no working hci device !\"" > $MPFIFO && continue )
    BASENAME=${FILE##*/}
    . /etc/obex
    if [ "$OBEXPUSH_TARGET" = "" ]; then
      OBEXPUSH_TARGET=`sdptool search opush | grep "Searching for opush on "`
      [ "$OBEXPUSH_TARGET" = "" ] && echo "osd_show_text \"no obex push server found !\"" > $MPFIFO && continue
      OBEXPUSH_TARGET=${OBEXPUSH_TARGET#Searching for opush on }
      OBEXPUSH_TARGET=${OBEXPUSH_TARGET%% ...*}
      sleep 3		# give remote SDP server some time to resume operation
    fi
    `echo $OBEXPUSH_TARGET | grep -iq "@"` || OBEXPUSH_TARGET="$OBEXPUSH_TARGET@"
    ussp-push $OBEXPUSH_TARGET "$FILE" "$BASENAME" && echo "osd_show_text \"push successful !\"" > $MPFIFO || echo "osd_show_text \"push failed !\"" > $MPFIFO
  fi
done

rm $FIFO
