Parcourir la source

解决snmp的bug

guohui il y a 2 ans
Parent
commit
fb691a6931
1 fichiers modifiés avec 8 ajouts et 6 suppressions
  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;