Ticket #53: ControlSocket.cpp.diff

File ControlSocket.cpp.diff, 1.7 KB (added by rbla, 18 years ago)

patch

  • ControlSocket.cpp

    RCS file: /cvsroot/filezilla/FileZilla/source/ControlSocket.cpp,v
    retrieving revision 1.33
    diff -u -b -r1.33 ControlSocket.cpp
     
    200200                    //Check for multi-line responses
    201201                    if (m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1].GetLength()>3)
    202202                    {
    203                         if (m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1][3]=='-')
     203                        if (m_MultiLine!="") // multi-line was started
    204204                        {
    205                             m_MultiLine=m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1].Left(3);
     205                            if (m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1].Left(4)!=m_MultiLine)
    206206                            m_RecvBuffer.RemoveAt(m_RecvBuffer.GetUpperBound()-1);
    207                         }
    208                         else if (m_MultiLine!="")
    209                         {
    210                             if (m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1].Left(3)!=m_MultiLine)
    211                                 m_RecvBuffer.RemoveAt(m_RecvBuffer.GetUpperBound()-1);
    212                             else
     207                            else // end of multi-line found
    213208                            {
    214209                                m_MultiLine="";
    215210                                AfxGetThread()->PostThreadMessage(WM_THREADMSG,FTM_PROCESSREPLY,0);
    216211                            }
    217212                        }
     213                        // start of new multi-line
     214                        else if (m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1][3]=='-')
     215                        {
     216                            // DDD<SP> is the end of a multi-line response
     217                            m_MultiLine=m_RecvBuffer[m_RecvBuffer.GetUpperBound()-1].Left(3)+' ';
     218                            m_RecvBuffer.RemoveAt(m_RecvBuffer.GetUpperBound()-1);
     219                        }
    218220                        else
    219221                            AfxGetThread()->PostThreadMessage(WM_THREADMSG,FTM_PROCESSREPLY,0);
    220222                    }
    221223                    else
    222224                        m_RecvBuffer.RemoveAt(m_RecvBuffer.GetUpperBound()-1);
    223                    
    224                    
    225                    
    226225                }
    227226            }
    228227            else