<?php
require_once("/etc/inc/globals.inc");
require_once("/etc/inc/functions.inc");
require_once("classes/autoload.inc.php");

$return = new stdClass();
$op =  $argv[1];

/*
*************************************************************************************
* Pega todos os gateways cadastrados no pfsense
*************************************************************************************
*/

function getGateways(){
    $a_gateways = return_gateways_array();
    $dados = array();
    $a=0;
    foreach ($a_gateways as $gw){
        $dados[$a]['{#NAME}'] = (string)strtoupper($gw['name']);
        $dados[$a]['{#GW}']   = (string)strtoupper($gw['gateway']);
        $a++;
    }
    return $dados;
}

/** 
******************************************************************************
* traz o status do gateway
******************************************************************************
*/
function getStatusGateways($nome = '',$item){
    $gateways_status = array();
    $gateways_status = return_gateways_status(true);


    //se vazio 
    if ($nome==''){
        return 'ZBX_NOTSUPPORTED';
    }
        
    if ($item=='status'){
        if ($gateways_status[$nome][$item] == "none" ){
            return $gateways_status[$nome][$item] = 1;
        }elseif ($gateways_status[$nome][$item] == "down" ){
            return $gateways_status[$nome][$item] = 0;
        }elseif ($gateways_status[$nome][$item] == "loss" ){
            return $gateways_status[$nome][$item] = 2;
        }elseif ($gateways_status[$nome][$item] == "delay" ){
            return $gateways_status[$nome][$item] = 3;
        }else{
            return $gateways_status[$nome][$item] = 4;
        }
    //limpa delay
    }elseif($item=='delay'){
        return $gateways_status[$nome][$item] = (float)str_replace('ms','',$gateways_status[$nome][$item]);
    }elseif($item=='loss'){
        return $gateways_status[$nome][$item] = (float)str_replace('%','',$gateways_status[$nome][$item]);
    }elseif($item=='stddev'){
        return $gateways_status[$nome][$item] = (float)str_replace('ms','',$gateways_status[$nome][$item]);
    }else{
       return  $gateways_status[$nome][$item];
    }
    
}




switch ($op){
    case 'discovery':
         $return->data = array();
        $return->data = getGateways();

        echo json_encode($return);
        break;

    case 'status':
        echo getStatusGateways($argv[2],$argv[3]);
        break;
}



exit;