]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Bug 651: improve the way that page transfer times are calculated for
authorLee Howard <faxguy@howardsilvan.com>
Fri, 6 May 2005 17:21:18 +0000 (17:21 +0000)
committerLee Howard <faxguy@howardsilvan.com>
Fri, 6 May 2005 17:21:18 +0000 (17:21 +0000)
         received faxes

CHANGES
faxd/CopyQuality.c++
faxd/FaxRecv.c++
faxd/FaxServer.c++
faxd/FaxServer.h

diff --git a/CHANGES b/CHANGES
index 83723e153ec93c005c56cb27f5375304c95d0130..c6549cea720b1d730698014ec5037dd37ba5b8d7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,8 @@
 
 Changelog for HylaFAX
 
+* improve the way that page transfer time, as stored in
+  the received TIFF file is calculated (6 May 2005)
 * add option in lucent-mt-10 prototype config file to
   work around a MainPine V.34-Fax problem (6 May 2005)
 * add remoteNSF, remoteDIS to info files and return
index 133ad0694434a317e9a117f85582c2b1a495e810..732235a2481d569af766d49bd4fcc03256f8eeef 100644 (file)
@@ -91,7 +91,7 @@ FaxModem::recvEndPage(TIFF* tif, const Class2Params& params)
 #endif
 #ifdef TIFFTAG_FAXRECVTIME
     TIFFSetField(tif, TIFFTAG_FAXRECVTIME,
-       (uint32) server.getPageTransferTime());
+       (uint32) server.setPageTransferTime());
 #endif
 }
 
index 58fd3ab25f21ff26e922a6524405ff351ff370fb..b370b3fc72f077a8584c9a51b4d20d0a078d0176 100644 (file)
@@ -63,7 +63,7 @@ FaxServer::recvFax(const CallID& callid, fxStr& emsg)
     TIFF* tif = setupForRecv(info, docs, emsg);
     if (tif) {
        recvPages = 0;                  // total count of received pages
-       fileStart = Sys::now();         // count initial negotiation on failure
+       fileStart = pageStart = Sys::now();
        if (faxRecognized = modem->recvBegin(emsg)) {
            /*
             * If the system is busy then notifyRecvBegun may not return
@@ -169,7 +169,6 @@ FaxServer::recvDocuments(TIFF* tif, FaxRecvInfo& info, FaxRecvInfoArray& docs, f
 {
     bool recvOK;
     u_int ppm = PPM_EOP;
-    pageStart = Sys::now();
     batchid = getCommID();
     for (;;) {
        bool okToRecv = true;
@@ -306,7 +305,6 @@ FaxServer::recvFaxPhaseD(TIFF* tif, FaxRecvInfo& info, u_int& ppm, fxStr& emsg)
            emsg = "Procedure interrupt received, job terminated";
            return (false);
        }
-       pageStart = Sys::now();                 // reset for next page
     } while (ppm == PPM_MPS || ppm == PPM_PRI_MPS);
     return (true);
 }
index 869af4ddace2e69ad591163b98893593e4aa9a67..cedcbfde17327c8334a451b405dd9e7c07e1b631 100644 (file)
@@ -74,7 +74,13 @@ time_t FaxServer::getConnectTime() const
 time_t FaxServer::getFileTransferTime() const
     { return (Sys::now() - fileStart); }
 time_t FaxServer::getPageTransferTime() const
-    { return (Sys::now() - pageStart); }
+    { return (pageTransferTime); }
+time_t FaxServer::setPageTransferTime()
+{
+    pageTransferTime = Sys::now() - pageStart;
+    pageStart = Sys::now();    // reset
+    return (pageTransferTime);
+}
 const Class2Params& FaxServer::getClientParams() const
     { return (clientParams); }
 
index 3f3c8e1b4081ad65466d275385167053d745e0df..67236bf40db740f57253ced718c023b4d3e93c77 100644 (file)
@@ -57,6 +57,7 @@ private:
     time_t     connTime;               // time connected to peer
     time_t     fileStart;              // starting time for file transmit
     time_t     pageStart;              // starting time for page transmit
+    time_t     pageTransferTime;       // transfer time for last page
     u_int      npages;                 // # pages sent/received
     fxStr      batchid;                // Batch ID, for session logs
 
@@ -97,6 +98,7 @@ protected:
 
     time_t     getFileTransferTime() const;
     time_t     getPageTransferTime() const;
+    time_t     setPageTransferTime();
     time_t     getConnectTime() const;
     const Class2Params& getClientParams() const;