Ticket #53: ControlSocket.cpp.diff

File ControlSocket.cpp.diff, 1.7 KB (added by rbla, 8 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