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); } }
void monitor_init(void) { if (zconf.status_updates_file) { f = init_status_update_file(zconf.status_updates_file); } }