Exemple #1
0
void monitor_run(iterator_t *it, pthread_mutex_t *lock)
{
	int_status_t *internal_status = xmalloc(sizeof(int_status_t));
	export_status_t *export_status = xmalloc(sizeof(export_status_t));

	FILE *f = NULL;
	if (zconf.status_updates_file) {
		f = init_status_update_file(zconf.status_updates_file);
	}

	while (!(zsend.complete && zrecv.complete)) {
		update_pcap_stats(lock);
		export_stats(internal_status, export_status, it);
		log_drop_warnings(export_status);
		if (!zconf.quiet) {
			lock_file(stderr);
			if (zconf.fsconf.app_success_index >= 0) {
				onscreen_appsuccess(export_status);
			} else {
				onscreen_generic(export_status);
			}
			unlock_file(stderr);
		}
		if (f) {
			update_status_updates_file(export_status, f);
		}
		update_stats(internal_status, it);
		sleep(UPDATE_INTERVAL);
	}
	if (!zconf.quiet) {
		fflush(stderr);
	}
	if (f) {
		fflush(f);
		fclose(f);
	}
}
Exemple #2
0
void monitor_init(void)
{
	if (zconf.status_updates_file) {
		f = init_status_update_file(zconf.status_updates_file);
	}
}