20170717_jeffrey - silenceuncrio/diary GitHub Wiki
0930
review
利用這禮拜周報的 UI Chart 先來盤一下待做事項
1030
RIP 可從 quagg 這個 YOCTO recipe 下手
先從我們自己的 proposal RIP 開始整理
1045
利用 git flow feature
建立一個 rip 的 feature branch
➜ M300 git:(develop) git flow feature start rip
Switched to a new branch 'feature/rip'
Summary of actions:
- A new branch 'feature/rip' was created, based on 'develop'
- You are now on branch 'feature/rip'
Now, start committing on your feature. When done, use:
git flow feature finish rip
➜ M300 git:(feature/rip)
1150
在 prosrc
recipe 的 RDEPENDS_${PN}
加上 quagga
已經 build 過了
firmware upgrade 也過了
1300
monkeyjj time
1420
目前 ripd 這個 routing daemon 已經有了
root@Mobile Router:~# ripd -h
Usage : ripd [OPTION...]
Daemon which manages RIP version 1 and 2.
-d, --daemon Runs in daemon mode
-f, --config_file Set configuration file name
-i, --pid_file Set process identifier file name
-z, --socket Set path of zebra socket
-A, --vty_addr Set vty's bind address
-P, --vty_port Set vty's port number
-C, --dryrun Check configuration for validity and exit
-r, --retain When program terminates, retain added route by ripd.
-u, --user User to run as
-g, --group Group to run as
-v, --version Print program version
-h, --help Display this help and exit
Report bugs to https://bugzilla.quagga.net
update 一下 RIP proposal
1525
來做一下 WEB UI - DNAT
先把今天對於 branch feature/rip
的工作告一段落
commit 4f020354bf0165668992689ff56e35652133ff0b
Refs: [feature/rip]
Author: jeffrey <[email protected]>
Date: Mon Jul 17 15:28:02 2017 +0800
Add 'quagga' recipe for implementing 'RIP I/II' feature
meta-proscend/recipes-core/prosrc/prosrc_0.1.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
切到 branch feature/dnat6
➜ M300 git:(feature/rip) git checkout feature/dnat6
Branch feature/dnat6 set up to track remote branch feature/dnat6 from origin.
Switched to a new branch 'feature/dnat6'
➜ M300 git:(feature/dnat6) ✗
diff --git a/proscend/prosrc/webcgi/dnat.c b/proscend/prosrc/webcgi/dnat.c
index 126a17e..f8afee5 100644
--- a/proscend/prosrc/webcgi/dnat.c
+++ b/proscend/prosrc/webcgi/dnat.c
@@ -20,8 +20,6 @@ static void _apply() {
jweb.out.json.fail("ICOS_GetSetting fail");
}
- char ipaddr[64];
-
jweb.in.to_int("mode", &_config.mode);
json_object *entry;
@@ -35,17 +33,23 @@ static void _apply() {
jweb.j.to_int(e, "protocol", &_config.entry[i].protocol);
jweb.j.to_int(e, "srcPortBen", &_config.entry[i].srcPortBen);
jweb.j.to_int(e, "srcPortEnd", &_config.entry[i].srcPortEnd);
-
- jweb.j.to_nstring(e, "dstIpAddr", &ipaddr, 64);
- String2IPv4(ipaddr, &_config.entry[i].dstIpAddr);
-
+ jweb.j.to_nstring(e, "dstIpAddr", &_config.entry[i].dstIpAddr, IPV6ADDR_SIZE);^M
jweb.j.to_int(e, "dstPort", &_config.entry[i].dstPort);
}
res = ICOS_Apply(MODULE_DNAT, 0, 0, &_config, sizeof(_config));
- if (res != ICOS_SUCCESS) {
+ if (res != ICOS_SUCCESS)^M
+ {^M
jweb.http.status(500);
- jweb.out.json.fail("ICOS_Apply fail");
+ const char* err = get_dnat_error_msg();^M
+ if (err)^M
+ {^M
+ jweb.out.json.fail(err);^M
+ }^M
+ else^M
+ {^M
+ jweb.out.json.fail("ICOS_Apply fail");^M
+ }^M
}
jweb.out.json.ok();
@@ -54,7 +58,6 @@ static void _apply() {
static json_object * _new_entry(sDNatConfig *_config) {
- char ipaddr[64];
json_object *entry = json_object_new_array();
for (int i = 0; i < DNAT_ENTRY_NUM; i ++) {
@@ -64,8 +67,7 @@ static json_object * _new_entry(sDNatConfig *_config) {
json_object_object_add(obj, "protocol", json_object_new_int(_config->entry[i].protocol));
json_object_object_add(obj, "srcPortBen", json_object_new_int(_config->entry[i].srcPortBen));
json_object_object_add(obj, "srcPortEnd", json_object_new_int(_config->entry[i].srcPortEnd));
- IPv42String(&_config->entry[i].dstIpAddr, ipaddr);
- json_object_object_add(obj, "dstIpAddr", json_object_new_string(ipaddr));
+ json_object_object_add(obj, "dstIpAddr", json_object_new_string(_config->entry[i].dstIpAddr));^M
json_object_object_add(obj, "dstPort", json_object_new_int(_config->entry[i].dstPort));
json_object_array_add(entry, obj);
}
上 code
commit 52fc6b11673636de00332e61c20b08e99591bead
Refs: [feature/dnat6]
Author: jeffrey <[email protected]>
Date: Mon Jul 17 15:43:57 2017 +0800
In MODULE_DNAT CGI
- Change the type of `ipDstAddr` from U32 to char[IPV6ADDR_SIZE]
- while ICOS_Apply not success, get the error message form 'get_dnat_error_msg()'
proscend/prosrc/webcgi/dnat.c | 267 ++++++++++++++++++++++--------------------
1 file changed, 143 insertions(+), 124 deletions(-)
1555
切回 branch feature/rip
➜ M300 git:(feature/dnat6) ✗ git checkout feature/rip
Switched to branch 'feature/rip'
➜ M300 git:(feature/rip) ✗