summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-10-06 06:58:01 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-10-06 06:58:01 +0000
commit7dcfdbd9e8d6ade5db14a38df435f6a009581ade (patch)
tree0a2783abc155aa9d10e134e94ad163077d711dc9 /src
parent830d850cfba9154d3d745eca095860c8d11a6665 (diff)
downloadzabbix-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.am2
-rw-r--r--src/libs/zbxdbhigh/action.c31
-rw-r--r--src/libs/zbxdbhigh/db.c2
-rw-r--r--src/libs/zbxdbhigh/graph.c128
-rw-r--r--src/libs/zbxdbhigh/host.c2
-rw-r--r--src/libs/zbxdbhigh/item.c140
-rw-r--r--src/libs/zbxdbhigh/trigger.c24
-rw-r--r--src/zabbix_server/functions.c2
-rw-r--r--src/zabbix_server/pinger/pinger.c2
-rw-r--r--src/zabbix_server/trapper/autoregister.c2
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);