]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Bug 378: AT_XON fix for Topic modems and changes AT_XONXOFF to AT_DLEETX
authorLee Howard <faxguy@howardsilvan.com>
Sat, 2 Aug 2003 16:03:52 +0000 (16:03 +0000)
committerLee Howard <faxguy@howardsilvan.com>
Sat, 2 Aug 2003 16:03:52 +0000 (16:03 +0000)
faxd/ClassModem.c++
faxd/ClassModem.h

index 7c2461f54a1e2092643e8f095ec9a2e5e1b0a928..1c17c9641cab61dbd09bd0032df5353cd13672a6 100644 (file)
@@ -61,7 +61,7 @@ const char* ClassModem::serviceNames[9] = {
     "",                                // 7
     "\"Voice\"",               // SERVICE_VOICE
 };
-const char* ClassModem::ATresponses[14] = {
+const char* ClassModem::ATresponses[15] = {
     "Nothing",                 // AT_NOTHING
     "OK",                      // AT_OK
     "Connection established",  // AT_CONNECT
@@ -74,7 +74,8 @@ const char* ClassModem::ATresponses[14] = {
     "Command error",           // AT_ERROR
     "<Empty line>",            // AT_EMPTYLINE
     "<Timeout>",               // AT_TIMEOUT
-    "<xonxoff>",               // AT_XONXOFF
+    "<dle+etx>",               // AT_DLEETX
+    "<xon>",                   // AT_XON
     "<Unknown response>"       // AT_OTHER
 };
 const char* ClassModem::callTypes[5] = {
@@ -770,8 +771,12 @@ ClassModem::atResponse(char* buf, long ms)
                lastResponse = AT_RING;
            break;
        case '\020':
-           if (streq(buf, "\020\003"))         // DC1/DC3 (XON/XOFF)
-               lastResponse = AT_XONXOFF;
+           if (streq(buf, "\020\003"))         // DLE/ETX
+               lastResponse = AT_DLEETX;
+           break;
+       case '\021':
+           if (streq(buf, "\021"))             // DC1 (XON)
+               lastResponse = AT_XON;
            break;
        }
     }
index ebc996dc3da2a13305e33b1b11f4116c607f4139..69ff127f09ed6dfab127e833b0cc20589c8d3a2b 100644 (file)
@@ -166,8 +166,9 @@ public:
        AT_ERROR        = 9,    // "ERROR" response
        AT_EMPTYLINE    = 10,   // empty line (0 characters received)
        AT_TIMEOUT      = 11,   // timeout waiting for response
-       AT_XONXOFF      = 12,   // xon/xoff characters
-       AT_OTHER        = 13    // unknown response (not one of above)
+       AT_DLEETX       = 12,   // dle/etx characters
+       AT_XON          = 13,   // xon character
+       AT_OTHER        = 14    // unknown response (not one of above)
     };
 private:
     ModemServer& server;       // server for getting to device
@@ -191,7 +192,7 @@ protected:
 
     static const char* serviceNames[9];         // class 2 services
     static const char* callStatus[10];  // printable call status
-    static const char* ATresponses[14];
+    static const char* ATresponses[15];
 
     ClassModem(ModemServer&, const ModemConfig&);