diff options
Diffstat (limited to 'src/libs/zbxdbupgrade/dbupgrade_4050.c')
-rw-r--r-- | src/libs/zbxdbupgrade/dbupgrade_4050.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/libs/zbxdbupgrade/dbupgrade_4050.c b/src/libs/zbxdbupgrade/dbupgrade_4050.c index 4a941def487..eeadac4ad67 100644 --- a/src/libs/zbxdbupgrade/dbupgrade_4050.c +++ b/src/libs/zbxdbupgrade/dbupgrade_4050.c @@ -1043,14 +1043,22 @@ static int DBpatch_items_update(zbx_vector_dbu_snmp_if_t *snmp_ifs) for (i = 0; i < snmp_ifs->values_num && SUCCEED == ret; i++) { + int item_type; dbu_snmp_if_t *s = &snmp_ifs->values[i]; + if (ZBX_IF_SNMP_VERSION_1 == s->version) + item_type = ITEM_TYPE_SNMPv1; + else if (ZBX_IF_SNMP_VERSION_2 == s->version) + item_type = ITEM_TYPE_SNMPv2c; + else + item_type = ITEM_TYPE_SNMPv3; + zbx_snprintf_alloc(&sql, &sql_alloc, &sql_offset, #ifdef HAVE_ORACLE "update items i set type=%d, interfaceid=" ZBX_FS_UI64 " where exists (select 1 from hosts h" " where i.hostid=h.hostid and" - " i.type in (%d,%d,%d) and h.status <> 3 and" + " i.type=%d and h.status <> 3 and" " i.interfaceid=" ZBX_FS_UI64 " and" " (('%s' is null and i.snmp_community is null) or" " i.snmp_community='%s') and" @@ -1067,7 +1075,7 @@ static int DBpatch_items_update(zbx_vector_dbu_snmp_if_t *snmp_ifs) " i.snmpv3_contextname='%s') and" " (('%s' is null and i.port is null) or" " i.port='%s'));\n", - ITEM_TYPE_SNMP, s->interfaceid, ITEM_TYPE_SNMPv1, ITEM_TYPE_SNMPv2c, ITEM_TYPE_SNMPv3, + ITEM_TYPE_SNMP, s->interfaceid, item_type, s->item_interfaceid, s->community, s->community, s->securityname, s->securityname, (int)s->securitylevel, s->authpassphrase, s->authpassphrase, s->privpassphrase, s->privpassphrase, (int)s->authprotocol, (int)s->privprotocol, s->contextname, @@ -1080,7 +1088,7 @@ static int DBpatch_items_update(zbx_vector_dbu_snmp_if_t *snmp_ifs) "update items i set type=%d, interfaceid=" ZBX_FS_UI64 " from hosts h" # endif " where i.hostid=h.hostid and" - " type in (%d,%d,%d) and h.status <> 3 and" + " type=%d and h.status <> 3 and" " interfaceid=" ZBX_FS_UI64 " and" " snmp_community='%s' and" " snmpv3_securityname='%s' and" @@ -1092,7 +1100,7 @@ static int DBpatch_items_update(zbx_vector_dbu_snmp_if_t *snmp_ifs) " snmpv3_contextname='%s' and" " port='%s';\n", ITEM_TYPE_SNMP, s->interfaceid, - ITEM_TYPE_SNMPv1, ITEM_TYPE_SNMPv2c, ITEM_TYPE_SNMPv3, + item_type, s->item_interfaceid, s->community, s->securityname, (int)s->securitylevel, s->authpassphrase, s->privpassphrase, (int)s->authprotocol, (int)s->privprotocol, s->contextname, s->item_port); |