|
|
@@ -2609,80 +2609,6 @@ int dev_update_snmp_info(sqlite3 *db, int product_id, SNMPManager* _globalSNMPIn
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int dev_get_smtp_info(sqlite3 *db, SMTPManager* _globalSMTPInfo)
|
|
|
-{
|
|
|
- int res = 0 ;
|
|
|
- int rowIndex = 1 ;
|
|
|
- char *errorMsg = NULL;
|
|
|
- int nrow = 0; //满足条件的记录数目
|
|
|
- int ncolumn = 0; //每条记录包含的字段数据
|
|
|
- char** pResult = NULL; //用来指向sql执行结果的指针
|
|
|
- char* err_msg=NULL;
|
|
|
- char select_sql[1024] = {0};
|
|
|
-
|
|
|
- sprintf(select_sql, "SELECT* from Table_SMTPManage WHERE product_id = %d;", __globalDeviceManage._globalDevInfo.product_id);
|
|
|
- res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
|
|
|
- if(res != SQLITE_OK) {
|
|
|
- log_e("sqlite handle error: %s\n%s\n", err_msg,select_sql); sqlite3_free(err_msg);
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
- //提取数据
|
|
|
- if(nrow==0) {
|
|
|
- sqlite3_free_table(pResult);
|
|
|
- return -2 ;
|
|
|
- }
|
|
|
-
|
|
|
- //获取ID
|
|
|
- _globalSMTPInfo->product_id = atoi(pResult[rowIndex*ncolumn+0]);
|
|
|
- _globalSMTPInfo->mode = atoi(pResult[rowIndex*ncolumn+1]);
|
|
|
- strcpy(_globalSMTPInfo->account,pResult[rowIndex*ncolumn+2]);
|
|
|
- strcpy(_globalSMTPInfo->password,pResult[rowIndex*ncolumn+3]);
|
|
|
- strcpy(_globalSMTPInfo->server,pResult[rowIndex*ncolumn+4]);
|
|
|
- _globalSMTPInfo->port = atoi(pResult[rowIndex*ncolumn+5]);
|
|
|
- strcpy(_globalSMTPInfo->auth,pResult[rowIndex*ncolumn+6]);
|
|
|
-
|
|
|
- sqlite3_free_table(pResult);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-int dev_get_smtp_recv_user_list(sqlite3 *db, SMTPreceiveAccount* _globalSMTPreceiveAccount)
|
|
|
-{
|
|
|
- int res = 0 ;
|
|
|
- int rowIndex = 1 ;
|
|
|
- char *errorMsg = NULL;
|
|
|
- int nrow = 0; //满足条件的记录数目
|
|
|
- int ncolumn = 0; //每条记录包含的字段数据
|
|
|
- char** pResult = NULL; //用来指向sql执行结果的指针
|
|
|
- char* err_msg=NULL;
|
|
|
- char select_sql[1024] = {0};
|
|
|
-
|
|
|
- sprintf(select_sql, "SELECT* from Table_SMTPRecAccount;");
|
|
|
- res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
|
|
|
- if(res != SQLITE_OK) {
|
|
|
- log_e("sqlite handle error: %s\n%s\n", err_msg,select_sql); sqlite3_free(err_msg);
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
-
|
|
|
- if(nrow==0) {
|
|
|
- sqlite3_free_table(pResult);
|
|
|
- return -2 ;
|
|
|
- }
|
|
|
-
|
|
|
- for(int i = 1; i <= nrow; i++)
|
|
|
- {
|
|
|
- SMTPreceiveAccount* iterator = (SMTPreceiveAccount*)malloc(sizeof(SMTPreceiveAccount));
|
|
|
- iterator->idx = atoi(pResult[i*ncolumn+0]);
|
|
|
- iterator->receive_account = malloc(128);
|
|
|
- strcpy(iterator->receive_account,pResult[i*ncolumn+1]);
|
|
|
- iterator->receive_account_info = malloc(128);
|
|
|
- strcpy(iterator->receive_account_info,pResult[i*ncolumn+2]);
|
|
|
- list_add_tail(&iterator->list, &_globalSMTPreceiveAccount->list);
|
|
|
- }
|
|
|
-
|
|
|
- sqlite3_free_table(pResult);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
/// @brief 插入一条报警信息
|
|
|
/// @param db
|
|
|
@@ -3510,27 +3436,6 @@ static int tab_exists(sqlite3 *db, char *table)
|
|
|
|
|
|
return exists;
|
|
|
}
|
|
|
-static int tab_sw_create(sqlite3 *db, char *table)
|
|
|
-{
|
|
|
- int r;
|
|
|
- char temp[1024] = {0};
|
|
|
- char *err_msg = NULL;
|
|
|
-
|
|
|
- sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
- "id INTEGER PRIMARY KEY,"
|
|
|
- "up INTEGER,"
|
|
|
- "ip TEXT,"
|
|
|
- "mac TEXT,"
|
|
|
- "desc TEXT);", table);
|
|
|
- r = sqlite3_exec(db, temp, 0, 0, &err_msg);
|
|
|
- if(r!=SQLITE_OK) {
|
|
|
- log_e("___ %s create failed, %s\n%s\n", table, temp, err_msg); sqlite3_free(err_msg);
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static int sw_load(sqlite3 *db, netswitch_info_t *sw)
|
|
|
{
|
|
|
int i=0,r;
|
|
|
@@ -3654,16 +3559,26 @@ int dev_switch_init(sqlite3 *db, netswitch_info_t *sw)
|
|
|
char *table=SWITCH_TABLE;
|
|
|
|
|
|
if(!tab_exists(db, table)) {
|
|
|
- r = tab_sw_create(db, table);
|
|
|
- if(r==0) {
|
|
|
- memset(sw, 0, sizeof(netswitch_info_t));
|
|
|
- sw_update_all(db, sw);
|
|
|
+ char temp[1024] = {0};
|
|
|
+ char *err_msg = NULL;
|
|
|
+
|
|
|
+ sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
+ "id INTEGER PRIMARY KEY,"
|
|
|
+ "up INTEGER,"
|
|
|
+ "ip TEXT,"
|
|
|
+ "mac TEXT,"
|
|
|
+ "desc TEXT);", table);
|
|
|
+ r = sqlite3_exec(db, temp, 0, 0, &err_msg);
|
|
|
+ if(r!=SQLITE_OK) {
|
|
|
+ log_e("___ %s create failed, %s\n%s\n", table, temp, err_msg); sqlite3_free(err_msg);
|
|
|
+ return -1;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- r = sw_load(db, sw);
|
|
|
+ memset(sw, 0, sizeof(netswitch_info_t));
|
|
|
+ sw_update_all(db, sw);
|
|
|
+ }
|
|
|
|
|
|
- return r;
|
|
|
+ return sw_load(db, sw);
|
|
|
}
|
|
|
|
|
|
int dev_switch_update_port(sqlite3 *db, port_info_t *pt)
|
|
|
@@ -3686,3 +3601,125 @@ int dev_switch_update_all(sqlite3 *db, netswitch_info_t *sw)
|
|
|
}
|
|
|
|
|
|
|
|
|
+////////////////smtp/////////////////////////////////////////////
|
|
|
+#define SMTP_MANAGER_TABLE "Table_SMTPManage"
|
|
|
+#define SMTP_RECVEIVE_TABLE "Table_SMTPReceive"
|
|
|
+int dev_smtp_init(sqlite3 *db, smtp_sett_t *sett)
|
|
|
+{
|
|
|
+ int i,r;
|
|
|
+ char temp[1024];
|
|
|
+ char *err_msg=NULL;
|
|
|
+ char *table=NULL;
|
|
|
+ int nrow,ncol;
|
|
|
+ char** pResult = NULL;
|
|
|
+
|
|
|
+ table = SMTP_MANAGER_TABLE;
|
|
|
+ if(!tab_exists(db, table)) {
|
|
|
+ sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
+ "product_id INTEGER,"
|
|
|
+ "mode INTEGER,"
|
|
|
+ "account TEXT,"
|
|
|
+ "password TEXT,"
|
|
|
+ "server TEXT,"
|
|
|
+ "port TEXT,"
|
|
|
+ "auth TEXT);", table);
|
|
|
+ r = sqlite3_exec(db, temp, 0, 0, &err_msg);
|
|
|
+ if(r!=SQLITE_OK) {
|
|
|
+ log_e("___ %s create failed, %s\n%s\n", table, temp, err_msg); sqlite3_free(err_msg);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ nrow = ncol = 0;
|
|
|
+ sprintf(temp, "SELECT * FROM %s;", table);
|
|
|
+ r = sqlite3_get_table(db, temp, &pResult, &nrow, &ncol, &err_msg);
|
|
|
+ if(r != SQLITE_OK) {
|
|
|
+ log_e("sqlite handle error: %s \n%s\n", temp, err_msg); sqlite3_free(err_msg);
|
|
|
+ return -1 ;
|
|
|
+ }
|
|
|
+
|
|
|
+ smtp_manager_t *man=&sett->man;
|
|
|
+ memset(&man, 0, sizeof(smtp_manager_t));
|
|
|
+ man->product_id = atoi(pResult[ncol+0]);
|
|
|
+ man->mode = atoi(pResult[ncol+1]);
|
|
|
+ strcpy(man->account, pResult[ncol+2]);
|
|
|
+ strcpy(man->password, pResult[ncol+3]);
|
|
|
+ strcpy(man->server, pResult[ncol+4]);
|
|
|
+ strcpy(man->port, pResult[ncol+5]);
|
|
|
+ strcpy(man->auth, pResult[ncol+6]);
|
|
|
+ ////////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+ table = SMTP_RECVEIVE_TABLE;
|
|
|
+ if(!tab_exists(db, table)) {
|
|
|
+ sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
+ "use INTEGER,"
|
|
|
+ "idx INTEGER,"
|
|
|
+ "account TEXT);", table);
|
|
|
+ r = sqlite3_exec(db, temp, 0, 0, &err_msg);
|
|
|
+ if(r!=SQLITE_OK) {
|
|
|
+ log_e("___ %s create failed, %s\n%s\n", table, temp, err_msg); sqlite3_free(err_msg);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ nrow = ncol = 0;
|
|
|
+ sprintf(temp, "SELECT * FROM %s;", table);
|
|
|
+ r = sqlite3_get_table(db, temp, &pResult, &nrow, &ncol, &err_msg);
|
|
|
+ if(r != SQLITE_OK) {
|
|
|
+ log_e("sqlite handle error: %s \n%s\n", temp, err_msg); sqlite3_free(err_msg);
|
|
|
+ return -1 ;
|
|
|
+ }
|
|
|
+
|
|
|
+ smtp_recvs_t *rcv=&sett->rcv;
|
|
|
+ memset(rcv, 0, sizeof(smtp_recvs_t));
|
|
|
+ for(i=1; i<=nrow; i++) {
|
|
|
+ rcv->recv[i-1].use = atoi(pResult[i*ncol+0]);
|
|
|
+ rcv->recv[i-1].idx = i-1;
|
|
|
+ strcpy(rcv->recv[i-1].account, pResult[i*ncol+1]);
|
|
|
+ }
|
|
|
+ sqlite3_free_table(pResult);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int dev_smtp_update_mang(sqlite3 *db, smtp_manager_t *man)
|
|
|
+{
|
|
|
+ int i,r=0;
|
|
|
+ char temp[1024];
|
|
|
+ sqlite3_stmt *stmt;
|
|
|
+ char *err_msg=NULL;
|
|
|
+ char *table=SMTP_MANAGER_TABLE;
|
|
|
+
|
|
|
+ sprintf(temp, "UPDATE %s SET product_id=%d, mode='%d', account='%s', password='%s', server='%s', port=%s, auth='%s';",
|
|
|
+ table, man->product_id, man->mode, man->account, man->password, man->server, man->port, man->auth);
|
|
|
+ r = sqlite3_exec(db, temp, NULL, 0, &err_msg);
|
|
|
+ if(r != SQLITE_OK) {
|
|
|
+ log_e("___sw_update_port failed, %s, %s\n\n", temp, err_msg);
|
|
|
+
|
|
|
+ sqlite3_free(err_msg);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int dev_smtp_update_recv(sqlite3 *db, smtp_recv_t *rcv)
|
|
|
+{
|
|
|
+ int i,r=0;
|
|
|
+ char temp[1024];
|
|
|
+ sqlite3_stmt *stmt;
|
|
|
+ char *err_msg=NULL;
|
|
|
+ char *table=SMTP_RECVEIVE_TABLE;
|
|
|
+
|
|
|
+ sprintf(temp, "UPDATE %s SET use=%d, idx=%d, account='%s' WHERE idx=%d;",
|
|
|
+ table, rcv->use, rcv->idx, rcv->account, rcv->idx);
|
|
|
+ r = sqlite3_exec(db, temp, NULL, 0, &err_msg);
|
|
|
+ if(r != SQLITE_OK) {
|
|
|
+ log_e("___sw_update_port failed, %s, %s\n\n", temp, err_msg);
|
|
|
+
|
|
|
+ sqlite3_free(err_msg);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|