diff options
Diffstat (limited to 'source/n/net-snmp/net-snmp-5.8-modern-rpm-api.patch')
-rw-r--r-- | source/n/net-snmp/net-snmp-5.8-modern-rpm-api.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/source/n/net-snmp/net-snmp-5.8-modern-rpm-api.patch b/source/n/net-snmp/net-snmp-5.8-modern-rpm-api.patch new file mode 100644 index 00000000..93fcc63f --- /dev/null +++ b/source/n/net-snmp/net-snmp-5.8-modern-rpm-api.patch @@ -0,0 +1,83 @@ +diff -urNp a/agent/mibgroup/host/data_access/swinst_rpm.c b/agent/mibgroup/host/data_access/swinst_rpm.c +--- a/agent/mibgroup/host/data_access/swinst_rpm.c 2018-07-18 16:12:19.583503903 +0200 ++++ b/agent/mibgroup/host/data_access/swinst_rpm.c 2018-07-18 16:50:38.599703588 +0200 +@@ -102,7 +102,6 @@ netsnmp_swinst_arch_load( netsnmp_contai + rpmtd td_name, td_version, td_release, td_group, td_time; + #else + char *n, *v, *r, *g; +- int32_t *t; + #endif + time_t install_time; + size_t date_len; +@@ -146,14 +145,13 @@ netsnmp_swinst_arch_load( netsnmp_contai + install_time = rpmtdGetNumber(td_time); + g = rpmtdGetString(td_group); + #else +- headerGetEntry( h, RPMTAG_NAME, NULL, (void**)&n, NULL); +- headerGetEntry( h, RPMTAG_VERSION, NULL, (void**)&v, NULL); +- headerGetEntry( h, RPMTAG_RELEASE, NULL, (void**)&r, NULL); +- headerGetEntry( h, RPMTAG_GROUP, NULL, (void**)&g, NULL); +- headerGetEntry( h, RPMTAG_INSTALLTIME, NULL, (void**)&t, NULL); ++ n = headerGetString( h, RPMTAG_NAME); ++ v = headerGetString( h, RPMTAG_VERSION); ++ r = headerGetString( h, RPMTAG_RELEASE); ++ g = headerGetString( h, RPMTAG_GROUP); ++ install_time = headerGetNumber( h, RPMTAG_INSTALLTIME); + entry->swName_len = snprintf( entry->swName, sizeof(entry->swName), + "%s-%s-%s", n, v, r); +- install_time = *t; + #endif + entry->swType = (g && NULL != strstr( g, "System Environment")) + ? 2 /* operatingSystem */ +diff -urNp a/agent/mibgroup/host/hr_swinst.c b/agent/mibgroup/host/hr_swinst.c +--- a/agent/mibgroup/host/hr_swinst.c 2018-07-18 16:12:19.582503907 +0200 ++++ b/agent/mibgroup/host/hr_swinst.c 2018-07-18 17:09:29.716564197 +0200 +@@ -479,9 +479,9 @@ var_hrswinst(struct variable * vp, + } + #else + # ifdef HAVE_LIBRPM +- char *rpm_groups; +- if ( headerGetEntry(swi->swi_h, RPMTAG_GROUP, NULL, (void **) &rpm_groups, NULL) ) { +- if ( strstr(rpm_groups, "System Environment") != NULL ) ++ const char *rpm_group = headerGetString(swi->swi_h, RPMTAG_GROUP); ++ if ( NULL != rpm_group ) { ++ if ( strstr(rpm_group, "System Environment") != NULL ) + long_return = 2; /* operatingSystem */ + else + long_return = 4; /* applcation */ +@@ -498,9 +498,8 @@ var_hrswinst(struct variable * vp, + case HRSWINST_DATE: + { + #ifdef HAVE_LIBRPM +- int32_t *rpm_data; +- if ( headerGetEntry(swi->swi_h, RPMTAG_INSTALLTIME, NULL, (void **) &rpm_data, NULL) ) { +- time_t installTime = *rpm_data; ++ time_t installTime = headerGetNumber(swi->swi_h, RPMTAG_INSTALLTIME); ++ if ( 0 != installTime ) { + ret = date_n_time(&installTime, var_len); + } else { + ret = date_n_time(NULL, var_len); +@@ -660,7 +659,7 @@ Save_HR_SW_info(int ix) + if (1 <= ix && ix <= swi->swi_nrec && ix != swi->swi_prevx) { + int offset; + Header h; +- char *n, *v, *r; ++ const char *n, *v, *r; + + offset = swi->swi_recs[ix - 1]; + +@@ -685,11 +684,9 @@ Save_HR_SW_info(int ix) + swi->swi_h = h; + swi->swi_prevx = ix; + +- headerGetEntry(swi->swi_h, RPMTAG_NAME, NULL, (void **) &n, NULL); +- headerGetEntry(swi->swi_h, RPMTAG_VERSION, NULL, (void **) &v, +- NULL); +- headerGetEntry(swi->swi_h, RPMTAG_RELEASE, NULL, (void **) &r, +- NULL); ++ n = headerGetString(swi->swi_h, RPMTAG_NAME); ++ v = headerGetString(swi->swi_h, RPMTAG_VERSION); ++ r = headerGetString(swi->swi_h, RPMTAG_RELEASE); + snprintf(swi->swi_name, sizeof(swi->swi_name), "%s-%s-%s", n, v, r); + swi->swi_name[ sizeof(swi->swi_name)-1 ] = 0; + } |