diff options
author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-10-06 06:58:01 +0000 |
---|---|---|
committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-10-06 06:58:01 +0000 |
commit | 7dcfdbd9e8d6ade5db14a38df435f6a009581ade (patch) | |
tree | 0a2783abc155aa9d10e134e94ad163077d711dc9 /src | |
parent | 830d850cfba9154d3d745eca095860c8d11a6665 (diff) | |
download | zabbix-7dcfdbd9e8d6ade5db14a38df435f6a009581ade.tar.gz zabbix-7dcfdbd9e8d6ade5db14a38df435f6a009581ade.tar.xz zabbix-7dcfdbd9e8d6ade5db14a38df435f6a009581ade.zip |
Minor changes.
git-svn-id: svn://svn.zabbix.com/trunk@2117 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/zbxdbhigh/Makefile.am | 2 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/action.c | 31 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/db.c | 2 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/graph.c | 128 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/host.c | 2 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/item.c | 140 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/trigger.c | 24 | ||||
-rw-r--r-- | src/zabbix_server/functions.c | 2 | ||||
-rw-r--r-- | src/zabbix_server/pinger/pinger.c | 2 | ||||
-rw-r--r-- | src/zabbix_server/trapper/autoregister.c | 2 |
10 files changed, 162 insertions, 173 deletions
diff --git a/src/libs/zbxdbhigh/Makefile.am b/src/libs/zbxdbhigh/Makefile.am index 01113e27..efa37f40 100644 --- a/src/libs/zbxdbhigh/Makefile.am +++ b/src/libs/zbxdbhigh/Makefile.am @@ -1,5 +1,5 @@ SUBDIRS= INCLUDES=-I@top_srcdir@/include @MYSQL_INCLUDE@ @PGSQL_INCLUDE@ -lib_LIBRARIES=libzbxdbhigh.a libzbxdbhigh_a_SOURCES=action.c graph.c item.c trigger.c host.c db.c +lib_LIBRARIES=libzbxdbhigh.a libzbxdbhigh_a_LIBADD = ../zbxcommon/libzbxcommon.a diff --git a/src/libs/zbxdbhigh/action.c b/src/libs/zbxdbhigh/action.c index 2d3fd691..24e3ffb2 100644 --- a/src/libs/zbxdbhigh/action.c +++ b/src/libs/zbxdbhigh/action.c @@ -29,6 +29,37 @@ #include "zlog.h" #include "common.h" +int DBadd_action(int triggerid, int userid, int good, int delay, char *subject, char *message, int scope, int severity, int recipient, int usrgrpid) +{ + char sql[MAX_STRING_LEN]; + int actionid; + char subject_esc[ACTION_SUBJECT_LEN_MAX]; + char message_esc[MAX_STRING_LEN]; + + DBescape_string(subject,subject_esc,ACTION_SUBJECT_LEN_MAX); + DBescape_string(message,message_esc,MAX_STRING_LEN); + + if(recipient == RECIPIENT_TYPE_GROUP) + { + userid = usrgrpid; + } + + snprintf(sql, sizeof(sql)-1,"insert into actions (triggerid, userid, good, delay, subject, message, scope, severity, recipient, userid) values (%d, %d, %d, %d, '%s', '%s', %d, %d, %d, %d)", triggerid, userid, good, delay, subject_esc, message_esc, scope, severity, recipient, userid); + if(FAIL == DBexecute(sql)) + { + return FAIL; + } + + actionid=DBinsert_id(); + + if(actionid==0) + { + return FAIL; + } + + return actionid; +} + int DBget_action_by_actionid(int actionid,DB_ACTION *action) { DB_RESULT *result; diff --git a/src/libs/zbxdbhigh/db.c b/src/libs/zbxdbhigh/db.c index b98cd241..28fd8de2 100644 --- a/src/libs/zbxdbhigh/db.c +++ b/src/libs/zbxdbhigh/db.c @@ -1289,7 +1289,7 @@ void DBget_item_from_db(DB_ITEM *item,DB_RESULT *result, int row) i=row; item->itemid=atoi(DBget_field(result,i,0)); - item->key=DBget_field(result,i,1); + strscpy(item->key,DBget_field(result,i,1)); item->host=DBget_field(result,i,2); item->port=atoi(DBget_field(result,i,3)); item->delay=atoi(DBget_field(result,i,4)); diff --git a/src/libs/zbxdbhigh/graph.c b/src/libs/zbxdbhigh/graph.c index 0e35d322..1763c2e8 100644 --- a/src/libs/zbxdbhigh/graph.c +++ b/src/libs/zbxdbhigh/graph.c @@ -29,6 +29,54 @@ #include "zlog.h" #include "common.h" +int DBadd_graph(char *name, int width, int height, int yaxistype, double yaxismin, double yaxismax) +{ + char sql[MAX_STRING_LEN]; + int graphid; + char name_esc[GRAPH_NAME_LEN_MAX]; + + DBescape_string(name,name_esc,GRAPH_NAME_LEN_MAX); + + snprintf(sql, sizeof(sql)-1,"insert into graphs (name,width,height,yaxistype,yaxismin,yaxismax) values ('%s',%d,%d,%d,%f,%f)", name_esc, width, height, yaxistype, yaxismin, yaxismax); + if(FAIL == DBexecute(sql)) + { + return FAIL; + } + + graphid=DBinsert_id(); + + if(graphid==0) + { + return FAIL; + } + + return graphid; +} + +int DBadd_item_to_graph(int graphid,int itemid, char *color,int drawtype, int sortorder) +{ + char sql[MAX_STRING_LEN]; + int gitemid; + char color_esc[GRAPH_ITEM_COLOR_LEN_MAX]; + + DBescape_string(color,color_esc,GRAPH_ITEM_COLOR_LEN_MAX); + + snprintf(sql, sizeof(sql)-1,"insert into graphs_items (graphid,itemid,drawtype,sortorder,color) values (%d,%d,%d,%d,'%s')", graphid, itemid, drawtype, sortorder, color_esc); + if(FAIL == DBexecute(sql)) + { + return FAIL; + } + + gitemid=DBinsert_id(); + + if(gitemid==0) + { + return FAIL; + } + + return gitemid; +} + int DBget_graph_item_by_gitemid(int gitemid, DB_GRAPH_ITEM *graph_item) { DB_RESULT *result; @@ -59,15 +107,59 @@ int DBget_graph_item_by_gitemid(int gitemid, DB_GRAPH_ITEM *graph_item) return ret; } +int DBget_graph_by_graphid(int graphid, DB_GRAPH *graph) +{ + DB_RESULT *result; + char sql[MAX_STRING_LEN]; + int ret = SUCCEED; + + zabbix_log( LOG_LEVEL_WARNING, "In DBget_graph_by_graphid(%d)", graphid); + + snprintf(sql,sizeof(sql)-1,"select graphid,name,width,height,yaxistype,yaxismin,yaxismax from graphs where graphid=%d", graphid); + result=DBselect(sql); + + if(DBnum_rows(result)==0) + { + ret = FAIL; + } + else + { + + int graphid; + char name[GRAPH_NAME_LEN_MAX]; + int width; + int height; + int yaxistype; + double yaxismin; + double yaxismax; + + graph->graphid=atoi(DBget_field(result,0,0)); + strscpy(graph->name,DBget_field(result,0,1)); + graph->width=atoi(DBget_field(result,0,2)); + graph->height=atoi(DBget_field(result,0,3)); + graph->yaxistype=atoi(DBget_field(result,0,4)); + graph->yaxismin=atof(DBget_field(result,0,5)); + graph->yaxismax=atof(DBget_field(result,0,6)); + } + + DBfree_result(result); + + return ret; +} + int DBadd_graph_item_to_linked_hosts(int gitemid,int hostid) { + DB_HOST host; DB_ITEM item; DB_GRAPH_ITEM graph_item; DB_GRAPH graph; DB_RESULT *result,*result2,*result3; char sql[MAX_STRING_LEN]; + char name_esc[GRAPH_NAME_LEN_MAX]; int ret = SUCCEED; - int i; + int i,j; + int graphid; + int itemid; zabbix_log( LOG_LEVEL_WARNING, "In DBadd_graph_item_to_linked_hosts(%d,%d)", gitemid, hostid); @@ -109,23 +201,31 @@ int DBadd_graph_item_to_linked_hosts(int gitemid,int hostid) continue; } - $row2=DBfetch($result2); - $itemid=$row2["itemid"]; + itemid=atoi(DBget_field(result2,0,0)); + DBfree_result(result2); - $sql="select distinct g.graphid from graphs g,graphs_items gi,items i where i.itemid=gi.itemid and i.hostid=".$row["hostid"]." and g.graphid=gi.graphid and g.name='".addslashes($graph["name"])."'"; - $result2=DBselect($sql); - $host=get_host_by_hostid($row["hostid"]); - while($row2=DBfetch($result2)) + DBescape_string(graph.name,name_esc,GRAPH_NAME_LEN_MAX); + + if(DBget_host_by_hostid(atoi(DBget_field(result,i,0)), &host) == FAIL) continue; + + snprintf(sql,sizeof(sql)-1,"select distinct g.graphid from graphs g,graphs_items gi,items i where i.itemid=gi.itemid and i.hostid=%d and g.graphid=gi.graphid and g.name='%s'", atoi(DBget_field(result,i,0)), name_esc); + result2=DBselect(sql); + + for(j=0;j<DBnum_rows(result2);j++) { - add_item_to_graph($row2["graphid"],$itemid,$graph_item["color"],$graph_item["drawtype"],$graph_item["sortorder"]); - info("Added graph element to graph ".$graph["name"]." of linked host ".$host["host"]); + DBadd_item_to_graph(atoi(DBget_field(result2,j,0)),itemid,graph_item.color,graph_item.drawtype,graph_item.sortorder); } - if(DBnum_rows($result2)==0) + if(DBnum_rows(result2)==0) { - $graphid=add_graph($graph["name"],$graph["width"],$graph["height"],$graph["yaxistype"],$graph["yaxismin"],$graph["yaxismax"]); - info("Added graph ".$graph["name"]." of linked host ".$host["host"]); - add_item_to_graph($graphid,$itemid,$graph_item["color"],$graph_item["drawtype"],$graph_item["sortorder"]); - info("Added graph element to graph ".$graph["name"]." of linked host ".$host["host"]); + graphid=DBadd_graph(graph.name,graph.width,graph.height,graph.yaxistype,graph.yaxismin,graph.yaxismax); + if(graphid!=FAIL) + { + DBadd_item_to_graph(graphid,itemid,graph_item.color,graph_item.drawtype,graph_item.sortorder); + } } + DBfree_result(result2); } + DBfree_result(result); + + return SUCCEED; } diff --git a/src/libs/zbxdbhigh/host.c b/src/libs/zbxdbhigh/host.c index 61610cfa..ed41c37e 100644 --- a/src/libs/zbxdbhigh/host.c +++ b/src/libs/zbxdbhigh/host.c @@ -29,7 +29,7 @@ #include "zlog.h" #include "common.h" -int DBadd_new_host(char *server, int port, int status, int useip, char *ip, int disable_until, int available) +int DBadd_host(char *server, int port, int status, int useip, char *ip, int disable_until, int available) { char sql[MAX_STRING_LEN]; int hostid; diff --git a/src/libs/zbxdbhigh/item.c b/src/libs/zbxdbhigh/item.c index a7947904..4bacb26d 100644 --- a/src/libs/zbxdbhigh/item.c +++ b/src/libs/zbxdbhigh/item.c @@ -29,148 +29,30 @@ #include "zlog.h" #include "common.h" -int DBadd_new_host(char *server, int port, int status, int useip, char *ip, int disable_until, int available) -{ - char sql[MAX_STRING_LEN]; - int hostid; - - snprintf(sql, sizeof(sql)-1,"insert into hosts (host,port,status,useip,ip,disable_until,available) values ('%s',%d,%d,%d,'%d',%d,%d)", server, port, status, useip, ip, disable_until, available); - if(FAIL == DBexecute(sql)) - { - return FAIL; - } - - hostid=DBinsert_id(); - - if(hostid==0) - { - return FAIL; - } - - return hostid; -} - -int DBhost_exists(char *server) -{ - DB_RESULT *result; - char sql[MAX_STRING_LEN]; - int ret = SUCCEED; - - snprintf(sql,sizeof(sql)-1,"select hostid from hosts where host='%s'", server); - result = DBselect(sql); - - if(DBnum_rows(result) == 0) - { - ret = FAIL; - } - DBfree_result(result); - - return ret; -} - -int DBadd_templates_to_host(int hostid,int host_templateid) -{ - DB_RESULT *result; - char sql[MAX_STRING_LEN]; - int ret = SUCCEED; - int i; - - zabbix_log( LOG_LEVEL_WARNING, "In DBadd_templates_to_host(%d,%d)", hostid, host_templateid); - - snprintf(sql,sizeof(sql)-1,"select templateid,items,triggers,actions,graphs,screens from hosts_templates where hostid=%d", host_templateid); - result = DBselect(sql); - - for(i=0;i<DBnum_rows(result);i++) - { - DBadd_template_linkage(hostid,atoi(DBget_field(result,i,0)),atoi(DBget_field(result,i,1)), - atoi(DBget_field(result,i,2)), atoi(DBget_field(result,i,3)), - atoi(DBget_field(result,i,4)), atoi(DBget_field(result,i,5))); - } - - DBfree_result(result); -} - -int DBadd_template_linkage(int hostid,int templateid,int items,int triggers,int actions,int graphs,int screens) -{ - char sql[MAX_STRING_LEN]; - - zabbix_log( LOG_LEVEL_WARNING, "In DBadd_template_linkage(%d)", hostid); - - snprintf(sql,sizeof(sql)-1,"insert into hosts_templates (hostid,templateid,items,triggers,actions,graphs,screens) values (%d,%d,%d,%d,%d,%d,%d)",hostid, templateid, items, triggers, actions, graphs, screens); - - return DBexecute(sql); -} - -int DBsync_host_with_templates(int hostid) +int DBget_item_by_itemid(int itemid,DB_ITEM *item) { DB_RESULT *result; char sql[MAX_STRING_LEN]; int ret = SUCCEED; - int i; - zabbix_log( LOG_LEVEL_WARNING, "In DBsync_host_with_templates(%d)", hostid); + zabbix_log( LOG_LEVEL_WARNING, "In DBget_item_by_itemid(%d)", itemid); - snprintf(sql,sizeof(sql)-1,"select templateid,items,triggers,actions,graphs,screens from hosts_templates where hostid=%d", hostid); - result = DBselect(sql); + snprintf(sql,sizeof(sql)-1,"select itemid,key_ from items where itemid=%d", itemid); + result=DBselect(sql); - for(i=0;i<DBnum_rows(result);i++) + if(DBnum_rows(result)==0) { - DBsync_host_with_template(hostid,atoi(DBget_field(result,i,0)),atoi(DBget_field(result,i,1)), - atoi(DBget_field(result,i,2)), atoi(DBget_field(result,i,3)), - atoi(DBget_field(result,i,4)), atoi(DBget_field(result,i,5))); - } - - DBfree_result(result); - - return SUCCEED; -} - -int DBsync_host_with_template(int hostid,int templateid,int items,int triggers,int actions,int graphs,int screens) -{ - DB_RESULT *result; - char sql[MAX_STRING_LEN]; - int ret = SUCCEED; - int i; - - zabbix_log( LOG_LEVEL_WARNING, "In DBsync_host_with_template(%d,%d)", hostid, templateid); - - /* Sync items */ - snprintf(sql,sizeof(sql)-1,"select itemid from items where hostid=%d", templateid); - result = DBselect(sql); - for(i=0;i<DBnum_rows(result);i++) - { - DBadd_item_to_linked_hosts(atoi(DBget_field(result,i,0)), hostid); - } - DBfree_result(result); - - /* Sync triggers */ - snprintf(sql,sizeof(sql)-1,"select distinct t.triggerid from hosts h, items i,triggers t,functions f where h.hostid=%d and h.hostid=i.hostid and t.triggerid=f.triggerid and i.itemid=f.itemid", templateid); - result = DBselect(sql); - for(i=0;i<DBnum_rows(result);i++) - { - DBadd_trigger_to_linked_hosts(atoi(DBget_field(result,i,0)),hostid); + ret = FAIL; } - DBfree_result(result); - - /* Sync actions */ - snprintf(sql,sizeof(sql)-1,"select distinct a.actionid from actions a,hosts h, items i,triggers t,functions f where h.hostid=%d and h.hostid=i.hostid and t.triggerid=f.triggerid and i.itemid=f.itemid", templateid); - result = DBselect(sql); - for(i=0;i<DBnum_rows(result);i++) + else { - DBadd_action_to_linked_hosts(atoi(DBget_field(result,i,0)),hostid); + item->itemid=atoi(DBget_field(result,0,0)); + strscpy(item->key,DBget_field(result,0,1)); } - DBfree_result(result); - /* Sync graphs */ - snprintf(sql,sizeof(sql)-1,"select distinct gi.gitemid from graphs g,graphs_items gi,items i where i.itemid=gi.itemid and i.hostid=%d and g.graphid=gi.graphid", templateid); - result = DBselect(sql); - for(i=0;i<DBnum_rows(result);i++) - { - DBadd_graph_item_to_linked_hosts(atoi(DBget_field(result,i,0)),hostid); - } DBfree_result(result); - return SUCCEED; + return ret; } int DBadd_item_to_linked_hosts(int itemid, int hostid) @@ -193,7 +75,7 @@ int DBadd_item_to_linked_hosts(int itemid, int hostid) } item.description=DBget_field(result3,0,0); - item.key=DBget_field(result3,0,1); + strscpy(item.key,DBget_field(result3,0,1)); item.hostid=atoi(DBget_field(result3,0,2)); item.delay=atoi(DBget_field(result3,0,3)); item.history=atoi(DBget_field(result3,0,4)); diff --git a/src/libs/zbxdbhigh/trigger.c b/src/libs/zbxdbhigh/trigger.c index be566bd7..28661887 100644 --- a/src/libs/zbxdbhigh/trigger.c +++ b/src/libs/zbxdbhigh/trigger.c @@ -29,30 +29,6 @@ #include "zlog.h" #include "common.h" -int DBadd_item(char *description, char *key, int hostid, int delay, int history, int status, int type, char *snmp_community, char *snmp_oid,int value_type,char *trapper_hosts,int snmp_port,char *units,int multiplier,int delta, char *snmpv3_securityname,int snmpv3_securitylevel,char *snmpv3_authpassphrase,char *snmpv3_privpassphrase,char *formula,int trends,char *logtimefmt) -{ - char sql[MAX_STRING_LEN]; - char key_esc[MAX_STRING_LEN]; - char description_esc[MAX_STRING_LEN]; - char logtimefmt_esc[MAX_STRING_LEN]; - char snmpv3_securityname_esc[MAX_STRING_LEN]; - char snmpv3_authpassphrase_esc[MAX_STRING_LEN]; - char snmpv3_privpassphrase_esc[MAX_STRING_LEN]; - - zabbix_log( LOG_LEVEL_WARNING, "In DBadd_item()"); - - DBescape_string(key,key_esc,MAX_STRING_LEN); - DBescape_string(description,description_esc,MAX_STRING_LEN); - DBescape_string(logtimefmt,logtimefmt_esc,MAX_STRING_LEN); - DBescape_string(snmpv3_securityname,snmpv3_securityname_esc,MAX_STRING_LEN); - DBescape_string(snmpv3_authpassphrase,snmpv3_authpassphrase_esc,MAX_STRING_LEN); - DBescape_string(snmpv3_privpassphrase,snmpv3_privpassphrase_esc,MAX_STRING_LEN); - - snprintf(sql,sizeof(sql)-1,"insert into items (description,key_,hostid,delay,history,nextcheck,status,type,snmp_community,snmp_oid,value_type,trapper_hosts,snmp_port,units,multiplier,delta,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,formula,trends,logtimefmt) values ('%s','%s',%d,%d,%d,0,%d,%d,'%s','%s',%d,'%s',%d,'%s',%d,%d,'%s',%d,'%s','%s','%s',%d,'%s')", description_esc, key_esc, hostid,delay,history,status,type,snmp_community,snmp_oid,value_type,trapper_hosts,snmp_port,units,multiplier,delta,snmpv3_securityname_esc,snmpv3_securitylevel,snmpv3_authpassphrase_esc,snmpv3_privpassphrase_esc,formula,trends,logtimefmt_esc); - - return DBexecute(sql); -} - int DBadd_trigger_to_linked_hosts(int triggerid,int hostid) { DB_TRIGGER trigger; diff --git a/src/zabbix_server/functions.c b/src/zabbix_server/functions.c index 9e79eba9..06089343 100644 --- a/src/zabbix_server/functions.c +++ b/src/zabbix_server/functions.c @@ -502,7 +502,7 @@ int process_data(int sockfd,char *server,char *key,char *value,char *lastlogsize } item.itemid=atoi(DBget_field(result,0,0)); - item.key=DBget_field(result,0,1); + strscpy(item.key,DBget_field(result,0,1)); item.host=DBget_field(result,0,2); item.type=atoi(DBget_field(result,0,7)); item.trapper_hosts=DBget_field(result,0,16); diff --git a/src/zabbix_server/pinger/pinger.c b/src/zabbix_server/pinger/pinger.c index a481cdae..c3a7708e 100644 --- a/src/zabbix_server/pinger/pinger.c +++ b/src/zabbix_server/pinger/pinger.c @@ -149,7 +149,7 @@ static int process_value(char *key, char *host, char *value) } item.itemid=atoi(DBget_field(result,0,0)); - item.key=DBget_field(result,0,1); + strscpy(item.key,DBget_field(result,0,1)); item.host=DBget_field(result,0,2); item.port=atoi(DBget_field(result,0,3)); item.delay=atoi(DBget_field(result,0,4)); diff --git a/src/zabbix_server/trapper/autoregister.c b/src/zabbix_server/trapper/autoregister.c index a1201ac1..e40da759 100644 --- a/src/zabbix_server/trapper/autoregister.c +++ b/src/zabbix_server/trapper/autoregister.c @@ -87,7 +87,7 @@ void register_new_host(char *server, int host_templateid) zabbix_log( LOG_LEVEL_WARNING, "In register_new_host(%s,%d)", server, host_templateid); - hostid = DBadd_new_host(server, 10050, HOST_STATUS_MONITORED, 0, "", 0, HOST_AVAILABLE_UNKNOWN); + hostid = DBadd_host(server, 10050, HOST_STATUS_MONITORED, 0, "", 0, HOST_AVAILABLE_UNKNOWN); zabbix_log( LOG_LEVEL_WARNING, "Added new host with hostid [%d]", hostid); |