From: Florian G. <re...@us...> - 2007-04-09 22:39:10
|
Update of /cvsroot/perfparse/_perfparse/db_tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22056/db_tools Modified Files: convert.c Log Message: fixed some mem leaks Index: convert.c =================================================================== RCS file: /cvsroot/perfparse/_perfparse/db_tools/convert.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** convert.c 3 Apr 2007 22:21:07 -0000 1.25 --- convert.c 9 Apr 2007 22:39:09 -0000 1.26 *************** *** 69,72 **** --- 69,74 ---- void init_caches(void); int get_policyId_from_name(const char *policy_name, MYSQL *db_mysql_new); + void end_curses(void); + void exit_curses(int endval); // global caches. Translates names to id (e.g. host_name to host_id) *************** *** 95,103 **** g_string_printf(gsNDBSql, "select policy_id from perfdata_delete_policy where policy_name='%s'",policy_name); query_result_new=dbtool_mysql_query(gsNDBSql->str, p_db_mysql_new, query_result_new); if((result_row_new=mysql_fetch_row(query_result_new))) { ! return(atoi(result_row_new[0])); } else { ! return(FALSE); } } } --- 97,113 ---- g_string_printf(gsNDBSql, "select policy_id from perfdata_delete_policy where policy_name='%s'",policy_name); query_result_new=dbtool_mysql_query(gsNDBSql->str, p_db_mysql_new, query_result_new); + g_string_free(gsNDBSql,TRUE); if((result_row_new=mysql_fetch_row(query_result_new))) { ! Pid=atoi(result_row_new[0]); } else { ! Pid=FALSE; } + // cleanup + g_string_free(gsNDBSql,TRUE); + dbtool_freeResult(query_result_new); + // save result in cache + g_hash_table_insert(policiesCache,(gpointer) policy_name,&Pid); + + return(Pid); } } *************** *** 117,125 **** g_string_printf(gsNDBSql, "select group_id from perfdata_groups where group_name='%s'",group_name); query_result_new=dbtool_mysql_query(gsNDBSql->str, p_db_mysql_new, query_result_new); if((result_row_new=mysql_fetch_row(query_result_new))) { ! return(atoi(result_row_new[0])); } else { ! return(FALSE); } } } --- 127,143 ---- g_string_printf(gsNDBSql, "select group_id from perfdata_groups where group_name='%s'",group_name); query_result_new=dbtool_mysql_query(gsNDBSql->str, p_db_mysql_new, query_result_new); + g_string_free(gsNDBSql,TRUE); if((result_row_new=mysql_fetch_row(query_result_new))) { ! Gid=atoi(result_row_new[0]); } else { ! Gid=FALSE; } + // cleanup + g_string_free(gsNDBSql,TRUE); + dbtool_freeResult(query_result_new); + // save result in cache + g_hash_table_insert(groupsCache,(gpointer) group_name,&Gid); + + return(Gid); } } *************** *** 138,147 **** gsNDBSql = g_string_new (""); g_string_printf(gsNDBSql, "select host_id from perfdata_host where host_name='%s'",host_name); ! query_result_new=dbtool_mysql_query(gsNDBSql->str, p_db_mysql_new, query_result_new); if((result_row_new=mysql_fetch_row(query_result_new))) { ! return(atoi(result_row_new[0])); } else { ! return(FALSE); } } } --- 156,172 ---- gsNDBSql = g_string_new (""); g_string_printf(gsNDBSql, "select host_id from perfdata_host where host_name='%s'",host_name); ! query_result_new=dbtool_mysql_query(gsNDBSql->str, p_db_mysql_new, query_result_new); if((result_row_new=mysql_fetch_row(query_result_new))) { ! Hid=atoi(result_row_new[0]); } else { ! Hid=FALSE; } + // cleanup + g_string_free(gsNDBSql,TRUE); + dbtool_freeResult(query_result_new); + // save result in cache + g_hash_table_insert(hostsCache,(gpointer) host_name,&Hid); + + return(Hid); } } *************** *** 390,394 **** if (!mysql_init (&db_mysql_old) || !mysql_init (&db_mysql_new)) { printw(_("Cannot initialise MySQL\n")); refresh(); ! exit(EXIT_FAILURE); } --- 415,419 ---- if (!mysql_init (&db_mysql_old) || !mysql_init (&db_mysql_new)) { printw(_("Cannot initialise MySQL\n")); refresh(); ! exit_curses(EXIT_FAILURE); } *************** *** 399,403 **** mysql_error(&db_mysql_old)); refresh(); ! exit(EXIT_FAILURE); } --- 424,428 ---- mysql_error(&db_mysql_old)); refresh(); ! exit_curses(EXIT_FAILURE); } *************** *** 408,412 **** mysql_error(&db_mysql_new)); refresh(); ! exit(EXIT_FAILURE); } --- 433,437 ---- mysql_error(&db_mysql_new)); refresh(); ! exit_curses(EXIT_FAILURE); } *************** *** 420,424 **** if((iODBnumFields=mysql_num_fields(query_result_old))!=1) { printw(_("Original perfdata_host_groups table modified! Bailing out")); ! exit(EXIT_FAILURE); } iODBnumrows=dbtool_rows(query_result_old); --- 445,449 ---- if((iODBnumFields=mysql_num_fields(query_result_old))!=1) { printw(_("Original perfdata_host_groups table modified! Bailing out")); ! exit_curses(EXIT_FAILURE); } iODBnumrows=dbtool_rows(query_result_old); *************** *** 727,733 **** } ! printw (_("Conversions complete.\n")); } char *read_string_from_line(char *buf, size_t length, const char* defaultval) { --- 752,769 ---- } ! printw (_("Conversions complete.\n")); refresh(); ! sleep(5); ! end_curses(); ! } ! ! void exit_curses(int exitval) { ! end_curses(); ! exit(exitval); } + void end_curses(void) { + endwin(); + // delscreen(stdscr); + } char *read_string_from_line(char *buf, size_t length, const char* defaultval) { *************** *** 745,749 **** if(scanw(fmtstr,buf) == ERR) { ! if(my==y) { move(y-1,x); } else { --- 781,785 ---- if(scanw(fmtstr,buf) == ERR) { ! if(my-1==y) { move(y-1,x); } else { *************** *** 766,770 **** if(scanw("%d",&result) == ERR) { ! if(my==y) { move(y-1,x); } else { --- 802,806 ---- if(scanw("%d",&result) == ERR) { ! if(my-1==y) { move(y-1,x); } else { *************** *** 795,799 **** sql, mysql_error(p_tmp_db_mysql)); refresh(); ! exit(EXIT_FAILURE); } --- 831,835 ---- sql, mysql_error(p_tmp_db_mysql)); refresh(); ! exit_curses(EXIT_FAILURE); } |