- JCR *jcr;
- int njobs = 0;
- char *msg;
- char dt[MAX_TIME_LENGTH], b1[30], b2[30];
- int pool_mem = FALSE;
-
- Dmsg0(200, "Doing status\n");
- bsendmsg(ua, "%s Version: " VERSION " (" BDATE ")\n", my_name);
- bstrftime(dt, sizeof(dt), daemon_start_time);
- bsendmsg(ua, _("Daemon started %s, %d Job%s run.\n"), dt, last_job.NumJobs,
- last_job.NumJobs == 1 ? "" : "s");
- if (last_job.NumJobs > 0) {
- char termstat[30];
-
- bstrftime(dt, sizeof(dt), last_job.end_time);
- bsendmsg(ua, _("Last Job %s finished at %s\n"), last_job.Job, dt);
- jobstatus_to_ascii(last_job.JobStatus, termstat, sizeof(termstat));
-
- bsendmsg(ua, _(" Files=%s Bytes=%s Termination Status=%s\n"),
- edit_uint64_with_commas(last_job.JobFiles, b1),
- edit_uint64_with_commas(last_job.JobBytes, b2),
- termstat);
- }
- lock_jcr_chain();
- for (jcr=NULL; (jcr=get_next_jcr(jcr)); njobs++) {
- if (jcr->JobId == 0) { /* this is us */
- bstrftime(dt, sizeof(dt), jcr->start_time);
- bsendmsg(ua, _("Console connected at %s\n"), dt);
- free_locked_jcr(jcr);
- njobs--;
- continue;
- }
- switch (jcr->JobStatus) {
- case JS_Created:
- msg = _("is waiting execution");
- break;
- case JS_Running:
- msg = _("is running");
- break;
- case JS_Blocked:
- msg = _("is blocked");
- break;
- case JS_Terminated:
- msg = _("has terminated");
- break;
- case JS_ErrorTerminated:
- msg = _("has erred");
- break;
- case JS_Cancelled:
- msg = _("has been canceled");
- break;
- case JS_WaitFD:
- msg = (char *) get_pool_memory(PM_FNAME);
- Mmsg(&msg, _("is waiting on Client %s"), jcr->client->hdr.name);
- pool_mem = TRUE;
- break;
- case JS_WaitSD:
- msg = (char *) get_pool_memory(PM_FNAME);
- Mmsg(&msg, _("is waiting on Storage %s"), jcr->store->hdr.name);
- pool_mem = TRUE;
- break;
- default:
- msg = (char *) get_pool_memory(PM_FNAME);
- Mmsg(&msg, _("is in unknown state %c"), jcr->JobStatus);
- pool_mem = TRUE;
- break;
- }
- switch (jcr->SDJobStatus) {
- case JS_WaitMount:
- if (pool_mem) {
- free_pool_memory(msg);
- pool_mem = FALSE;
- }
- msg = _("is waiting for a mount request");
- break;
- case JS_WaitMedia:
- if (pool_mem) {
- free_pool_memory(msg);
- pool_mem = FALSE;
- }
- msg = _("is waiting for an appendable Volume");
- break;
- case JS_WaitFD:
- if (!pool_mem) {
- msg = (char *) get_pool_memory(PM_FNAME);
- pool_mem = TRUE;
- }
- Mmsg(&msg, _("is waiting for Client %s to connect to Storage %s"),
- jcr->client->hdr.name, jcr->store->hdr.name);
- break;
-
- }
- bsendmsg(ua, _("JobId %d Job %s %s.\n"), jcr->JobId, jcr->Job, msg);
- if (pool_mem) {
- free_pool_memory(msg);
- pool_mem = FALSE;
- }
- free_locked_jcr(jcr);
+ char dt[MAX_TIME_LENGTH];
+ char b1[35], b2[35], b3[35], b4[35], b5[35];
+
+ ua->send_msg(_("%s Version: %s (%s) %s %s %s\n"), my_name, VERSION, BDATE,
+ HOST_OS, DISTNAME, DISTVER);
+ bstrftime_nc(dt, sizeof(dt), daemon_start_time);
+ if (num_jobs_run == 1) {
+ ua->send_msg(_("Daemon started %s, 1 Job run since started.\n"), dt);