20190613_jeffrey - silenceuncrio/diary GitHub Wiki
0915
早上一來就看到 ariel 被 jessy 用辦公室椅子推著走
說腳痛到被法走路
繼續 M300 - feature/lighttpd
經過昨天的回顧以及思考怎麼來改 icos web module
- 不能另外寫一個新的 web module
- 需要考慮 firmware upgrade 之後要接受原本的 web module configuration
- 新的 module 肯定是有自己的預設值 可能跟使用者的設定不一樣
- 目前的 web module daemon control 數量為 2 - gWebCtrl.dmn_ctrl[2]
- 改成一個的話工程比較大
- 注意到 daemon_restart()
- 如果 daemon id 是 DID_HTTPD 就不要做事
- 如果 daemon id 是 DID_HTTPS 的話就依據 module configuration 準備好 lighttpd 所需要的 configuration
- 注意到 lighttpd 對於 IPv6 的 support
1000
先作以下修改
diff --git a/proscend/prosrc/icos/icoslib/entry.c b/proscend/prosrc/icos/icoslib/entry.c
index b2e41f7..1804073 100644
--- a/proscend/prosrc/icos/icoslib/entry.c
+++ b/proscend/prosrc/icos/icoslib/entry.c
@@ -86,7 +86,7 @@ sAttStringSet moduleInitAry[] =
{ "MODULE_CWMP", MODULE_CWMP },
#endif
-// { "MODULE_WEB", MODULE_WEB },
+ { "MODULE_WEB", MODULE_WEB },
{ "MODULE_DNAT", MODULE_DNAT },
{ "MODULE_SNAT", MODULE_SNAT },
@@ -1131,7 +1131,7 @@ int ICOS_Bootinit(void)
//ICOS_broadcast(0, NULL, 0, ICOS_BOOTINIT_DONE); // Ariel
led_on(LED_SYSTEM_STATUS);
ICOS_msg_sendto(0, MODULE_NETMON,NULL, 0,ICOS_BOOTINIT_DONE);
- //ICOS_msg_sendto(0, MODULE_WEB,NULL, 0,ICOS_BOOTINIT_DONE);
+ ICOS_msg_sendto(0, MODULE_WEB,NULL, 0,ICOS_BOOTINIT_DONE);
return ICOS_SUCCESS;
}
diff --git a/proscend/prosrc/icos/icoslib/web/webcfg.c b/proscend/prosrc/icos/icoslib/web/webcfg.c
index b0fbd3a..687ed00 100644
--- a/proscend/prosrc/icos/icoslib/web/webcfg.c
+++ b/proscend/prosrc/icos/icoslib/web/webcfg.c
@@ -80,7 +80,6 @@ typedef struct daemon_ctrl_s
int retry_cnt; //Stop when count down to zero or negative.
//int ip_ver; //Specific the ip version for this daemon, 4 for ipv4,6 for ipv6,and 0 for dual.
int did; //Daemon ID,DID_HTTPD/DID_HTTPS
- int starting_once; // successful starting once or not
} DAEMON_CTRL_T;
typedef struct runtime_info_s
@@ -677,7 +676,9 @@ static void daemon_restart(DAEMON_CTRL_T *dmn_ctrl)
}
else
{
- snprintf(argv,sizeof(argv)," -p %d -d %s", cfg->httpdPort, WEB_DAEMON_HTML_DIR);
+ WEB_DBG("[DMN]Do not start when did = DID_HTTPD\n");
+ return;
+ //snprintf(argv,sizeof(argv)," -p %d -d %s", cfg->httpdPort, WEB_DAEMON_HTML_DIR);
}
WEB_DBG("[DMN]Lanch=>%s %s\n",WEB_DAEMON_BIN_FILE,argv);
@@ -721,7 +722,6 @@ static int controller_init(sWebConfig *cfgp)
gWebCtrl.dmn_ctrl[i].flag=0;
gWebCtrl.dmn_ctrl[i].pid=BAD_PID;
gWebCtrl.dmn_ctrl[i].retry_cnt=MAX_DAEMON_RETRY_NUM; //-1 for forever
- gWebCtrl.dmn_ctrl[i].starting_once = 0;
gWebCtrl.dmn_ctrl[i].is_keyfile_ready=0;
if (keyfile && certfile)
@@ -1103,35 +1103,8 @@ static int _termcb(char *msg, pid_t pid)
{
gWebCtrl.dmn_ctrl[i].status=DAEMON_STATUS_OFF;
gWebCtrl.dmn_ctrl[i].pid=BAD_PID;
-
-#if 0
- if(0<(--gWebCtrl.dmn_ctrl[i].retry_cnt))
- {
- daemon_restart(&gWebCtrl.dmn_ctrl[i]);
- web_dump(DUMP_DMN,"Daemon killed restart");
- }
- else
- {
- WEB_INFO("###[DID%d]Daemon stopped due to reach max retry(%d).###\n",gWebCtrl.dmn_ctrl[i].did,MAX_DAEMON_RETRY_NUM);
- }
-#else // do not care the max retry
-
- if (gWebCtrl.dmn_ctrl[i].did == DID_HTTPS)
- {
- if (gWebCtrl.dmn_ctrl[i].starting_once == 0)
- {
- remove(WEB_DAEMON_KEY_FILE);
- remove(WEB_DAEMON_CERT_FILE);
- gWebCtrl.dmn_ctrl[i].is_keyfile_ready = 0;
- WEB_INFO("HTTPS terminate and never starting successful yet, remove key and cert and restart the daemon\n");
- }
- }
-
daemon_restart(&gWebCtrl.dmn_ctrl[i]);
web_dump(DUMP_DMN,"Daemon killed restart");
-#endif
-
-
}
}
@@ -1172,28 +1145,28 @@ static int _termcb(char *msg, pid_t pid)
static void daemon_event(DAEMON_CTRL_T *dmn_ctrl,char *msg)
{
-
+#if 0
#define WEB_DAEMON_STARTING_HTTP_ON_PORT_XXX "Starting HTTP on port"
#define WEB_DAEMON_STARTING_HTTPS_ON_PORT_XXX "Starting HTTPS on port"
-
- char *line;
- char *saveptr;
- char *ptr;
-
- if(strstr(msg, WEB_DAEMON_STARTING_HTTP_ON_PORT_XXX))
- {
- WEB_INFO("Starting HTTP success\n");
- dmn_ctrl->starting_once = 1;
- return;
- }
-
- if(strstr(msg, WEB_DAEMON_STARTING_HTTPS_ON_PORT_XXX))
- {
- WEB_INFO("Starting HTTPS success\n");
- dmn_ctrl->starting_once = 1;
- return;
- }
-
+
+ char *line;
+ char *saveptr;
+ char *ptr;
+
+ if(strstr(msg, WEB_DAEMON_STARTING_HTTP_ON_PORT_XXX))
+ {
+ WEB_INFO("Starting HTTP success\n");
+ dmn_ctrl->starting_once = 1;
+ return;
+ }
+
+ if(strstr(msg, WEB_DAEMON_STARTING_HTTPS_ON_PORT_XXX))
+ {
+ WEB_INFO("Starting HTTPS success\n");
+ dmn_ctrl->starting_once = 1;
+ return;
+ }
+#endif
}
@@ -1219,12 +1192,12 @@ static int _msgcb(char *msg, pid_t pid, int rc)
if(msg)
{
-#if 1 //debug
+#if 0 //debug
WEB_DAEMON("<--\n");
WEB_DAEMON("%s",msg);
WEB_DAEMON("-->\n");
#endif
- daemon_event(dmn_ctrl,msg);
+ //daemon_event(dmn_ctrl,msg);
}
return ICOS_SUCCESS;
}
確認是否只有 HTTPS 起來
為了節省時間只置換 libicos.so
1015
root@Cellular Router:~# cat /home/log/web.log
[20190613 01:59:45] [_notify:853]Recv bcast evt 14 before module init done.Ignore it.
[20190613 01:59:47] [_notify:865]ICOS_UCAST_MODULE_APPLY
[20190613 02:00:00] [_notify:896]ICOS_BOOTINIT_DONE
[20190613 02:00:00] [web_dump:524]===init config===
[20190613 02:00:00] [web_dump:534][COM]conn_mgr=1,mod_init_done:1.
[20190613 02:00:00] [web_dump:562][CFG]mode=both,httpd_port=80,https_port=443,refreshperiod=2,sport=80,intf=lan,secure=all,clienip=0.0.0.0,httpd_access=lan,https_access=lan
[20190613 02:00:00] [web_dump:570][DMN0]active=1,pid=-1,status=0,flag=0x0,DID0
[20190613 02:00:00] [web_dump:570][DMN1]active=1,pid=-1,status=0,flag=0x0,DID1
[20190613 02:00:00] [web_dump:575][RTI]wan4_ifname=,wan6_ifname=.
[20190613 02:00:00] [reset_firewall:775]Allow all ips.
[20190613 02:00:00] [daemon_restart:640][DID0] remain IP server retry for 6 times.
[20190613 02:00:00] [daemon_restart:679][DMN]Do not start when did = DID_HTTPD
[20190613 02:00:00] [daemon_restart:640][DID1] remain IP server retry for 6 times.
[20190613 02:00:00] [gen_key_files:586]IN
[20190613 02:00:00] [gen_key_files:598]iweb genkey pid = 1357
[20190613 02:00:00] [gen_key_files:601]OUT
[20190613 02:00:00] [is_request_start:629][DMN]disabled cause key not ready.
[20190613 02:00:00] [web_dump:570][DMN0]active=1,pid=-1,status=0,flag=0x0,DID0
[20190613 02:00:00] [web_dump:570][DMN1]active=1,pid=-1,status=0,flag=0x1,DID1
[20190613 02:00:00] [web_dump:524]===After daemon restart===
[20190613 02:00:00] [web_dump:534][COM]conn_mgr=1,mod_init_done:1.
[20190613 02:00:00] [web_dump:562][CFG]mode=both,httpd_port=80,https_port=443,refreshperiod=2,sport=80,intf=lan,secure=all,clienip=0.0.0.0,httpd_access=lan,https_access=lan
[20190613 02:00:00] [web_dump:570][DMN0]active=1,pid=-1,status=0,flag=0x0,DID0
[20190613 02:00:00] [web_dump:570][DMN1]active=1,pid=-1,status=0,flag=0x0,DID1
[20190613 02:00:00] [web_dump:575][RTI]wan4_ifname=,wan6_ifname=.
[20190613 02:00:34] [_termcb:1099]IN(1357)
[20190613 02:00:34] [_termcb:1123]HTTPS key and cert generated done.
[20190613 02:00:34] [web_dump:524]===Key file generated done, daemon restart===
[20190613 02:00:34] [web_dump:570][DMN0]active=1,pid=-1,status=0,flag=0x0,DID0
[20190613 02:00:34] [web_dump:570][DMN1]active=1,pid=-1,status=0,flag=0x0,DID1
[20190613 02:00:34] [daemon_restart:640][DID1] remain IP server retry for 6 times.
[20190613 02:00:34] [gen_key_files:586]IN
[20190613 02:00:34] [gen_key_files:601]OUT
[20190613 02:00:34] [daemon_restart:684][DMN]Lanch=>/usr/sbin/iweb -p 443 -d /www -s
[20190613 02:00:34] [_msgcb:1183]IN(DID1,pid 3572)
[20190613 02:01:24] [_notify:896]ICOS_BOOTINIT_DONE
[20190613 02:01:24] [_notify:900]ICOS_BOOTINIT_DONE is received already, break!
[20190613 02:01:47] [_notify:945]ICOS_WAN6_IP_UPDATE
[20190613 02:01:47] [_notify:952]Ignore due to conn_mgr is on.
[20190613 02:01:48] [_notify:943]ICOS_WAN6_GATEWAY_UPDATE
[20190613 02:01:48] [_notify:945]ICOS_WAN6_IP_UPDATE
[20190613 02:01:48] [_notify:955]WAN6 IP UPDATE
[20190613 02:01:52] [_notify:917]ICOS_WAN_IP_UPDATE
[20190613 02:01:52] [_notify:924]Ignore due to conn_mgr is on.
[20190613 02:01:59] [_notify:915]ICOS_WAN_GATEWAY_UPDATE
[20190613 02:01:59] [_notify:917]ICOS_WAN_IP_UPDATE
[20190613 02:01:59] [_notify:927]WAN IP UPDATE
root@Cellular Router:~#
log 看起來不錯
root@Cellular Router:~# ps aux | grep iweb
root 3572 0.1 0.6 10636 3148 pts/4 Ss+ 02:00 0:00 iweb -p 443 -d /www -s
root 17482 0.0 0.0 1768 320 ttymxc0 S+ 02:06 0:00 grep iweb
root@Cellular Router:~#
process 也正常
把 process kill 掉看看
root@Cellular Router:~# cat /home/log/web.log
...
[20190613 02:08:26] [_termcb:1099]IN(3572)
[20190613 02:08:26] [daemon_restart:640][DID1] remain IP server retry for 6 times.
[20190613 02:08:26] [gen_key_files:586]IN
[20190613 02:08:26] [gen_key_files:601]OUT
[20190613 02:08:26] [daemon_restart:684][DMN]Lanch=>/usr/sbin/iweb -p 443 -d /www -s
[20190613 02:08:26] [web_dump:524]===Daemon killed restart===
[20190613 02:08:26] [web_dump:570][DMN0]active=1,pid=-1,status=0,flag=0x0,DID0
[20190613 02:08:26] [web_dump:570][DMN1]active=1,pid=22747,status=1,flag=0x0,DID1
[20190613 02:08:27] [_msgcb:1183]IN(DID1,pid 22747)
root@Cellular Router:~#
看看 ps
root@Cellular Router:~# ps aux | grep iweb
root 22747 0.2 0.6 10636 3248 pts/14 Ss+ 02:08 0:00 iweb -p 443 -d /www -s
root 26507 0.0 0.0 1768 320 ttymxc0 S+ 02:10 0:00 grep iweb
root@Cellular Router:~#
很好
來把 iweb 換成 lighttpd 吧
1305
把 iweb 換成 lighttpd 之前先 commit
commit 7eca1c99e0b1cdfb93281c8fe9c9b1d2e1f54da2
Refs: [feature/lighttpd], {origin/feature/lighttpd}
Author: jeffrey <[email protected]>
Date: Thu Jun 13 13:08:38 2019 +0800
ready for replace the iweb with lighttpd
- init MODULE_WEB at moduleInitAry[]
- send ICOS_BOOTINIT_DONE to MODULE_WEB
- Do not start the iweb when did = DID_HTTPD
- remove starting_once related logic
- no more invoke daemon_event()
proscend/prosrc/icos/icoslib/entry.c | 4 +--
proscend/prosrc/icos/icoslib/web/webcfg.c | 41 ++++++-------------------------
2 files changed, 9 insertions(+), 36 deletions(-)
啟動 lighttpd 之前要先依據 module configuration 準備好 configuration
1530
lighttpd 的 HTTPS 不能使用之前 iweb 透過 web_x509.sh 所產生的 key
root@Cellular Router:/etc/icos/web# lighttpd -f /home/factory/icos/lighttpd/li>
2019-06-13 07:17:09: (/home/user/build_small/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.53-r0/lighttpd-1.4.53/src/mod_openssl.c.452) SSL: couldn't read X509 certificate from '/etc/icos/web/iweb_key.pem'
2019-06-13 07:17:09: (/home/user/build_small/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.53-r0/lighttpd-1.4.53/src/server.c.1183) Initialization of plugins failed. Going down.
</home/factory/icos/lighttpd/lighttpd.conf
</web# lighttpd -f /home/factory/icos/lighttpd/lighttpd.conf
2019-06-13 07:17:34: (/home/user/build_small/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.53-r0/lighttpd-1.4.53/src/mod_openssl.c.487) SSL: couldn't read private key from '/etc/icos/web/iweb_cert.pem'
2019-06-13 07:17:34: (/home/user/build_small/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.53-r0/lighttpd-1.4.53/src/server.c.1183) Initialization of plugins failed. Going down.
目前 web_x509.sh
#!/bin/bash
openssl req -x509 -newkey rsa:2048 -keyout /etc/icos/web/iweb_key.pem -out /etc/icos/web/iweb_cert.pem -days 3650 -nodes -subj '/CN=localhost'
參考 Setting up a simple SSL configuration
產生 certificate 的方法跟 web_x509.sh
不同
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes
keyout 與 out 都是 lighttpd.pem
看來需要為了 lighttpd 多寫一隻 web_x509_lighttpd.sh
1715
已經把 iweb 換成 lighttpd 了
遇到了一些坑
先 build 個 image 來試試在來整理一下方便 commit
1735
測試的過程發現網頁的 Management > Web
還沒修改
先整理一下這一次的修改
diff --git a/proscend/prosrc/icos/icoslib/web/webcfg.c b/proscend/prosrc/icos/icoslib/web/webcfg.c
index 380ef89..0549279 100644
--- a/proscend/prosrc/icos/icoslib/web/webcfg.c
+++ b/proscend/prosrc/icos/icoslib/web/webcfg.c
@@ -34,6 +34,65 @@
+#define WEB_DAEMON_LIGHTTPD_BIN_FILE "/usr/sbin/lighttpd"
+#define WEB_DAEMON_LIGHTTPD_KEY WEB_ETC_DIR"/lighttpd.pem"
+#define WEB_CONFIG__FILE WEB_TMP_DIR"/lighttpd.conf"
+#define WEB_DAEMON_LIGHTTPD_ARGV "-D -f %s"
+
+
+
+#define WEB_CONFIG_SERVER_DOCUMENT_ROOT \
+ "server.document-root = \"/www/\"\n" \
+ "\n"
+
+#define WEB_CONFIG_SERVER_PORT \
+ "server.port = %d\n" \
+ "\n"
+
+#define WEB_CONFIG_SERVER_MODULES \
+ "server.modules = ( \"mod_rewrite\", \"mod_access\", \"mod_cgi\", \"mod_openssl\", \"mod_accesslog\" )\n" \
+ "\n"
+
+#define WEB_CONFIG_INDEX_FILE_NAMES \
+ "index-file.names = ( \"index.html\" )\n" \
+ "\n"
+
+#define WEB_CONFIG_MINETYPE_ASSIGN \
+ "mimetype.assign = ( \n" \
+ " \".gif\" => \"image/gif\",\n" \
+ " \".jpg\" => \"image/jpeg\",\n" \
+ " \".jpeg\" => \"image/jpeg\",\n" \
+ " \".png\" => \"image/png\",\n" \
+ " \".css\" => \"text/css\",\n" \
+ " \".html\" => \"text/html\",\n" \
+ " \".htm\" => \"text/html\",\n" \
+ " \".txt\" => \"text/plain\",\n" \
+ ")\n" \
+ "\n"
+
+#define WEB_CONFIG_CGI_ASSIGN \
+ "cgi.assign = ( \".cgi\" => \"\" )\n" \
+ "\n"
+
+#define WEB_CONFIG_URL_REWRITE \
+ "url.rewrite = ( \n" \
+ " \"^/api/([a-zA-Z]+)[0-9a-zA-Z=.?]*$\" => \"/cgi-bin/api.cgi?act=$1\",\n" \
+ " \"^/(DO_ON|DO_OFF|DO_PULSE|RESTORE_DO_ALARM)$\" => \"/cgi-bin/api.cgi?act=$1\",\n" \
+ ")\n" \
+ "\n"
+
+#define WEB_CONFIG_SERVER_SOCKET \
+ "$SERVER[\"socket\"] == \":%d\" {\n" \
+ " ssl.engine = \"enable\" \n" \
+ " ssl.pemfile = \"/etc/icos/web/lighttpd.pem\" \n" \
+ "}\n" \
+ "\n"
+
+
+
+
+
+
enum
{
DAEMON_STATUS_OFF=0,
@@ -170,6 +229,10 @@ int Is_icos_bootinit_done_received = 0;
+static void _make_configuration_file(sWebConfig *setting);
+
+
+
static int LocalString2Value(int attID, char *pAttValue, int *pValue)
{
int res = ICOS_FAILURE;
@@ -317,6 +380,31 @@ static int LocSaveConfigTxt(char *szFileName, sWebConfig *pCfg)
+static void _make_configuration_file(sWebConfig *setting)
+{
+ WEB_INFO("");
+
+ FILE *fp = fopen(WEB_CONFIG__FILE, "w");
+ if (fp == 0)
+ {
+ WEB_DBG("Failed to open file: '%s'", WEB_CONFIG__FILE);
+ return ICOS_FAILURE;
+ }
+
+ fprintf(fp, WEB_CONFIG_SERVER_DOCUMENT_ROOT);
+ fprintf(fp, WEB_CONFIG_SERVER_PORT, setting->httpdPort);
+ fprintf(fp, WEB_CONFIG_SERVER_MODULES);
+ fprintf(fp, WEB_CONFIG_INDEX_FILE_NAMES);
+ fprintf(fp, WEB_CONFIG_MINETYPE_ASSIGN);
+ fprintf(fp, WEB_CONFIG_CGI_ASSIGN);
+ fprintf(fp, WEB_CONFIG_URL_REWRITE);
+ fprintf(fp, WEB_CONFIG_SERVER_SOCKET, setting->httpsPort);
+
+ fclose(fp);
+}
+
+
+
static int ApplyWebSetting(int flag, int index, void* pStruct, int structSize)
{
sWebConfig *pCfg = (sWebConfig *)pStruct;
@@ -344,6 +432,7 @@ static int ApplyWebSetting(int flag, int index, void* pStruct, int structSize)
switch (flag)
{
case OPFLAG_APPLY_WEB_WWW:
+ _make_configuration_file(pCfg);
ICOS_msg_sendto(MODULE_WEB,MODULE_WEB,pCfg,sizeof(sWebConfig),ICOS_UCAST_MODULE_APPLY);
return ICOS_SUCCESS;
default:
@@ -584,19 +673,10 @@ static void gen_key_files(void)
char cmd[256];
WEB_INFO("IN\n");
- if (-1 == access(WEB_DAEMON_KEY_FILE, F_OK))
+ if (-1 == access(WEB_DAEMON_LIGHTTPD_KEY, F_OK))
{
-#if 0
- snprintf(cmd, sizeof(cmd),
- "req -x509 -newkey rsa:1024 -keyout %s -out %s -days 365 -nodes -subj '/CN=localhost'",
- WEB_DAEMON_KEY_FILE, WEB_DAEMON_CERT_FILE);
- pid = ICOS_ProcLaunch(MODULE_WEB, WEB_DAEMON_KEYGEN_FILE, cmd, NULL);
- WEB_INFO("iweb genkey cmd = %s\n", cmd);
+ pid = ICOS_ProcLaunch(MODULE_WEB, "web_x509_lighttpd.sh", NULL, NULL);
WEB_INFO("iweb genkey pid = %d\n", pid);
-#else
- pid = ICOS_ProcLaunch(MODULE_WEB, "web_x509.sh", NULL, NULL);
- WEB_INFO("iweb genkey pid = %d\n", pid);
-#endif
}
WEB_INFO("OUT\n");
}
@@ -672,7 +752,7 @@ static void daemon_restart(DAEMON_CTRL_T *dmn_ctrl)
if (DID_HTTPS == dmn_ctrl->did)
{
- snprintf(argv,sizeof(argv)," -p %d -d %s -s", cfg->httpsPort, WEB_DAEMON_HTML_DIR);
+ snprintf(argv, sizeof(argv), WEB_DAEMON_LIGHTTPD_ARGV, WEB_CONFIG__FILE);
}
else
{
@@ -681,8 +761,8 @@ static void daemon_restart(DAEMON_CTRL_T *dmn_ctrl)
//snprintf(argv,sizeof(argv)," -p %d -d %s", cfg->httpdPort, WEB_DAEMON_HTML_DIR);
}
- WEB_DBG("[DMN]Lanch=>%s %s\n",WEB_DAEMON_BIN_FILE,argv);
- dmn_ctrl->pid=ICOS_ProcLaunch(MODULE_WEB,WEB_DAEMON_BIN_FILE,argv,NULL);
+ WEB_DBG("[DMN]Lanch=>%s %s\n", WEB_DAEMON_LIGHTTPD_BIN_FILE, argv);
+ dmn_ctrl->pid=ICOS_ProcLaunch(MODULE_WEB, WEB_DAEMON_LIGHTTPD_BIN_FILE, argv, NULL);
if (dmn_ctrl->pid == BAD_PID)
{
@@ -710,8 +790,7 @@ static int controller_init(sWebConfig *cfgp)
gWebCtrl.mod_init_done=0;
gWebCtrl.conn_mgr=GetIcosModule(MODULE_CONNMGR)?1:0;
- int keyfile = (0 == access(WEB_DAEMON_KEY_FILE, F_OK));
- int certfile = (0 == access(WEB_DAEMON_CERT_FILE, F_OK));
+ int keyfile = (0 == access(WEB_DAEMON_LIGHTTPD_KEY, F_OK));
//Daemon
for(i=0; MAX_DAEMON_NUM>i; i++)
@@ -724,7 +803,7 @@ static int controller_init(sWebConfig *cfgp)
gWebCtrl.dmn_ctrl[i].retry_cnt=MAX_DAEMON_RETRY_NUM; //-1 for forever
gWebCtrl.dmn_ctrl[i].is_keyfile_ready=0;
- if (keyfile && certfile)
+ if (keyfile)
{
WEB_INFO("[DID%d] Key file generated done.\n", gWebCtrl.dmn_ctrl[i].did);
gWebCtrl.dmn_ctrl[i].is_keyfile_ready=1;
@@ -1114,10 +1193,9 @@ static int _termcb(char *msg, pid_t pid)
{
if ( DID_HTTPS == gWebCtrl.dmn_ctrl[i].did && 0 == gWebCtrl.dmn_ctrl[i].is_keyfile_ready )
{
- int keyfile = (0 == access(WEB_DAEMON_KEY_FILE, F_OK));
- int certfile = (0 == access(WEB_DAEMON_CERT_FILE, F_OK));
+ int keyfile = (0 == access(WEB_DAEMON_LIGHTTPD_KEY, F_OK));
- if (keyfile && certfile)
+ if (keyfile)
{
char cmd[256]= {0};
WEB_INFO("HTTPS key and cert generated done.\n");
另外新增的有 proscend/prosrc/icos/script/web_x509_lighttpd.sh
#!/bin/bash
openssl req -x509 -newkey rsa:2048 -keyout /tmp/icos/web/lighttpd.pem -out /tmp/icos/web/lighttpd.pem -days 3650 -nodes -subj '/CN=localhost'
mv /tmp/icos/web/lighttpd.pem /etc/icos/web/lighttpd.pem
sync