From d8b2d2a0a0edcc5b82878b68b21fdb1628365a72 Mon Sep 17 00:00:00 2001 From: Carlos Dominguez Date: Thu, 16 Jun 2016 16:12:45 +0200 Subject: [PATCH 1/2] Debugged!!! --- common/dmfsnmp.c | 14 ++++++++++++++ include/dmfsnmp.h | 6 ++++++ scripts/DMF/dmf-test.c | 15 +++++++++++---- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/common/dmfsnmp.c b/common/dmfsnmp.c index 28f372fd4c..9d899ae39b 100644 --- a/common/dmfsnmp.c +++ b/common/dmfsnmp.c @@ -515,6 +515,20 @@ mibdmf_get_aux_list_ptr(mibdmf_parser_t *dmp) return &(dmp->list[dmp->sublist_elements - 1]); } +alist_t ** +mibdmf_get_initial_list_ptr(mibdmf_parser_t *dmp) +{ + if (dmp==NULL) return NULL; + return dmp->list; +} + +int +mibdmf_get_list_size(mibdmf_parser_t *dmp) +{ + if (dmp==NULL) return 0; + return dmp->sublist_elements; +} + // Properly destroy the object hierarchy and NULLify the caller's pointer void mibdmf_parser_destroy(mibdmf_parser_t **self_p) diff --git a/include/dmfsnmp.h b/include/dmfsnmp.h index 7fb7a61618..86e7b65bee 100644 --- a/include/dmfsnmp.h +++ b/include/dmfsnmp.h @@ -318,6 +318,12 @@ alist_t * // be validly reallocated, freed, etc. alist_t ** mibdmf_get_aux_list_ptr(mibdmf_parser_t *dmp); + +alist_t ** + mibdmf_get_initial_list_ptr(mibdmf_parser_t *dmp); + +int + mibdmf_get_list_size(mibdmf_parser_t *dmp); int * mibdmf_get_device_table_counter_ptr(mibdmf_parser_t *dmp); diff --git a/scripts/DMF/dmf-test.c b/scripts/DMF/dmf-test.c index 04e8635e48..f9ec2aac9f 100644 --- a/scripts/DMF/dmf-test.c +++ b/scripts/DMF/dmf-test.c @@ -67,12 +67,19 @@ main () //mib2nut_info_t *m2n = get_mib2nut_table(); //print_mib2nut_memory_struct(m2n + 6); //print_mib2nut_memory_struct(&pxgx_ups); - printf("=== DMF-Test: Loaded C structures (sample for 'eaton_epdu'):\n\n"); - print_mib2nut_memory_struct((mib2nut_info_t *) - alist_get_element_by_name(mibdmf_get_aux_list(dmp), "eaton_marlin")->values[0]); + alist_t **aux = mibdmf_get_initial_list_ptr(dmp); + alist_t *element; + int iterator = 0; + + printf("=== DMF-Test: Loaded C structures (sample for 'eaton_epdu'):\n\n"); + while(!(element = alist_get_element_by_name(aux[iterator], "eaton_marlin"))&&(iterator < mibdmf_get_list_size(dmp))) + iterator++; + + if(element) + print_mib2nut_memory_struct((mib2nut_info_t *) element->values[0]); printf("\n\n"); printf("=== DMF-Test: Original C structures (sample for 'eaton_epdu'):\n\n"); - print_mib2nut_memory_struct(&eaton_marlin); + //print_mib2nut_memory_struct(&eaton_marlin); //End debugging printf("=== DMF-Test: Freeing data...\n\n"); From f25ef63c52102afa9a8351b8fc8877524754f8f3 Mon Sep 17 00:00:00 2001 From: Carlos Dominguez Date: Thu, 16 Jun 2016 16:20:30 +0200 Subject: [PATCH 2/2] minimal clean --- scripts/DMF/dmf-test.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/DMF/dmf-test.c b/scripts/DMF/dmf-test.c index f9ec2aac9f..c40a8e08f9 100644 --- a/scripts/DMF/dmf-test.c +++ b/scripts/DMF/dmf-test.c @@ -71,14 +71,14 @@ main () alist_t *element; int iterator = 0; - printf("=== DMF-Test: Loaded C structures (sample for 'eaton_epdu'):\n\n"); + //printf("=== DMF-Test: Loaded C structures (sample for 'eaton_epdu'):\n\n"); while(!(element = alist_get_element_by_name(aux[iterator], "eaton_marlin"))&&(iterator < mibdmf_get_list_size(dmp))) iterator++; if(element) print_mib2nut_memory_struct((mib2nut_info_t *) element->values[0]); - printf("\n\n"); - printf("=== DMF-Test: Original C structures (sample for 'eaton_epdu'):\n\n"); + //printf("\n\n"); + //printf("=== DMF-Test: Original C structures (sample for 'eaton_epdu'):\n\n"); //print_mib2nut_memory_struct(&eaton_marlin); //End debugging