Hello community,

here is the log from the commit of package hylafax+ for openSUSE:Factory 
checked in at 2019-11-24 00:33:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hylafax+ (Old)
 and      /work/SRC/openSUSE:Factory/.hylafax+.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "hylafax+"

Sun Nov 24 00:33:53 2019 rev:29 rq:750328 version:7.0.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/hylafax+/hylafax+.changes        2019-11-24 
00:31:49.703237070 +0100
+++ /work/SRC/openSUSE:Factory/.hylafax+.new.26869/hylafax+.changes     
2019-11-24 00:33:56.731250274 +0100
@@ -1,0 +2,13 @@
+Fri Nov 22 15:00:52 UTC 2019 - Hans-Peter Jansen <[email protected]>
+
+- Version 7.0.1
+* create a client timeout setting and change the default from 60 to
+  3600 seconds (26 Sep 2019)
+* extend timeout for receiving ECM frames (21 Aug 2019)
+* fix timeout in Class 1 frame reception (5 Aug 2019)
+* improve Class 1 protocol handling when MaxRecvPages exceeded (31 Jul 2019)
+* fix ModemGroup limit default (11 Jul 2019)
+* fix recovery for SSL Fax write failures (6 Jun 2019)
+
+
+-------------------------------------------------------------------

Old:
----
  hylafax-7.0.0.tar.gz

New:
----
  hylafax-7.0.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ hylafax+.spec ++++++
--- /var/tmp/diff_new_pack.mk9Jnx/_old  2019-11-24 00:33:57.723250377 +0100
+++ /var/tmp/diff_new_pack.mk9Jnx/_new  2019-11-24 00:33:57.727250377 +0100
@@ -19,7 +19,7 @@
 %global faxspool    %{_localstatedir}/spool/hylafax
 %define lib_version %(echo %{version} | tr \. _)
 Name:           hylafax+
-Version:        7.0.0
+Version:        7.0.1
 Release:        0
 Summary:        A fax server
 License:        BSD-3-Clause

++++++ hylafax-7.0.0.tar.gz -> hylafax-7.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/CHANGES new/hylafax-7.0.1/CHANGES
--- old/hylafax-7.0.0/CHANGES   2019-04-01 16:59:13.000000000 +0200
+++ new/hylafax-7.0.1/CHANGES   2019-09-27 04:47:27.000000000 +0200
@@ -2,6 +2,14 @@
 
 New Changes
 
+* create a client timeout setting and change the default from 60 to
+  3600 seconds (26 Sep 2019)
+* extend timeout for receiving ECM frames (21 Aug 2019)
+* fix timeout in Class 1 frame reception (5 Aug 2019)
+* improve Class 1 protocol handling when MaxRecvPages exceeded (31 Jul 2019)
+* fix ModemGroup limit default (11 Jul 2019)
+* fix recovery for SSL Fax write failures (6 Jun 2019)
+
 (7.0.0)
 
 * add LDAP features for compatibility with ActiveDirectory (25 Mar-1 Apr 2019)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/VERSION new/hylafax-7.0.1/VERSION
--- old/hylafax-7.0.0/VERSION   2018-11-09 22:11:38.000000000 +0100
+++ new/hylafax-7.0.1/VERSION   2019-09-27 04:47:27.000000000 +0200
@@ -1 +1 @@
-7.0.0
+7.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/Class1.c++ 
new/hylafax-7.0.1/faxd/Class1.c++
--- old/hylafax-7.0.0/faxd/Class1.c++   2019-01-24 02:23:40.000000000 +0100
+++ new/hylafax-7.0.1/faxd/Class1.c++   2019-09-27 04:47:27.000000000 +0200
@@ -309,6 +309,7 @@
        sslfax.cleanup(sslFaxProcess);
        useSSLFax = false;
        isSSLFax = false;
+       suppressSSLFax = false;
        setSSLFaxFd(0);
        if (sslWatchModem) abortReceive();
        sslWatchModem = false;
@@ -368,6 +369,7 @@
     useSSLFax = false;
     isSSLFax = false;
     wasSSLFax = false;
+    suppressSSLFax = false;
     remoteCSAinfo = "";
     sslFaxPasscode = "";
     remoteCSAType = 0x00;
@@ -395,6 +397,7 @@
     useSSLFax = false;
     isSSLFax = false;
     wasSSLFax = false;
+    suppressSSLFax = false;
     sslRcvCC = sslRcvNext = sslRcvBit = sslGotByte = 0;
     sslSawBlockEnd = false;
     sslWatchModem = false;
@@ -1326,7 +1329,7 @@
     bool rcpframe = false;
     start = Sys::now();
     do {
-       if ((unsigned) Sys::now()-start >= 3) {
+       if ((unsigned) Sys::now()-start >= 30) {
            protoTrace("Timeout receiving HDLC frame");
            return (false);
        }
@@ -1723,7 +1726,7 @@
                    startTimeout(ms);
                }
            }
-       } while (((u_int) Sys::now()-start < conf.t1Timer) && !wasTimeout() &&
+       } while (((u_int) Sys::now()-start < howmany(conf.t1Timer, 1000)) && 
!wasTimeout() &&
            (lastResponse == AT_FCERROR || lastResponse == AT_NOCARRIER || 
(lastResponse == AT_ERROR && onhooks <= conf.class1HookSensitivity)));
     }
     if (readPending) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/Class1.h 
new/hylafax-7.0.1/faxd/Class1.h
--- old/hylafax-7.0.0/faxd/Class1.h     2018-11-09 22:12:30.000000000 +0100
+++ new/hylafax-7.0.1/faxd/Class1.h     2019-09-27 04:47:27.000000000 +0200
@@ -135,6 +135,7 @@
     bool       useSSLFax;      // whether or not we're doing SSL Fax
     bool       isSSLFax;       // whether or not SSL Fax handshaking succeeded
     bool       wasSSLFax;      // whether or not SSL Fax handshaking succeeded 
before
+    bool       suppressSSLFax; // whether or not to suspend SSL Fax for this 
session
     fxStr      remoteCSAinfo;  // remote CSA string (host:port)
     u_char     remoteCSAType;  // remote CSA type
 #if defined(HAVE_SSL)
@@ -260,7 +261,7 @@
     bool       setupReceive();
     bool       recvBegin(FaxSetup* setupinfo, fxStr& emsg);
     bool       recvEOMBegin(FaxSetup* setupinfo, fxStr& emsg);
-    bool       recvPage(TIFF*, u_int& ppm, fxStr& emsg, const fxStr& id);
+    bool       recvPage(TIFF*, u_int& ppm, fxStr& emsg, const fxStr& id, u_int 
maxPages);
     bool       recvEnd(FaxSetup* setupinfo, fxStr& emsg);
     void       recvAbort();
     void       pokeConfig(bool isSend);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/Class1Recv.c++ 
new/hylafax-7.0.1/faxd/Class1Recv.c++
--- old/hylafax-7.0.0/faxd/Class1Recv.c++       2019-03-19 02:30:33.000000000 
+0100
+++ new/hylafax-7.0.1/faxd/Class1Recv.c++       2019-09-27 04:47:27.000000000 
+0200
@@ -652,7 +652,7 @@
  * sending a post-page response in a multi-page document.
  */
 bool
-Class1Modem::recvPage(TIFF* tif, u_int& ppm, fxStr& emsg, const fxStr& id)
+Class1Modem::recvPage(TIFF* tif, u_int& ppm, fxStr& emsg, const fxStr& id, 
u_int maxPages)
 {
     if (lastPPM == FCF_MPS && prevPage) {
        /*
@@ -1146,6 +1146,10 @@
                            protoTrace("Protocol flow control unavailable due 
to pipe error.");
                            TIFFWriteDirectory(tif);
                        }
+                       if (emsg == "" && prevPage > maxPages) {
+                           protoTrace("Number of pages received (%d) exceeds 
maxRecvPages (%d).", prevPage, maxPages);
+                           emsg = "Maximum receive page count exceeded";
+                       }
                        if (emsg == "") {       // confirm only if there was no 
error
                            if (pageGood) {
                                traceFCF("RECV send", sendERR ? FCF_ERR : 
FCF_MCF);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/Class1Send.c++ 
new/hylafax-7.0.1/faxd/Class1Send.c++
--- old/hylafax-7.0.0/faxd/Class1Send.c++       2019-01-24 02:23:40.000000000 
+0100
+++ new/hylafax-7.0.1/faxd/Class1Send.c++       2019-09-27 04:47:27.000000000 
+0200
@@ -397,7 +397,7 @@
            }
        }
 #if defined(HAVE_SSL)
-       if (!isSSLFax && useSSLFax && remoteCSAType == 0x40 && 
remoteCSAinfo.length()) {
+       if (!suppressSSLFax && !isSSLFax && useSSLFax && remoteCSAType == 0x40 
&& remoteCSAinfo.length()) {
            protoTrace("Connecting to %s for SSL Fax transmission.", (const 
char*) remoteCSAinfo);
            SSLFax sslfax;
            sslFaxProcess = sslfax.startClient(remoteCSAinfo, sslFaxPasscode, 
rtcRev, conf.class1SSLFaxServerTimeout);
@@ -694,7 +694,7 @@
     if (!frameSent)
        return (false);
 #if defined(HAVE_SSL)
-    if (!isSSLFax && conf.class1SSLFaxSupport && 
conf.class1SSLFaxInfo.length() && \
+    if (!suppressSSLFax && !isSSLFax && conf.class1SSLFaxSupport && 
conf.class1SSLFaxInfo.length() && \
        (dis_caps.features & FaxParams::FEATURE_SSLFAX || 
(dis_caps.isBitEnabled(FaxParams::BITNUM_T37) && 
dis_caps.isBitEnabled(FaxParams::BITNUM_T38)))) {
        // We can't trust T.38 support indications to indicate that the remote 
device actually supports TSA frames.
        useSSLFax = true;
@@ -1347,10 +1347,10 @@
                }
                ecmStuffedBlock -= ecmStuffedBlockPos;
            } else {
-               if (!sendClass1Data(ecmStuffedBlock, ecmStuffedBlockPos, 
bitrev, true, getDataTimeout()))
+               if (!sendClass1Data(ecmStuffedBlock, ecmStuffedBlockPos, 
bitrev, true, getDataTimeout()) && !wasSSLFax)
                    return (false);
            }
-           if (!isSSLFax && useV34) {
+           if (!isSSLFax && !wasSSLFax && useV34) {
                // switch to control channel
                buf[0] = DLE; buf[1] = 0x6D;    // <DLE><ctrl>
                if (!putModemData(buf, 2)) return (false);
@@ -1360,7 +1360,7 @@
                    protoTrace(emsg);
                    return (false);
                }
-           } else if (!isSSLFax) {
+           } else if (!wasSSLFax && !isSSLFax) {
                // Wait for transmit buffer to empty.
                ATResponse r;
                while ((r = atResponse(rbuf, getDataTimeout())) == AT_OTHER);
@@ -1380,6 +1380,7 @@
                    return (false);
                }
            }
+           if (wasSSLFax) wasSSLFax = false;
 
            if (flowControl == FLOW_XONXOFF)
                setXONXOFF(FLOW_NONE, FLOW_NONE, ACT_DRAIN);
@@ -1812,6 +1813,15 @@
        protoTrace("SENT %u bytes of data", cc);
     }
     endTimedTransfer();
+    if (wasSSLFax) {
+       /*
+        * A value of false for rc here means that there was an error in 
writing the data.
+        * If there was an error writing to the modem, then this would be 
fatal.  But, because
+        * it was an error writing SSL Fax data, then we need to fall back to 
the modem
+        * rather than turning the SSL Fax write error into a fatal condition.
+        */
+       rc = true;
+    }
     return rc;
 }
 
@@ -2223,12 +2233,12 @@
            imagefd = 0;
        }
     }
-    if (rc || abortRequested())
+    if (!wasSSLFax && (rc || abortRequested()))
        rc = sendRTC(params, ppmcmd, rowsperstrip, emsg);
     protoTrace("SEND end page");
     if (params.ec == EC_DISABLE) {
        // these were already done by ECM protocol
-       if (!isSSLFax && rc) {
+       if (!wasSSLFax && !isSSLFax && rc) {
            /*
             * Wait for transmit buffer to empty.
             */
@@ -2252,6 +2262,14 @@
        if (flowControl == FLOW_XONXOFF)
            setXONXOFF(FLOW_NONE, FLOW_NONE, ACT_DRAIN);
     }
+    if (wasSSLFax) {
+       /*
+        * Same reasoning here as in sendPageData().
+        */
+       wasSSLFax = false;
+       rc = true;
+       suppressSSLFax = true;  // since we're likely to get RTN and go back to 
Phase B let's avoid restarting SSL Fax
+    }
     if (!rc && (emsg == "")) {
        emsg = "Unspecified Transmit Phase C error {E149}";     // XXX
        protoTrace(emsg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/Class2.h 
new/hylafax-7.0.1/faxd/Class2.h
--- old/hylafax-7.0.0/faxd/Class2.h     2016-01-13 22:06:22.000000000 +0100
+++ new/hylafax-7.0.1/faxd/Class2.h     2019-09-27 04:47:27.000000000 +0200
@@ -151,7 +151,7 @@
     bool       setupReceive();
     bool       recvBegin(FaxSetup* setupinfo, fxStr& emsg);
     bool       recvEOMBegin(FaxSetup* setupinfo, fxStr& emsg);
-    bool       recvPage(TIFF*, u_int& ppm, fxStr& emsg, const fxStr& id);
+    bool       recvPage(TIFF*, u_int& ppm, fxStr& emsg, const fxStr& id, u_int 
maxPages);
     bool       recvEnd(FaxSetup* setupinfo, fxStr& emsg);
     void       recvAbort();
     void       pokeConfig(bool isSend);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/Class2Recv.c++ 
new/hylafax-7.0.1/faxd/Class2Recv.c++
--- old/hylafax-7.0.0/faxd/Class2Recv.c++       2015-07-27 02:46:05.000000000 
+0200
+++ new/hylafax-7.0.1/faxd/Class2Recv.c++       2019-09-27 04:47:27.000000000 
+0200
@@ -140,7 +140,7 @@
  * received post-page-message.
  */
 bool
-Class2Modem::recvPage(TIFF* tif, u_int& ppm, fxStr& emsg, const fxStr& id)
+Class2Modem::recvPage(TIFF* tif, u_int& ppm, fxStr& emsg, const fxStr& id, 
u_int maxPages)
 {
     int ppr;
     bool prevPage = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/FaxModem.h 
new/hylafax-7.0.1/faxd/FaxModem.h
--- old/hylafax-7.0.0/faxd/FaxModem.h   2018-12-19 01:14:30.000000000 +0100
+++ new/hylafax-7.0.1/faxd/FaxModem.h   2019-09-27 04:47:27.000000000 +0200
@@ -312,7 +312,7 @@
     virtual bool recvBegin(FaxSetup* setupinfo, fxStr& emsg);
     virtual void getDataStats(FaxSetup* setupinfo);
     virtual bool recvEOMBegin(FaxSetup* setupinfo, fxStr& emsg);
-    virtual bool recvPage(TIFF*, u_int& ppm, fxStr& em, const fxStr& id) = 0;
+    virtual bool recvPage(TIFF*, u_int& ppm, fxStr& em, const fxStr& id, u_int 
maxPages) = 0;
     virtual bool recvEnd(FaxSetup* setupinfo, fxStr& emsg) = 0;
     virtual void recvAbort() = 0;
     virtual void recvSucceeded();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/FaxRecv.c++ 
new/hylafax-7.0.1/faxd/FaxRecv.c++
--- old/hylafax-7.0.0/faxd/FaxRecv.c++  2016-05-06 22:37:34.000000000 +0200
+++ new/hylafax-7.0.1/faxd/FaxRecv.c++  2019-09-27 04:47:27.000000000 +0200
@@ -313,7 +313,7 @@
     }
     do {
        ++recvPages;
-       if (!modem->recvPage(tif, ppm, emsg, id))
+       if (!modem->recvPage(tif, ppm, emsg, id, maxRecvPages))
            return (false);
        info.npages++;
        info.time = (u_int) getPageTransferTime();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/faxd/faxQueueApp.c++ 
new/hylafax-7.0.1/faxd/faxQueueApp.c++
--- old/hylafax-7.0.0/faxd/faxQueueApp.c++      2018-12-20 01:58:27.000000000 
+0100
+++ new/hylafax-7.0.1/faxd/faxQueueApp.c++      2019-09-27 04:47:27.000000000 
+0200
@@ -4083,7 +4083,7 @@
            ;
        if (*cp == ':') {
            fxStr name(value, cp-value);
-           fxStr limit("1");
+           fxStr limit("0");
            for (cp++; *cp && isspace(*cp); cp++)
                ;
            const char* cp2 = strchr(cp, ':');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/man/faxalter.1 
new/hylafax-7.0.1/man/faxalter.1
--- old/hylafax-7.0.0/man/faxalter.1    2015-07-27 02:46:03.000000000 +0200
+++ new/hylafax-7.0.1/man/faxalter.1    2019-09-27 04:47:27.000000000 +0200
@@ -213,6 +213,7 @@
 PassiveMode    boolean \s-1false\s+1   whether or not to use passive mode
 Port   integer \s-14559\s+1    port to use in contacting server
 Protocol       string  \s-1tcp\s+1     protocol to use in contacting server
+Timeout        integer \s-13600\s+1    timeout in seconds waiting for server 
response
 Verbose        boolean \s-1No\s+1      whether or not to enable protocol 
tracing
 .fi
 .PP
@@ -239,6 +240,9 @@
 .B FAXSERVICE
 environment variable.)
 .TP 10
+.B Timeout
+The timeout, in seconds, to wait for a server response.
+.TP 10
 .B Verbose
 Control protocol tracing.
 (Equivalent to the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/man/faxrm.1 
new/hylafax-7.0.1/man/faxrm.1
--- old/hylafax-7.0.0/man/faxrm.1       2015-07-27 02:46:03.000000000 +0200
+++ new/hylafax-7.0.1/man/faxrm.1       2019-09-27 04:47:27.000000000 +0200
@@ -163,6 +163,7 @@
 PassiveMode    boolean \s-1false\s+1   whether or not to use passive mode
 Port   integer \s-14559\s+1    port to use in contacting server
 Protocol       string  \s-1tcp\s+1     protocol to use in contacting server
+Timeout        integer \s-13600\s+1    timeout in seconds waiting for server 
response
 Verbose        boolean \s-1No\s+1      whether or not to enable protocol 
tracing
 .fi
 .PP
@@ -189,6 +190,9 @@
 .B FAXSERVICE
 environment variable.)
 .TP 10
+.B Timeout
+The timeout, in seconds, to wait for a server response.
+.TP 10
 .B Verbose
 Control protocol tracing.
 (Equivalent to the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/man/faxstat.1 
new/hylafax-7.0.1/man/faxstat.1
--- old/hylafax-7.0.0/man/faxstat.1     2015-08-27 21:15:51.000000000 +0200
+++ new/hylafax-7.0.1/man/faxstat.1     2019-09-27 04:47:27.000000000 +0200
@@ -221,6 +221,7 @@
 Port   integer \s-14559\s+1    port to use in contacting server
 Protocol       string  \s-1tcp\s+1     protocol to use in contacting server
 RcvFmt string  \s-1\fIsee below\fP\s+1 format string for received facsimile 
status results
+Timeout        integer \s-13600\s+1    timeout in seconds waiting for server 
response
 TimeZone       string  \s-1GMT\s+1     timezone to use for reporting dates and 
times
 Verbose        boolean \s-1No\s+1      whether or not to enable protocol 
tracing
 .fi
@@ -493,6 +494,9 @@
 timezone of the server (``local'') or in GMT (``gmt'').
 By default times are reported in GMT.
 .TP 14
+.B Timeout
+The timeout, in seconds, to wait for a server response.
+.TP 14
 .B Verbose
 Control protocol tracing.
 (Equivalent to the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/man/sendfax.1 
new/hylafax-7.0.1/man/sendfax.1
--- old/hylafax-7.0.0/man/sendfax.1     2015-07-27 02:46:03.000000000 +0200
+++ new/hylafax-7.0.1/man/sendfax.1     2019-09-27 04:47:27.000000000 +0200
@@ -784,6 +784,7 @@
 RetryTime      string  \-      delay between failed attempts to send
 SendTime       string  \-      time to send job
 TagLine        string  \-      tagline format string
+Timeout        integer \s-13600\s+1    timeout in seconds waiting for server 
response
 TSI    string  \-      sender identification to use
 TypeRules      string  \s-1\fIsee below\fP\s+1 file containing file typing 
rules
 VRes   float   \s-198.\s+1     vertical resolution
@@ -1020,6 +1021,9 @@
 The name of the file containing file type conversion rules.
 By default this is ${LIBDATA}/typerules.
 .TP 16
+.B Timeout
+The timeout, in seconds, to wait for a server response.
+.TP 16
 .B Verbose
 Control protocol tracing.
 (Equivalent to the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/util/FaxClient.c++ 
new/hylafax-7.0.1/util/FaxClient.c++
--- old/hylafax-7.0.0/util/FaxClient.c++        2017-09-05 22:16:43.000000000 
+0200
+++ new/hylafax-7.0.1/util/FaxClient.c++        2019-09-27 04:47:27.000000000 
+0200
@@ -65,6 +65,7 @@
     fdData = -1;
     state = 0;
     pasv = false;
+    timeout = 3600;
 
     setupConfig();
 }
@@ -245,6 +246,7 @@
 };
 FaxClient::F_numbertag FaxClient::numbers[] = {
 { "port",                      &FaxClient::port,               (u_int) -1 },
+{ "timeout",                   &FaxClient::timeout,            3600 },
 };
 
 void
@@ -693,13 +695,13 @@
 }
 
 int
-is_ready(int fd)
+is_ready(int fd, u_int timeout)
 {
     fd_set rfds;
     FD_ZERO(&rfds);
     FD_SET(fd, &rfds);
     struct timeval tv;
-    tv.tv_sec = 60;            // timeout after 60 seconds
+    tv.tv_sec = timeout;               // timeout after this many seconds
     tv.tv_usec = 0;
 #if CONFIG_BADSELECTPROTO
     return (select(fd+1, (int*) &rfds, NULL, NULL, &tv));
@@ -743,7 +745,7 @@
                        }
                    }
                }
-               ready = is_ready(fileno(fdIn));
+               ready = is_ready(fileno(fdIn), timeout);
                if (ready > 0) {
                    continue;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hylafax-7.0.0/util/FaxClient.h 
new/hylafax-7.0.1/util/FaxClient.h
--- old/hylafax-7.0.0/util/FaxClient.h  2015-09-17 23:01:43.000000000 +0200
+++ new/hylafax-7.0.1/util/FaxClient.h  2019-09-27 04:47:27.000000000 +0200
@@ -116,6 +116,7 @@
     fxStr      proto;          // protocol to use for service query
     fxStr      lastResponse;   // text message from last server response
     fxStr      lastContinuation; // continuation message from last server 
response
+    u_int      timeout;        // timeout for server response
     u_int      port;           // server port to connect to
     u_int      type;           // data transfer type
     u_int      stru;           // file structure


Reply via email to