20180808_jeffrey - silenceuncrio/diary GitHub Wiki

0905

幫忙從 M300 poring WAN / Ethernet 到 52xxz 去

目前看來 52xxz 是擁有 WAN / Ethernet 這個網頁的

1110

查出來是 52xxz 的 connmgr.cgi 的 _chg_wproto_apply() 出了問題

會發現雖然 source code 都沒改

但 52xxz 和 M300 的行為卻不一樣

問題的根源如下

如以下的範例

char char_x;
memset(&char_x, 0, sizeof(char_x));
printf("char_x = %d\n", char_x);
int *p_int = &char_x;
*p_int = 1;
printf("char_x = %d\n", char_x);

M300 執行結果為

char_x = 0
char_x = 1

52xxz 執行結果為

char_x = 0
char_x = 0

原始的 _chg_wproto_apply() code 如下

static void _chg_wproto_apply()
{
    int res = ICOS_GetSetting(MODULE_CONNMGR, CHG_WPROTO, 0, &WanProtocol, sizeof(WanProtocol));
    if (res != ICOS_SUCCESS)
    {
        jweb.http.status(500);
        jweb.out.json.fail("ICOS_GetSetting fail");
    }

    jweb.in.to_int("weth_static_v4", &WanProtocol.weth_static_v4);
    jweb.in.to_int("weth_dhcp_v4", &WanProtocol.weth_dhcp_v4);
    jweb.in.to_int("dhcp_v6", &WanProtocol.dhcp_v6);
    jweb.in.to_int("weth_pppoe_v4v6", &WanProtocol.weth_pppoe_v4v6);
    jweb.in.to_int("wlte_ppp_v4v6", &WanProtocol.wlte_ppp_v4v6);

    res = ICOS_Apply(MODULE_CONNMGR, CHG_WPROTO, 0, &WanProtocol, sizeof(WanProtocol));
    if (res != ICOS_SUCCESS)
    {
        jweb.http.status(500);
        jweb.out.json.fail("ICOS_Apply fail");
    }

    jweb.out.json.ok();
}

52xxz 要換一種寫法

+@@ -139,11 +145,19 @@ static void _chg_wproto_apply()
         jweb.out.json.fail("ICOS_GetSetting fail");
     }

-    jweb.in.to_int("weth_static_v4", &WanProtocol.weth_static_v4);
-    jweb.in.to_int("weth_dhcp_v4", &WanProtocol.weth_dhcp_v4);
-    jweb.in.to_int("dhcp_v6", &WanProtocol.dhcp_v6);
-    jweb.in.to_int("weth_pppoe_v4v6", &WanProtocol.weth_pppoe_v4v6);
-    jweb.in.to_int("wlte_ppp_v4v6", &WanProtocol.wlte_ppp_v4v6);
+    int weth_static_v4, weth_dhcp_v4, dhcp_v6, weth_pppoe_v4v6, wlte_ppp_v4v6;
+
+    jweb.in.to_int("weth_static_v4", &weth_static_v4);
+    jweb.in.to_int("weth_dhcp_v4", &weth_dhcp_v4);
+    jweb.in.to_int("dhcp_v6", &dhcp_v6);
+    jweb.in.to_int("weth_pppoe_v4v6", &weth_pppoe_v4v6);
+    jweb.in.to_int("wlte_ppp_v4v6", &wlte_ppp_v4v6);
+
+    WanProtocol.weth_static_v4 = weth_static_v4;
+    WanProtocol.weth_dhcp_v4 = weth_dhcp_v4;
+    WanProtocol.dhcp_v6 = dhcp_v6;
+    WanProtocol.weth_pppoe_v4v6 = weth_pppoe_v4v6;
+    WanProtocol.wlte_ppp_v4v6 = wlte_ppp_v4v6;

     res = ICOS_Apply(MODULE_CONNMGR, CHG_WPROTO, 0, &WanProtocol, sizeof(WanProtocol));
     if (res != ICOS_SUCCESS)

1120

commit adc76dad136d4504e00b8254590d3fa08932d9d5
Author: jeffrey <[email protected]>
Date:   Wed Aug 8 11:19:32 2018 +0800

    correct the problem occur at 52xxz platform:
    - connmgr.cgi?act=chg_wproto_apply

 proscend/prosrc/webcgi/connmgr.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

1140

剛剛把整個 CGI 掃了一遍

並沒有其他 jweb.in.to_int()char 型態變數混用的情況

1450

找到一篇 A Complete Firebase in React Authentication Tutorial

1510

commit 36ad4d3261873820bdb230e85b6d8527c12fca8d
Author: jeffrey <[email protected]>
Date:   Wed Aug 8 15:10:23 2018 +0800

    let the 'shdslbis.cgi' support the 'status' act

 proscend/prosrc/webcgi/shdslbis.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

1545

G.Shdsl.bis 的 status page

commit a221a80183a4a0b92c5af308a21b956ba7071c9b
Refs: [develop], {origin/develop}, {origin/HEAD}
Author: jeffrey <[email protected]>
Date:   Wed Aug 8 15:44:01 2018 +0800

    - add a menu group 'G.Shdsl.bis'
    - status page for 'G.Shdsl.bis': first step

 .../prosrc/www/app/feature/shdslbis_status.html    | 28 +++++++++++
 proscend/prosrc/www/app/feature/shdslbis_status.js | 54 ++++++++++++++++++++++
 proscend/prosrc/www/app/locale-en.json             | 12 ++++-
 proscend/prosrc/www/app/locale-fr.json             |  8 ++++
 proscend/prosrc/www/app/locale-zh-tw.json          |  8 ++++
 proscend/prosrc/www/app/services/icos.service.js   |  3 ++
 proscend/prosrc/www/src/index.html.src             |  1 +
 proscend/prosrc/www/src/menu.html.src              | 25 ++++++++--
 8 files changed, 132 insertions(+), 7 deletions(-)

還沒美化

不過堪用

1605

幫 G.Shdsl.bis 找一個堪用的 icon

commit d16662301940b6abb477bf84f8d06f6671696962
Refs: [develop], {origin/develop}, {origin/HEAD}
Author: jeffrey <[email protected]>
Date:   Wed Aug 8 16:03:36 2018 +0800

    change the icon for 'G.Shdsl.bin'

 proscend/prosrc/www/app/feature/shdslbis.html        | 2 +-
 proscend/prosrc/www/app/feature/shdslbis_status.html | 2 +-
 proscend/prosrc/www/src/menu.html.src                | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

1745

commit 10c42b4d610d9253799a623794647675073befa5
Refs: [develop], {origin/develop}, {origin/HEAD}
Author: jeffrey <[email protected]>
Date:   Wed Aug 8 17:42:17 2018 +0800

    remove nav-tab 'ping health' from 'WAN / Ethernet' web page

 proscend/prosrc/www/app/feature/wanEthernet.html | 118 -----------------------
 proscend/prosrc/www/app/feature/wanEthernet.js   |  32 +-----
 2 files changed, 2 insertions(+), 148 deletions(-)