|
|
@@ -7,6 +7,7 @@
|
|
|
#include "xlist.h"
|
|
|
#include "paras.h"
|
|
|
#include "cascade.h"
|
|
|
+#include "switch_ctrl.h"
|
|
|
#include "dictionary.h"
|
|
|
#include "iniparser.h"
|
|
|
#include "sqlite_handle.h"
|
|
|
@@ -883,7 +884,8 @@ static int proc_snmp(char *path, int op, SNMPManager *snmp)
|
|
|
fprintf(fp, "mode = \"%d\"\n", snmp->mode);
|
|
|
fprintf(fp, "version = \"%d\"\n", snmp->version+1);
|
|
|
fprintf(fp, "public = \"%s\"\n", snmp->public);
|
|
|
- fprintf(fp, "trapmode = \"%d\"\n", snmp->trapmode);
|
|
|
+ fprintf(fp, "trap_mode = \"%d\"\n", snmp->trapmode);
|
|
|
+ fprintf(fp, "nms_ip = \"%s\"\n", snmp->nmsIP);
|
|
|
fprintf(fp, "crypt.user = \"%s\"\n", snmp->crypt.user);
|
|
|
fprintf(fp, "crypt.auth.proto = \"%s\"\n", snmp->crypt.auth.alg);
|
|
|
fprintf(fp, "crypt.auth.password = \"%s\"\n", snmp->crypt.auth.passwd);
|
|
|
@@ -907,12 +909,17 @@ static int proc_snmp(char *path, int op, SNMPManager *snmp)
|
|
|
memset(psnmp, 0, sizeof(SNMPManager));
|
|
|
r = ini_rw(dic, "snmp:mode", &psnmp->mode, sizeof(psnmp->mode), TYPE_INT, op); if(r) goto quit;
|
|
|
r = ini_rw(dic, "snmp:public", psnmp->public, sizeof(psnmp->public), TYPE_STR, op); if(r) goto quit;
|
|
|
- r = ini_rw(dic, "snmp:version", ver, sizeof(ver), TYPE_INT, op); if(r) goto quit;
|
|
|
- if(strcmp(ver, "V1")) psnmp->version = 0;
|
|
|
- else if(strcmp(ver, "V2c")) psnmp->version = 1;
|
|
|
- else if(strcmp(ver, "V3")) psnmp->version = 2;
|
|
|
+ r = ini_rw(dic, "snmp:version", ver, sizeof(ver), TYPE_STR, op); if(r) goto quit;
|
|
|
+ if(strcmp(ver, "V1")==0) psnmp->version = 0;
|
|
|
+ else if(strcmp(ver, "V2c")==0) psnmp->version = 1;
|
|
|
+ else if(strcmp(ver, "V3")==0) psnmp->version = 2;
|
|
|
else {r=-1; goto quit;}
|
|
|
|
|
|
+ r = ini_rw(dic, "snmp:trap_mode", &psnmp->trapmode, sizeof(ver), TYPE_INT, op); if(r) goto quit;
|
|
|
+ if(psnmp->version>=1) {
|
|
|
+ r = ini_rw(dic, "snmp:nms_ip", psnmp->nmsIP, sizeof(ver), TYPE_STR, op); if(r) goto quit;
|
|
|
+ }
|
|
|
+
|
|
|
if(psnmp->version==2) {
|
|
|
r = ini_rw(dic, "snmp:crypt.user", psnmp->crypt.user, sizeof(psnmp->crypt.user), TYPE_STR, op); if(r) goto quit;
|
|
|
r = ini_rw(dic, "snmp:crypt.auth.proto", psnmp->crypt.auth.alg, sizeof(psnmp->crypt.auth.alg), TYPE_STR, op); if(r) goto quit;
|
|
|
@@ -951,6 +958,9 @@ static int proc_snmp(char *path, int op, SNMPManager *snmp)
|
|
|
else if(psnmp->version==2) strcpy(ver, "V3");
|
|
|
r = ini_rw(dic, "snmp:version", ver, sizeof(ver), TYPE_STR, op); if(r) goto quit;
|
|
|
|
|
|
+ r = ini_rw(dic, "snmp:trap_mode", &psnmp->trapmode, sizeof(ver), TYPE_INT, op); if(r) goto quit;
|
|
|
+ r = ini_rw(dic, "snmp:nms_ip", psnmp->nmsIP, sizeof(ver), TYPE_STR, op); if(r) goto quit;
|
|
|
+
|
|
|
if(psnmp->version==2) {
|
|
|
r = ini_rw(dic, "snmp:crypt.user", psnmp->crypt.user, sizeof(psnmp->crypt.user), TYPE_STR, op); if(r) goto quit;
|
|
|
r = ini_rw(dic, "snmp:crypt.auth.proto", psnmp->crypt.auth.alg, sizeof(psnmp->crypt.auth.alg), TYPE_STR, op); if(r) goto quit;
|
|
|
@@ -974,6 +984,13 @@ quit:
|
|
|
iniparser_freedict(dic);
|
|
|
return r;
|
|
|
}
|
|
|
+static void do_mqtt_init(mqtt_info_t *info)
|
|
|
+{
|
|
|
+ memset(info, 0, sizeof(mqtt_info_t));
|
|
|
+ for(int i=0; i<MQTT_SER_MAX; i++) {
|
|
|
+ info->ser[i].id = -1;
|
|
|
+ }
|
|
|
+}
|
|
|
static int proc_mqtt(char *path, int op, mqtt_info_t *mqtt)
|
|
|
{
|
|
|
char *p;
|
|
|
@@ -1074,11 +1091,10 @@ static int proc_mqtt(char *path, int op, mqtt_info_t *mqtt)
|
|
|
pmqtt = &mqtt2;
|
|
|
dic = iniparser_load(path); if(!dic) return -1;
|
|
|
|
|
|
- memset(pmqtt, 0, sizeof(mqtt_info_t));
|
|
|
+ do_mqtt_init(pmqtt);
|
|
|
for(i=0; i<MQTT_SER_MAX; i++) {
|
|
|
ser = &pmqtt->ser[j];
|
|
|
|
|
|
- ser->id = j;
|
|
|
sprintf(token, "mqtt:broker%d.plat", i+1);
|
|
|
r = ini_rw(dic, token, &ser->plat, sizeof(ser->plat), TYPE_INT, op); if(r) goto quit;
|
|
|
|
|
|
@@ -1111,12 +1127,10 @@ static int proc_mqtt(char *path, int op, mqtt_info_t *mqtt)
|
|
|
sprintf(token, "mqtt:broker%d.cert", i+1);
|
|
|
r = ini_rw(dic, token, ser->cert, sizeof(ser->cert), TYPE_STR, op); if(r) break;
|
|
|
str_replace(ser->cert,";;", "\r\n");
|
|
|
+ ser->id = j;
|
|
|
|
|
|
j++;
|
|
|
}
|
|
|
- if(r) {
|
|
|
- ser->id = -1;
|
|
|
- }
|
|
|
|
|
|
r = proc_mqtt(path, PARAS_CHECK, pmqtt); if(r) goto quit;
|
|
|
r = dev_clear_table(dm->db, TAB_ID_MQTT); if(r) goto quit;
|
|
|
@@ -1641,10 +1655,13 @@ static int proc_user(char *path, int op, UserInfo *user, handle_t l)
|
|
|
|
|
|
if(chk_ok==0) {
|
|
|
r = proc_user(path, PARAS_CHECK, puser, NULL); if(r) break;
|
|
|
- r = xlist_iterator(l, NULL, find_role_id, &puser->roleID);
|
|
|
- if(r) {
|
|
|
- LOGE("___ roleID %d not found in role sett options!\n", puser->roleID);
|
|
|
- break;
|
|
|
+
|
|
|
+ if(l) {
|
|
|
+ r = xlist_iterator(l, NULL, find_role_id, &puser->roleID);
|
|
|
+ if(r) {
|
|
|
+ LOGE("___ roleID %d not found in role sett options!\n", puser->roleID);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
cnt_ok++;
|
|
|
}
|
|
|
@@ -2335,6 +2352,10 @@ static int proc_power(char *path, int op, GlobalPowerManger *power)
|
|
|
else {
|
|
|
r = dev_update_power_manage_genera_info(dm->db, 0, i, tmp); if(r) break;
|
|
|
r = dev_update_power_manage_over_info(dm->db, 0, i, tmp); if(r) break;
|
|
|
+
|
|
|
+ r = g_switch_set_all_single_threshold(&dm->_globalRelaySampManger,
|
|
|
+ tmp->product_ch_type, tmp->product_saddr,
|
|
|
+ tmp->product_ch_addr, tmp);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2620,6 +2641,12 @@ static int proc_power3(char *path, int op, GlobalTreeACManager *power)
|
|
|
r = dev_update_power_manage_over_info(dm->db, 0, tmp->product_ch_id, &pwr); if(r) break;
|
|
|
|
|
|
r = dev_update_t_ac_power_manage_over_info(dm->db, tmp); if(r) break;
|
|
|
+
|
|
|
+ r = g_switch_set_all_single_threshold(&dm->_globalRelaySampManger,
|
|
|
+ pwr.product_ch_type,
|
|
|
+ tmp->product_saddr,
|
|
|
+ tmp->product_ch_addr,
|
|
|
+ &pwr);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -3166,9 +3193,9 @@ int paras_serv_xport(char *path, int io)
|
|
|
list_cfg_t lc={0,LIST_FULL_FIFO,100};
|
|
|
|
|
|
if(io==PARAS_IMPORT) {
|
|
|
- l = xlist_init(&lc);
|
|
|
+ l = NULL;//xlist_init(&lc);
|
|
|
|
|
|
- r *= proc_role(path, PARAS_READ, NULL, l);
|
|
|
+ //r *= proc_role(path, PARAS_READ, NULL, l);
|
|
|
r *= proc_user(path, PARAS_READ, NULL, l);
|
|
|
r *= proc_group(path, PARAS_READ, NULL);
|
|
|
r *= proc_ntp(path, PARAS_READ, NULL);
|
|
|
@@ -3183,7 +3210,7 @@ int paras_serv_xport(char *path, int io)
|
|
|
get_curtime_str(temp,sizeof(temp));
|
|
|
sprintf(path, "/tmp/service_%s.ini", temp);
|
|
|
|
|
|
- r *= proc_role(path, PARAS_WRITE, NULL, NULL);
|
|
|
+ //r *= proc_role(path, PARAS_WRITE, NULL, NULL);
|
|
|
r *= proc_user(path, PARAS_WRITE, NULL, NULL);
|
|
|
r *= proc_group(path, PARAS_WRITE, NULL);
|
|
|
r *= proc_ntp(path, PARAS_WRITE, NULL);
|