Explorar o código

解决snmp的bug

guohui %!s(int64=2) %!d(string=hai) anos
pai
achega
fb691a6931
Modificáronse 1 ficheiros con 8 adicións e 6 borrados
  1. 8 6
      pro/src/sqlite_handle.c

+ 8 - 6
pro/src/sqlite_handle.c

@@ -3002,12 +3002,14 @@ int dev_get_snmp_info(sqlite3 *db, SNMPManager* _globalSNMPInfo)
     _globalSNMPInfo->version= atoi(pResult[rowIndex*ncolumn+1]);
     _globalSNMPInfo->mode = atoi(pResult[rowIndex*ncolumn+2]); 
     strcpy(_globalSNMPInfo->public,pResult[rowIndex*ncolumn+3]);
-    _globalSNMPInfo->trapmode = atoi(pResult[rowIndex*ncolumn+4]); 
-    strcpy(_globalSNMPInfo->crypt.user,pResult[rowIndex*ncolumn+5]);
-    strcpy(_globalSNMPInfo->crypt.auth.alg,pResult[rowIndex*ncolumn+6]);
-    strcpy(_globalSNMPInfo->crypt.auth.passwd,pResult[rowIndex*ncolumn+7]);
-    strcpy(_globalSNMPInfo->crypt.priv.alg,pResult[rowIndex*ncolumn+8]);
-    strcpy(_globalSNMPInfo->crypt.priv.passwd,pResult[rowIndex*ncolumn+9]);
+    _globalSNMPInfo->trapmode = atoi(pResult[rowIndex*ncolumn+4]);
+    if(_globalSNMPInfo->mode==2) {
+        if(pResult[rowIndex*ncolumn+5]) strcpy(_globalSNMPInfo->crypt.user,pResult[rowIndex*ncolumn+5]);
+        if(pResult[rowIndex*ncolumn+6]) strcpy(_globalSNMPInfo->crypt.auth.alg,pResult[rowIndex*ncolumn+6]);
+        if(pResult[rowIndex*ncolumn+7]) strcpy(_globalSNMPInfo->crypt.auth.passwd,pResult[rowIndex*ncolumn+7]);
+        if(pResult[rowIndex*ncolumn+8]) strcpy(_globalSNMPInfo->crypt.priv.alg,pResult[rowIndex*ncolumn+8]);
+        if(pResult[rowIndex*ncolumn+9]) strcpy(_globalSNMPInfo->crypt.priv.passwd,pResult[rowIndex*ncolumn+9]);
+    }
 
     sqlite3_free_table(pResult);
     return 0;