diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 101988ed2..84feae379 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -1,6 +1,7 @@
PLUGIN_NAME= quagga
PLUGIN_VERSION= 0.0.2
PLUGIN_COMMENT= Quagga Routing Suite
+PLUGIN_DEPENDS= quagga
PLUGIN_MAINTAINER= franz.fabian.94@gmail.com
PLUGIN_DEVEL = yes
diff --git a/net/quagga/pkg-descr b/net/quagga/pkg-descr
index 8bbde73ac..78840b370 100644
--- a/net/quagga/pkg-descr
+++ b/net/quagga/pkg-descr
@@ -1,2 +1,8 @@
-Manage the Quagga Routing Software Suite, which offers routing protocols
-like RIP, IS-IS and OSPF to guide your packets through the sea.
+Quagga is a routing software suite, providing implementations of
+OSPFv2, OSPFv3, RIP v1 and v2, RIPv3, BGPv4 and experemental ISIS
+for Unix platforms, particularly FreeBSD and Linux and also NetBSD,
+to mention a few. Quagga is a fork of GNU Zebra which was developed
+by Kunihiro Ishiguro. The Quagga tree aims to build a more involved
+community around Quagga than the current centralised model of GNU Zebra.
+
+WWW: http://www.quagga.net/
diff --git a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/RipController.php b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/RipController.php
new file mode 100644
index 000000000..c53b5199c
--- /dev/null
+++ b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/RipController.php
@@ -0,0 +1,75 @@
+request->isGet()) {
+ $mdlRIP = new RIP();
+ $result['rip'] = $mdlRIP->getNodes();
+ }
+ return $result;
+ }
+ public function setAction()
+ {
+ $result = array("result"=>"failed");
+ if ($this->request->isPost()) {
+ // load model and update with provided data
+ $mdlRIP = new RIP();
+ $mdlRIP->setNodes($this->request->getPost("rip"));
+
+ // perform validation
+ $valMsgs = $mdlRIP->performValidation();
+ foreach ($valMsgs as $field => $msg) {
+ if (!array_key_exists("validations", $result)) {
+ $result["validations"] = array();
+ }
+ $result["validations"]["rip.".$msg->getField()] = $msg->getMessage();
+ }
+
+ // serialize model to config and save
+ if ($valMsgs->count() == 0) {
+ $mdlRIP->serializeToConfig();
+ Config::getInstance()->save();
+ $result["result"] = "saved";
+ }
+ }
+ return $result;
+ }
+}
diff --git a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/RipController.php b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/RipController.php
index ce476267f..ab552bc03 100644
--- a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/RipController.php
+++ b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/RipController.php
@@ -5,8 +5,8 @@ class RipController extends \OPNsense\Base\IndexController
{
public function indexAction()
{
- $this->view->title = gettext("RIP-Settings");
- $this->view->generalForm = $this->getForm("rip");
+ $this->view->title = gettext("RIP Settings");
+ $this->view->ripForm = $this->getForm("rip");
$this->view->pick('OPNsense/Quagga/rip');
}
}
diff --git a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/rip.xml b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/rip.xml
index 729a5fe53..cc86d9a8e 100644
--- a/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/rip.xml
+++ b/net/quagga/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/rip.xml
@@ -1,8 +1,38 @@
diff --git a/net/quagga/src/opnsense/mvc/app/models/OPNsense/Quagga/Menu/Menu.xml b/net/quagga/src/opnsense/mvc/app/models/OPNsense/Quagga/Menu/Menu.xml
index 113917841..542de374c 100644
--- a/net/quagga/src/opnsense/mvc/app/models/OPNsense/Quagga/Menu/Menu.xml
+++ b/net/quagga/src/opnsense/mvc/app/models/OPNsense/Quagga/Menu/Menu.xml
@@ -1,7 +1,7 @@