diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 06f8711d8..66533584c 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= quagga
-PLUGIN_VERSION= 1.3.1
+PLUGIN_VERSION= 1.3.2
PLUGIN_COMMENT= Quagga Routing Suite
PLUGIN_DEPENDS= quagga ruby
PLUGIN_MAINTAINER= franz.fabian.94@gmail.com
diff --git a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/OspfsettingsController.php b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/OspfsettingsController.php
index ff00763b4..3c2647bc2 100644
--- a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/OspfsettingsController.php
+++ b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/OspfsettingsController.php
@@ -99,6 +99,16 @@ class OspfsettingsController extends ApiMutableModelControllerBase
array("enabled", "interfacename", "networktype", "authtype", "area")
);
}
+ public function searchPrefixlistAction()
+ {
+ $this->sessionClose();
+ $mdlOSPF = $this->getModel();
+ $grid = new UIModelGrid($mdlOSPF->prefixlists->prefixlist);
+ return $grid->fetchBindRequest(
+ $this->request,
+ array("enabled", "name", "seqnumber", "action", "network" )
+ );
+ }
public function getNetworkAction($uuid = null)
{
$mdlOSPF = $this->getModel();
@@ -129,7 +139,21 @@ class OspfsettingsController extends ApiMutableModelControllerBase
}
return array();
}
-
+ public function getPrefixlistAction($uuid = null)
+ {
+ $mdlOSPF = $this->getModel();
+ if ($uuid != null) {
+ $node = $mdlOSPF->getNodeByReference('prefixlists.prefixlist.' . $uuid);
+ if ($node != null) {
+ // return node
+ return array("prefixlist" => $node->getNodes());
+ }
+ } else {
+ $node = $mdlOSPF->prefixlists->prefixlist->add();
+ return array("prefixlist" => $node->getNodes());
+ }
+ return array();
+ }
public function addNetworkAction()
{
$result = array("result" => "failed");
@@ -180,6 +204,29 @@ class OspfsettingsController extends ApiMutableModelControllerBase
}
return $result;
}
+ public function addPrefixlistAction()
+ {
+ $result = array("result" => "failed");
+ if ($this->request->isPost() && $this->request->hasPost("prefixlist")) {
+ $result = array("result" => "failed", "validations" => array());
+ $mdlOSPF = $this->getModel();
+ $node = $mdlOSPF->prefixlists->prefixlist->Add();
+ $node->setNodes($this->request->getPost("prefixlist"));
+ $valMsgs = $mdlOSPF->performValidation();
+ foreach ($valMsgs as $field => $msg) {
+ $fieldnm = str_replace($node->__reference, "prefixlist", $msg->getField());
+ $result["validations"][$fieldnm] = $msg->getMessage();
+ }
+ if (count($result['validations']) == 0) {
+ // save config if validated correctly
+ $mdlOSPF->serializeToConfig();
+ Config::getInstance()->save();
+ unset($result['validations']);
+ $result["result"] = "saved";
+ }
+ }
+ return $result;
+ }
public function delNetworkAction($uuid)
{
@@ -218,6 +265,23 @@ class OspfsettingsController extends ApiMutableModelControllerBase
}
return $result;
}
+ public function delPrefixlistAction($uuid)
+ {
+ $result = array("result" => "failed");
+ if ($this->request->isPost()) {
+ $mdlOSPF = $this->getModel();
+ if ($uuid != null) {
+ if ($mdlOSPF->prefixlists->prefixlist->del($uuid)) {
+ $mdlOSPF->serializeToConfig();
+ Config::getInstance()->save();
+ $result['result'] = 'deleted';
+ } else {
+ $result['result'] = 'not found';
+ }
+ }
+ }
+ return $result;
+ }
public function setNetworkAction($uuid)
{
if ($this->request->isPost() && $this->request->hasPost("network")) {
@@ -276,6 +340,33 @@ class OspfsettingsController extends ApiMutableModelControllerBase
}
return array("result" => "failed");
}
+ public function setPrefixlistAction($uuid)
+ {
+ if ($this->request->isPost() && $this->request->hasPost("prefixlist")) {
+ $mdlNeighbor = $this->getModel();
+ if ($uuid != null) {
+ $node = $mdlNeighbor->getNodeByReference('prefixlists.prefixlist.' . $uuid);
+ if ($node != null) {
+ $result = array("result" => "failed", "validations" => array());
+ $prefixlistInfo = $this->request->getPost("prefixlist");
+ $node->setNodes($prefixlistInfo);
+ $valMsgs = $mdlNeighbor->performValidation();
+ foreach ($valMsgs as $field => $msg) {
+ $fieldnm = str_replace($node->__reference, "prefixlist", $msg->getField());
+ $result["validations"][$fieldnm] = $msg->getMessage();
+ }
+ if (count($result['validations']) == 0) {
+ // save config if validated correctly
+ $mdlNeighbor->serializeToConfig();
+ Config::getInstance()->save();
+ $result = array("result" => "saved");
+ }
+ return $result;
+ }
+ }
+ }
+ return array("result" => "failed");
+ }
public function toggle_handler($uuid, $elements, $element)
{
@@ -310,4 +401,9 @@ class OspfsettingsController extends ApiMutableModelControllerBase
{
return $this->toggle_handler($uuid, 'interfaces', 'interface');
}
+ public function togglePrefixlistAction($uuid)
+ {
+ return $this->toggle_handler($uuid, 'prefixlists', 'prefixlist');
+ }
+
}
diff --git a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/OspfController.php b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/OspfController.php
index fcae1c8c9..4d6fa815f 100644
--- a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/OspfController.php
+++ b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/OspfController.php
@@ -35,6 +35,7 @@ class OspfController extends \OPNsense\Base\IndexController
$this->view->generalForm = $this->getForm("ospf");
$this->view->formDialogEditNetwork = $this->getForm("dialogEditOSPFNetwork");
$this->view->formDialogEditInterface = $this->getForm("dialogEditOSPFInterface");
+ $this->view->formDialogEditPrefixLists = $this->getForm("dialogEditOSPFPrefixLists");
$this->view->pick('OPNsense/Quagga/ospf');
}
}
diff --git a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFNetwork.xml b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFNetwork.xml
index eb4f548a7..abf0a036d 100644
--- a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFNetwork.xml
+++ b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFNetwork.xml
@@ -20,4 +20,16 @@
| {{ lang._('Enabled') }} | +{{ lang._('Name') }} | +{{ lang._('Secquence Number') }} | +{{ lang._('Action') }} | +{{ lang._('Network') }} | +{{ lang._('ID') }} | +{{ lang._('Commands') }} | +
|---|---|---|---|---|---|---|
| + | + + + | +|||||