]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Add 'Z' FIFO showDebugState()
authorAidan Van Dyk <aidan@ifax.com>
Fri, 4 May 2007 17:24:17 +0000 (17:24 +0000)
committerAidan Van Dyk <aidan@ifax.com>
Fri, 4 May 2007 17:24:17 +0000 (17:24 +0000)
faxd/faxQueueApp.c++
faxd/faxQueueApp.h

index cf2a6c838cc52c4cfa5e81de10c96f991a39bff1..f2b539d634dcaecdd3a9ca6139254425a4ede743 100644 (file)
@@ -2728,6 +2728,9 @@ faxQueueApp::FIFOMessage(char cmd, const fxStr& id, const char* args)
     case 'N':                          // noop
        status = true;
        break;
+    case 'Z':
+       showDebugState();
+       break;
     default:
        logError("Bad FIFO cmd '%c' from client %s", cmd, (const char*) id);
        break;
@@ -3335,6 +3338,53 @@ faxQueueApp::jobError(const Job& job, const char* fmt ...)
     va_end(ap);
 }
 
+void
+faxQueueApp::showDebugState(void)
+{
+    traceServer("DEBUG: Listing destJobs with %d items", destJobs.size());
+    for (DestInfoDictIter iter(destJobs); iter.notDone(); iter++)
+    {
+       const fxStr& dest(iter.key());
+       const DestInfo& di(iter.value());
+       traceServer("DestInfo (%p) to %s", &di, (const char*)dest);
+    }
+
+
+    for (int i = 0; i < NQHASH; i++)
+    {
+       traceServer("DEBUG: runqs[%d](%p) next %p", i, &runqs[i], runqs[i].next);
+       for (JobIter iter(runqs[i]); iter.notDone(); iter++)
+       {
+           Job& job(iter);
+           traceJob(job, "In run queue");
+       }
+    }
+
+    traceServer("DEBUG: sleepq(%p) next %p", &sleepq, sleepq.next);
+    for (JobIter iter(sleepq); iter.notDone(); iter++)
+    {
+       Job& job(iter);
+       traceJob(job, "In sleep queue");
+    }
+
+    traceServer("DEBUG: suspendq(%p) next %p", &suspendq, suspendq.next);
+    for (JobIter iter(suspendq); iter.notDone(); iter++)
+    {
+       Job& job(iter);
+       traceJob(job, "In suspend queue");
+    }
+
+    traceServer("DEBUG: activeq(%p) next %p", &activeq, activeq.next);
+    for (JobIter iter(activeq); iter.notDone(); iter++)
+    {
+       Job& job(iter);
+       traceJob(job, "In active queue");
+    }
+
+    traceServer("DEBUG: inSchedule: %s", inSchedule ? "YES" : "NO");
+}
+
+
 void faxQueueApp::childStatus(pid_t pid, int status)
 {
     // We don't do anything here - nothing to act on.
index 9288a9bd9b3002d488211c8d8367c89598ecb48a..7890f410df71bd09f7de6de1e7356ae582d7fba9 100644 (file)
@@ -267,9 +267,12 @@ public:
 
     static faxQueueApp& instance();
 
+
     void       initialize(int argc, char** argv);
     void       open();
 
+    void       showDebugState();
+
     // NB: public for use by Modem class
     UUCPLock*  getUUCPLock(const fxStr& deviceName);