diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | include/db.c | 37 | ||||
-rw-r--r-- | include/expression.c | 50 |
4 files changed, 62 insertions, 28 deletions
@@ -1,5 +1,6 @@ Changes for 1.0beta11: + - housekeeping to delete hosts having status 'deleted' (Alexei) - AC_FUNC_GETLOADAVG changes to AC_REPLACE_FUNCS(getloadavg) in configure.in (Alexei) - eliminated compiler's warnings under SUSE v8.2 (Alexei) @@ -1,6 +1,6 @@ 1.0beta11: - - new host status: 'deleted'. Housekeeping to delete hosts, items, etc + - new item status: 'deleted'. Housekeeping to delete items, etc - fix problems under SUSE 8.2 - user groups - get rid of strlen() in for(;;) diff --git a/include/db.c b/include/db.c index 039492db..4b892f68 100644 --- a/include/db.c +++ b/include/db.c @@ -521,8 +521,40 @@ void update_triggers_status_to_unknown(int hostid,int clock) return; } +void DBdelete_service(int serviceid) +{ + char sql[MAX_STRING_LEN+1]; + + sprintf(sql,"delete from services_links where servicedownid=%d or serviceupid=%d", serviceid, serviceid); + DBexecute(sql); + sprintf(sql,"delete from services where serviceid=%d", serviceid); + DBexecute(sql); +} + +void DBdelete_services_by_triggerid(int triggerid) +{ + int i, serviceid; + char sql[MAX_STRING_LEN+1]; + DB_RESULT *result; + + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_services_by_triggerid(%d)", triggerid); + sprintf(sql,"select serviceid from services where triggerid=%d", triggerid); + result = DBselect(sql); + + for(i=0;i<DBnum_rows(result);i++) + { + serviceid=atoi(DBget_field(result,i,0)); + DBdelete_service(serviceid); + } + DBfree_result(result); + + zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_services_by_triggerid(%d)", triggerid); +} + void DBdelete_trigger(int triggerid) { + char sql[MAX_STRING_LEN+1]; + sprintf(sql,"delete from trigger_depends where triggerid_down=%d or triggerid_up=%d", triggerid, triggerid); DBexecute(sql); sprintf(sql,"delete from functions where triggerid=%d", triggerid); @@ -562,10 +594,11 @@ void DBdelete_triggers_by_itemid(int itemid) zabbix_log(LOG_LEVEL_DEBUG,"End of DBdelete_triggers_by_itemid(%d)", itemid); } -} void DBdelete_history_by_itemid(int itemid) { + char sql[MAX_STRING_LEN+1]; + sprintf(sql,"delete from history where itemid=%d", itemid); DBexecute(sql); sprintf(sql,"delete from history_str where itemid=%d", itemid); @@ -574,6 +607,8 @@ void DBdelete_history_by_itemid(int itemid) void DBdelete_item(int itemid) { + char sql[MAX_STRING_LEN+1]; + zabbix_log(LOG_LEVEL_DEBUG,"In DBdelete_item(%d)", itemid); DBdelete_triggers_by_itemid(itemid); diff --git a/include/expression.c b/include/expression.c index 96aa0028..7be86182 100644 --- a/include/expression.c +++ b/include/expression.c @@ -50,7 +50,8 @@ int is_double(char *c) int dot=-1; zabbix_log(LOG_LEVEL_DEBUG, "Starting is_double:[%s]", c ); - for(i=0;i<(int)strlen(c);i++) +/* for(i=0;i<(int)strlen(c);i++)*/ + for(i=0;c[i]!=0;i++) { if((c[i]>='0')&&(c[i]<='9')) { @@ -84,7 +85,8 @@ void delete_spaces(char *c) zabbix_log( LOG_LEVEL_DEBUG, "Before deleting spaces:%s", c ); j=0; - for(i=0;i<(int)strlen(c);i++) +/* for(i=0;i<(int)strlen(c);i++)*/ + for(i=0;c[i]!=0;i++) { if( c[i] != ' ') { @@ -106,7 +108,8 @@ int find_char(char *str,char c) zabbix_log( LOG_LEVEL_DEBUG, "Before find_char:%s[%c]", str, c ); - for(i=0;i<(int)strlen(str);i++) +/* for(i=0;i<(int)strlen(str);i++)*/ + for(i=0;str[i]!=0;i++) { if(str[i]==c) return i; } @@ -138,7 +141,8 @@ int evaluate_simple (double *result,char *exp) strncpy( first, exp, MAX_STRING_LEN ); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -174,7 +178,8 @@ int evaluate_simple (double *result,char *exp) strncpy( first, exp, MAX_STRING_LEN ); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -208,7 +213,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -241,7 +247,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -276,7 +283,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -302,7 +310,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -336,7 +345,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -362,7 +372,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -388,7 +399,8 @@ int evaluate_simple (double *result,char *exp) strncpy(first, exp, MAX_STRING_LEN); first[l]=0; j=0; - for(i=l+1;i<(int)strlen(exp);i++) +/* for(i=l+1;i<(int)strlen(exp);i++)*/ + for(i=l+1;exp[i]!=0;i++) { second[j]=exp[i]; j++; @@ -594,20 +606,6 @@ int substitute_macros(char *exp) zabbix_log( LOG_LEVEL_DEBUG, "Value5 [%s]", exp ); -/* j=0; - for(i=0;i<(int)strlen(exp);i++) - { - if( (i>=l+3) && (i<=r) ) - continue; - exp[j]=exp[i]; - if(i==l) - exp[j]='%'; - if(i==l+1) - exp[j]='s'; - j++; - } - exp[j]=0;*/ - sprintf(res,exp,value); strncpy(exp,res, MAX_STRING_LEN); /* delete_spaces(exp); */ |