Lines Matching refs:idi

122 int ndo2db_db_init(ndo2db_idi *idi){  in ndo2db_db_init()  argument
125 if(idi==NULL) in ndo2db_db_init()
129 idi->dbinfo.server_type=ndo2db_db_settings.server_type; in ndo2db_db_init()
139 idi->dbinfo.connected=NDO_FALSE; in ndo2db_db_init()
140 idi->dbinfo.error=NDO_FALSE; in ndo2db_db_init()
141 idi->dbinfo.instance_id=0L; in ndo2db_db_init()
142 idi->dbinfo.conninfo_id=0L; in ndo2db_db_init()
143 idi->dbinfo.latest_program_status_time=(time_t)0L; in ndo2db_db_init()
144 idi->dbinfo.latest_host_status_time=(time_t)0L; in ndo2db_db_init()
145 idi->dbinfo.latest_service_status_time=(time_t)0L; in ndo2db_db_init()
146 idi->dbinfo.latest_queued_event_time=(time_t)0L; in ndo2db_db_init()
147 idi->dbinfo.latest_realtime_data_time=(time_t)0L; in ndo2db_db_init()
148 idi->dbinfo.latest_comment_time=(time_t)0L; in ndo2db_db_init()
149 idi->dbinfo.clean_event_queue=NDO_FALSE; in ndo2db_db_init()
150 idi->dbinfo.last_notification_id=0L; in ndo2db_db_init()
151 idi->dbinfo.last_contact_notification_id=0L; in ndo2db_db_init()
152 idi->dbinfo.max_timedevents_age=ndo2db_db_settings.max_timedevents_age; in ndo2db_db_init()
153 idi->dbinfo.max_systemcommands_age=ndo2db_db_settings.max_systemcommands_age; in ndo2db_db_init()
154 idi->dbinfo.max_servicechecks_age=ndo2db_db_settings.max_servicechecks_age; in ndo2db_db_init()
155 idi->dbinfo.max_hostchecks_age=ndo2db_db_settings.max_hostchecks_age; in ndo2db_db_init()
156 idi->dbinfo.max_eventhandlers_age=ndo2db_db_settings.max_eventhandlers_age; in ndo2db_db_init()
157 idi->dbinfo.max_externalcommands_age=ndo2db_db_settings.max_externalcommands_age; in ndo2db_db_init()
158 idi->dbinfo.max_notifications_age=ndo2db_db_settings.max_notifications_age; in ndo2db_db_init()
159 idi->dbinfo.max_contactnotifications_age=ndo2db_db_settings.max_contactnotifications_age; in ndo2db_db_init()
160idi->dbinfo.max_contactnotificationmethods_age=ndo2db_db_settings.max_contactnotificationmethods_a… in ndo2db_db_init()
161 idi->dbinfo.max_logentries_age=ndo2db_db_settings.max_logentries_age; in ndo2db_db_init()
162 idi->dbinfo.max_acknowledgements_age=ndo2db_db_settings.max_acknowledgements_age; in ndo2db_db_init()
163 idi->dbinfo.last_table_trim_time=(time_t)0L; in ndo2db_db_init()
164 idi->dbinfo.last_logentry_time=(time_t)0L; in ndo2db_db_init()
165 idi->dbinfo.last_logentry_data=NULL; in ndo2db_db_init()
166 idi->dbinfo.object_hashlist=NULL; in ndo2db_db_init()
169 if(!mysql_init(&idi->dbinfo.mysql_conn)){ in ndo2db_db_init()
179 int ndo2db_db_deinit(ndo2db_idi *idi){ in ndo2db_db_deinit() argument
182 if(idi==NULL) in ndo2db_db_deinit()
193 ndo2db_free_cached_object_ids(idi); in ndo2db_db_deinit()
200 int ndo2db_db_connect(ndo2db_idi *idi){ in ndo2db_db_connect() argument
203 if(idi==NULL) in ndo2db_db_connect()
207 if(idi->dbinfo.connected==NDO_TRUE) in ndo2db_db_connect()
211 &idi->dbinfo.mysql_conn, in ndo2db_db_connect()
220 mysql_close(&idi->dbinfo.mysql_conn); in ndo2db_db_connect()
221 …syslog(LOG_USER|LOG_INFO,"Error: Could not connect to MySQL database: %s",mysql_error(&idi->dbinfo… in ndo2db_db_connect()
223 idi->disconnect_client=NDO_TRUE; in ndo2db_db_connect()
225 idi->dbinfo.connected=NDO_TRUE; in ndo2db_db_connect()
234 int ndo2db_db_disconnect(ndo2db_idi *idi){ in ndo2db_db_disconnect() argument
236 if(idi==NULL) in ndo2db_db_disconnect()
240 if(idi->dbinfo.connected==NDO_FALSE) in ndo2db_db_disconnect()
244 mysql_close(&idi->dbinfo.mysql_conn); in ndo2db_db_disconnect()
245 idi->dbinfo.connected=NDO_FALSE; in ndo2db_db_disconnect()
253 int ndo2db_db_hello(ndo2db_idi *idi){ in ndo2db_db_hello() argument
261 if(idi->instance_name==NULL) in ndo2db_db_hello()
262 idi->instance_name=strdup("default"); in ndo2db_db_hello()
265 …s WHERE instance_name='%s'",ndo2db_db_tablenames[NDO2DB_DBTABLE_INSTANCES],idi->instance_name)==-1) in ndo2db_db_hello()
267 if((result=ndo2db_db_query(idi,buf))==NDO_OK){ in ndo2db_db_hello()
268 idi->dbinfo.mysql_result=mysql_store_result(&idi->dbinfo.mysql_conn); in ndo2db_db_hello()
269 if((idi->dbinfo.mysql_row=mysql_fetch_row(idi->dbinfo.mysql_result))!=NULL){ in ndo2db_db_hello()
270 ndo2db_convert_string_to_unsignedlong(idi->dbinfo.mysql_row[0],&idi->dbinfo.instance_id); in ndo2db_db_hello()
273 mysql_free_result(idi->dbinfo.mysql_result); in ndo2db_db_hello()
274 idi->dbinfo.mysql_result=NULL; in ndo2db_db_hello()
280 … %s SET instance_name='%s'",ndo2db_db_tablenames[NDO2DB_DBTABLE_INSTANCES],idi->instance_name)==-1) in ndo2db_db_hello()
282 if((result=ndo2db_db_query(idi,buf))==NDO_OK){ in ndo2db_db_hello()
283 idi->dbinfo.instance_id=mysql_insert_id(&idi->dbinfo.mysql_conn); in ndo2db_db_hello()
288 ts=ndo2db_db_timet_to_sql(idi,idi->data_start_time); in ndo2db_db_hello()
293 ,idi->dbinfo.instance_id in ndo2db_db_hello()
294 ,idi->agent_name in ndo2db_db_hello()
295 ,idi->agent_version in ndo2db_db_hello()
296 ,idi->disposition in ndo2db_db_hello()
297 ,idi->connect_source in ndo2db_db_hello()
298 ,idi->connect_type in ndo2db_db_hello()
302 if((result=ndo2db_db_query(idi,buf))==NDO_OK){ in ndo2db_db_hello()
303 idi->dbinfo.conninfo_id=mysql_insert_id(&idi->dbinfo.mysql_conn); in ndo2db_db_hello()
309 ndo2db_get_cached_object_ids(idi); in ndo2db_db_hello()
312 …2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_PROGRAMSTATUS],"status_update_… in ndo2db_db_hello()
313 …o2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_HOSTSTATUS],"status_update_ti… in ndo2db_db_hello()
314 …2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_SERVICESTATUS],"status_update_… in ndo2db_db_hello()
315 …2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONTACTSTATUS],"status_update_… in ndo2db_db_hello()
316 …do2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_TIMEDEVENTQUEUE],"queued_tim… in ndo2db_db_hello()
317 …ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_COMMENTS],"entry_time",(uns… in ndo2db_db_hello()
320 idi->dbinfo.latest_realtime_data_time=(time_t)0L; in ndo2db_db_hello()
321 if(idi->dbinfo.latest_program_status_time>idi->dbinfo.latest_realtime_data_time) in ndo2db_db_hello()
322 idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_program_status_time; in ndo2db_db_hello()
323 if(idi->dbinfo.latest_host_status_time>idi->dbinfo.latest_realtime_data_time) in ndo2db_db_hello()
324 idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_host_status_time; in ndo2db_db_hello()
325 if(idi->dbinfo.latest_service_status_time>idi->dbinfo.latest_realtime_data_time) in ndo2db_db_hello()
326 idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_service_status_time; in ndo2db_db_hello()
327 if(idi->dbinfo.latest_contact_status_time>idi->dbinfo.latest_realtime_data_time) in ndo2db_db_hello()
328 idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_contact_status_time; in ndo2db_db_hello()
329 if(idi->dbinfo.latest_queued_event_time>idi->dbinfo.latest_realtime_data_time) in ndo2db_db_hello()
330 idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_queued_event_time; in ndo2db_db_hello()
335 if(idi->dbinfo.latest_realtime_data_time>current_time) in ndo2db_db_hello()
336 idi->dbinfo.latest_realtime_data_time=current_time; in ndo2db_db_hello()
339 idi->dbinfo.clean_event_queue=NDO_TRUE; in ndo2db_db_hello()
342 idi->dbinfo.last_notification_id=0L; in ndo2db_db_hello()
343 idi->dbinfo.last_contact_notification_id=0L; in ndo2db_db_hello()
350 int ndo2db_db_goodbye(ndo2db_idi *idi){ in ndo2db_db_goodbye() argument
355 ts=ndo2db_db_timet_to_sql(idi,idi->data_end_time); in ndo2db_db_goodbye()
361 ,idi->bytes_processed in ndo2db_db_goodbye()
362 ,idi->lines_processed in ndo2db_db_goodbye()
363 ,idi->entries_processed in ndo2db_db_goodbye()
364 ,idi->dbinfo.conninfo_id in ndo2db_db_goodbye()
367 result=ndo2db_db_query(idi,buf); in ndo2db_db_goodbye()
377 int ndo2db_db_checkin(ndo2db_idi *idi){ in ndo2db_db_checkin() argument
384 ,idi->bytes_processed in ndo2db_db_checkin()
385 ,idi->lines_processed in ndo2db_db_checkin()
386 ,idi->entries_processed in ndo2db_db_checkin()
387 ,idi->dbinfo.conninfo_id in ndo2db_db_checkin()
390 result=ndo2db_db_query(idi,buf); in ndo2db_db_checkin()
405 char *ndo2db_db_escape_string(ndo2db_idi *idi, char *buf){ in ndo2db_db_escape_string() argument
409 if(idi==NULL || buf==NULL) in ndo2db_db_escape_string()
435 char *ndo2db_db_timet_to_sql(ndo2db_idi *idi, time_t t){ in ndo2db_db_timet_to_sql() argument
437 (void)idi; /* Unused, don't warn. */ in ndo2db_db_timet_to_sql()
446 char *ndo2db_db_sql_to_timet(ndo2db_idi *idi, char *field){ in ndo2db_db_sql_to_timet() argument
448 (void)idi; /* Unused, don't warn. */ in ndo2db_db_sql_to_timet()
457 int ndo2db_db_query(ndo2db_idi *idi, char *buf){ in ndo2db_db_query() argument
461 if(idi==NULL || buf==NULL) in ndo2db_db_query()
465 if(idi->dbinfo.connected==NDO_FALSE){ in ndo2db_db_query()
466 if(ndo2db_db_connect(idi)==NDO_ERROR) in ndo2db_db_query()
468 ndo2db_db_hello(idi); in ndo2db_db_query()
477 if (mysql_query(&idi->dbinfo.mysql_conn,buf)) { in ndo2db_db_query()
479 syslog(LOG_USER|LOG_INFO,"mysql_error: '%s'\n", mysql_error(&idi->dbinfo.mysql_conn)); in ndo2db_db_query()
485 ndo2db_handle_db_error(idi,query_result); in ndo2db_db_query()
492 int ndo2db_db_free_query(ndo2db_idi *idi){ in ndo2db_db_free_query() argument
494 if(idi==NULL) in ndo2db_db_free_query()
502 int ndo2db_handle_db_error(ndo2db_idi *idi, int query_result){ in ndo2db_handle_db_error() argument
505 if(idi==NULL) in ndo2db_handle_db_error()
509 if(idi->dbinfo.connected==NDO_FALSE) in ndo2db_handle_db_error()
512 result=mysql_errno(&idi->dbinfo.mysql_conn); in ndo2db_handle_db_error()
515 ndo2db_db_disconnect(idi); in ndo2db_handle_db_error()
516 idi->disconnect_client=NDO_TRUE; in ndo2db_handle_db_error()
524 int ndo2db_db_clear_table(ndo2db_idi *idi, char *table_name){ in ndo2db_db_clear_table() argument
528 if(idi==NULL || table_name==NULL) in ndo2db_db_clear_table()
533 ,idi->dbinfo.instance_id in ndo2db_db_clear_table()
537 result=ndo2db_db_query(idi,buf); in ndo2db_db_clear_table()
545 int ndo2db_db_get_latest_data_time(ndo2db_idi *idi, char *table_name, char *field_name, unsigned lo… in ndo2db_db_get_latest_data_time() argument
550 if(idi==NULL || table_name==NULL || field_name==NULL || t==NULL) in ndo2db_db_get_latest_data_time()
554 ts[0]=ndo2db_db_sql_to_timet(idi,field_name); in ndo2db_db_get_latest_data_time()
559 ,idi->dbinfo.instance_id in ndo2db_db_get_latest_data_time()
564 if((result=ndo2db_db_query(idi,buf))==NDO_OK){ in ndo2db_db_get_latest_data_time()
565 idi->dbinfo.mysql_result=mysql_store_result(&idi->dbinfo.mysql_conn); in ndo2db_db_get_latest_data_time()
566 if((idi->dbinfo.mysql_row=mysql_fetch_row(idi->dbinfo.mysql_result))!=NULL){ in ndo2db_db_get_latest_data_time()
567 ndo2db_convert_string_to_unsignedlong(idi->dbinfo.mysql_row[0],t); in ndo2db_db_get_latest_data_time()
569 mysql_free_result(idi->dbinfo.mysql_result); in ndo2db_db_get_latest_data_time()
570 idi->dbinfo.mysql_result=NULL; in ndo2db_db_get_latest_data_time()
580 int ndo2db_db_trim_data_table(ndo2db_idi *idi, char *table_name, char *field_name, unsigned long t){ in ndo2db_db_trim_data_table() argument
585 if(idi==NULL || table_name==NULL || field_name==NULL) in ndo2db_db_trim_data_table()
588 ts[0]=ndo2db_db_timet_to_sql(idi,(time_t)t); in ndo2db_db_trim_data_table()
592 ,idi->dbinfo.instance_id in ndo2db_db_trim_data_table()
598 result=ndo2db_db_query(idi,buf); in ndo2db_db_trim_data_table()
607 int ndo2db_db_perform_maintenance(ndo2db_idi *idi){ in ndo2db_db_perform_maintenance() argument
614 if ((current_time-(time_t)60)>idi->dbinfo.last_table_trim_time) { in ndo2db_db_perform_maintenance()
615 if (idi->dbinfo.max_timedevents_age>0L) { in ndo2db_db_perform_maintenance()
617 …b_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_TIMEDEVENTS],"scheduled_time",(time_t… in ndo2db_db_perform_maintenance()
619 if (idi->dbinfo.max_systemcommands_age>0L) { in ndo2db_db_perform_maintenance()
621 …db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_SYSTEMCOMMANDS],"start_time",(time_t… in ndo2db_db_perform_maintenance()
623 if (idi->dbinfo.max_servicechecks_age>0L) { in ndo2db_db_perform_maintenance()
625 …db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_SERVICECHECKS],"start_time",(time_t)… in ndo2db_db_perform_maintenance()
627 if (idi->dbinfo.max_hostchecks_age>0L) { in ndo2db_db_perform_maintenance()
629 …o2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_HOSTCHECKS],"start_time",(time_t)(… in ndo2db_db_perform_maintenance()
631 if (idi->dbinfo.max_eventhandlers_age>0L) { in ndo2db_db_perform_maintenance()
633 …db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_EVENTHANDLERS],"start_time",(time_t)… in ndo2db_db_perform_maintenance()
635 if (idi->dbinfo.max_externalcommands_age>0L) { in ndo2db_db_perform_maintenance()
637 …b_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_EXTERNALCOMMANDS],"entry_time",(time_… in ndo2db_db_perform_maintenance()
639 if (idi->dbinfo.max_notifications_age>0L) { in ndo2db_db_perform_maintenance()
641 …db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_NOTIFICATIONS],"start_time",(time_t)… in ndo2db_db_perform_maintenance()
643 if (idi->dbinfo.max_contactnotifications_age>0L) { in ndo2db_db_perform_maintenance()
645 …db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONTACTNOTIFICATIONS],"start_time",(tim… in ndo2db_db_perform_maintenance()
647 if (idi->dbinfo.max_contactnotificationmethods_age>0L) { in ndo2db_db_perform_maintenance()
649 …trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONTACTNOTIFICATIONMETHODS],"start_time",(… in ndo2db_db_perform_maintenance()
651 if (idi->dbinfo.max_logentries_age>0L) { in ndo2db_db_perform_maintenance()
653 …o2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_LOGENTRIES],"entry_time",(time_t)(… in ndo2db_db_perform_maintenance()
655 if (idi->dbinfo.max_acknowledgements_age>0L) { in ndo2db_db_perform_maintenance()
657 …b_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_ACKNOWLEDGEMENTS],"entry_time",(time_… in ndo2db_db_perform_maintenance()
659 idi->dbinfo.last_table_trim_time=current_time; in ndo2db_db_perform_maintenance()