#!/usr/local/bin/php getNumParams() != 2) return; // Make sure we have 2 params. $param1 = $params->getParam(0); $md5 = $param1->scalarval(); if($md5 != md5($config['system']['password'])) return; // Basic authentication. $param2 = $params->getParam(1); $section = $param2->scalarval(); $val = new XML_RPC_Value(backup_config_section($section), 'string'); return new XML_RPC_Response($val); } /* * restore_config_section_xmlrpc: XMLRPC wrapper for restore_config_section. * This method must be called with three parameters: a string containing the md5 of * the local system's password, a string containing the section to be restored, * and a string containing the returned value of backup_config_section() for that * section. This function returns */ $restore_config_section_sig = array(array($xmlrpcBoolean, $xmlrpcString, $xmlrpcString, $xmlrpcString)); function restore_config_section_xmlrpc($params) { global $config; if($params->getNumParams() != 3) return; // Make sure we have 3 params. $param1 = $params->getParam(0); $md5 = $param1->scalarval(); if($md5 != md5($config['system']['password'])) return; // Basic authentication. $param2 = $params->getParam(1); $section - $param2->scalarval(); $param3 = $params->getParam(2); $new_contents = $param3->scalarval(); restore_config_section($section, $new_contents); return new XML_RPC_Response(new XML_RPC_Value(true, 'boolean')); } $server = new XML_RPC_Server( array( 'pfsense.backup_config_section' => array('function' => 'backup_config_section_xmlrpc', 'signature' => $backup_config_section_sig), 'pfsense.restore_config_section' => array('function' => 'restore_config_section_xmlrpc', 'signature' => $restore_config_section_sig) ) ); ?>