* Disable MMR ond Digis (18 Sep 2007)
* Class2: Fix EOFB bit order when usen LSB2MSB (18 Sep 2007)
* Add prototype for ZyXEL Omni 56K Plus
+* Class1: Imporve handling of DCN in Phase B (18 Sep 2007)
{
fxStr s;
do {
+ traceFCF("RECV recv", frame.getFCF());
switch (frame.getFCF()) {
case FCF_PWD:
recvPWD(decodePWD(s, frame));
if (frame.getFrameDataLength() < 4) return (false); // minimum acceptable DCS frame size
processDCSFrame(frame);
break;
+ case FCF_DCN:
+ gotEOT = true;
+ recvdDCN = true;
+ break;
}
- traceFCF("RECV recv", frame.getFCF());
/*
* Sometimes echo is bad enough that we hear ourselves. So if we hear DIS, we're probably
* hearing ourselves. Just ignore it and listen again.
*/
- } while ((frame.moreFrames() || frame.getFCF() == FCF_DIS) && recvFrame(frame, FCF_RCVR, conf.t2Timer));
+ } while (!recvdDCN && (frame.moreFrames() || frame.getFCF() == FCF_DIS) && recvFrame(frame, FCF_RCVR, conf.t2Timer));
return (frame.isOK() && frame.getFCF() == FCF_DCS);
}
short traincount = 0;
do {
if (!messageReceived) messageReceived = !(recvDCSFrames(frame));
+ if (recvdDCN) {
+ messageReceived = true;
+ signalRcvd = FCF_DCN;
+ lastResponse = AT_NOTHING;
+ break;
+ }
if (!messageReceived) {
trainok = recvTraining();
messageReceived = (!trainok && lastResponse == AT_FRH3);