#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2011 OpenWrt.org

START=60

USE_PROCD=1
PROG=/usr/sbin/zabbix_agentd
CONFIG=/etc/zabbix_agentd.conf
TMP_CONFIG=/tmp/zabbix_agentd.conf

start_service_daemon() {
	config_get enabled "$1" enabled
	config_get hostname "$1" hostname
	config_get server "$1" server
	config_get listen_ip "$1" listen_ip
	config_get listen_port "$1" listen_port
	config_get tls_accept "$1" tls_accept
	config_get server_active "$1" server_active
	config_get tls_connect "$1" tls_connect
	config_get tls_psk_identity "$1" tls_psk_identity
	config_get tls_psk_file "$1" tls_psk_file
	config_get tls_ca_file "$1" tls_ca_file
	config_get tls_cert_file "$1" tls_cert_file
	config_get tls_key_file "$1" tls_key_file

	[ -f ${CONFIG} ] || return 1

	[ "$enabled" = 0 ] && {
		echo "service disabled"
		return 0
	}

	[ -z "${server}" -o -z "${hostname}" ] && {
		echo "hostname or server are not set"
		return 0
	}

	#FIXME
	[ -f ${TMP_CONFIG} ] && rm ${TMP_CONFIG}
	touch ${TMP_CONFIG}

	server=$(echo ${server} | sed -r 's/[ ]+/,/g')
	echo "Server=${server}" >> ${TMP_CONFIG}
	echo "Hostname=${hostname}" >> ${TMP_CONFIG}

	[ -n "${listen_ip}" ] && echo "ListenIP=${listen_ip}" >> ${TMP_CONFIG}
	[ -n "${listen_port}" ] && echo "ListenPort=${listen_port}" >> ${TMP_CONFIG}
	[ -n "${tls_accept}" ] && {
		tls_accept=$(echo ${tls_accept} | sed -r 's/[ ]+/,/g')
		echo "TLSAccept=${tls_accept}" >> ${TMP_CONFIG}
	}

	[ -n "${server_active}" ] && echo "ServerActive=${server_active}" >> ${TMP_CONFIG}
	[ -n "${tls_connect}" ] && echo "TLSConnect=${tls_connect}" >> ${TMP_CONFIG}
	[ -n "${tls_psk_identity}" ] && echo "TLSPSKIdentity=${tls_psk_identity}" >> ${TMP_CONFIG}
	[ -n "${tls_psk_file}" ] && {
		echo "TLSPSKFile=${tls_psk_file}" >> ${TMP_CONFIG}
		chmod 644 ${tls_psk_file}
	}
	[ -n "${tls_ca_file}" ] && {
		echo "TLSCAFile=${tls_ca_file}" >> ${TMP_CONFIG}
		chmod 644 ${tls_ca_file}
	}
	[ -n "${tls_cert_file}" ] && {
		echo "TLSCertFile=${tls_cert_file}" >> ${TMP_CONFIG}
		chmod 644 ${tls_cert_file}
	}
	[ -n "${tls_key_file}" ] && {
		echo "TLSKeyFile=${tls_key_file}" >> ${TMP_CONFIG}
		chmod 644 ${tls_key_file}
	}

	procd_open_instance
	procd_set_param command ${PROG} -c ${CONFIG} -f
	procd_set_param respawn
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_close_instance
}

start_service(){
	config_load 'zabbix'
	config_foreach start_service_daemon 'zabbix'
}

service_triggers() {
	procd_add_reload_trigger 'zabbix'
}

reload_service() {
	stop
	start
}
