1
0
Эх сурвалжийг харах

Factoring out CTransferSocket::Start()

Source commit: 0711e83bc1bd60d92ea53ac972685b8e1035c198
Martin Prikryl 9 жил өмнө
parent
commit
e0bd20b332

+ 28 - 50
source/filezilla/TransferSocket.cpp

@@ -344,33 +344,7 @@ void CTransferSocket::OnAccept(int nErrorCode)
 
   if (m_nTransferState == STATE_STARTING)
   {
-    m_nTransferState = STATE_STARTED;
-
-    if (m_pSslLayer)
-    {
-      AddLayer(m_pSslLayer);
-      int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer,
-        GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE),
-        GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION),
-        GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION));
-      if (res == SSL_FAILURE_INITSSL)
-        m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR);
-
-      if (res)
-      {
-        CloseAndEnsureSendClose(CSMODE_TRANSFERERROR);
-        return;
-      }
-    }
-
-#ifndef MPEXT_NO_GSS
-    if (m_pGssLayer)
-    {
-      AddLayer(m_pGssLayer);
-    }
-#endif
-
-    m_LastActiveTime = CTime::GetCurrentTime();
+    Start();
   }
 }
 
@@ -425,38 +399,42 @@ void CTransferSocket::OnConnect(int nErrorCode)
   }
   else if (m_nTransferState == STATE_STARTING)
   {
-    m_nTransferState = STATE_STARTED;
+    Start();
+  }
+}
 
-    m_LastActiveTime=CTime::GetCurrentTime();
+void CTransferSocket::Start()
+{
+  m_nTransferState = STATE_STARTED;
 
-    if (m_pSslLayer)
-    {
-      AddLayer(m_pSslLayer);
-      int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer,
-        GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE),
-        GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION),
-        GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION));
-      if (res == SSL_FAILURE_INITSSL)
-      {
-        m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR);
-      }
+  m_LastActiveTime=CTime::GetCurrentTime();
 
-      if (res)
-      {
-        CloseAndEnsureSendClose(CSMODE_TRANSFERERROR);
-        return;
-      }
+  if (m_pSslLayer)
+  {
+    AddLayer(m_pSslLayer);
+    int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer,
+      GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE),
+      GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION),
+      GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION));
+    if (res == SSL_FAILURE_INITSSL)
+    {
+      m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR);
     }
 
-#ifndef MPEXT_NO_GSS
-    if (m_pGssLayer)
+    if (res)
     {
-      AddLayer(m_pGssLayer);
+      CloseAndEnsureSendClose(CSMODE_TRANSFERERROR);
+      return;
     }
-#endif
   }
-}
 
+#ifndef MPEXT_NO_GSS
+  if (m_pGssLayer)
+  {
+    AddLayer(m_pGssLayer);
+  }
+#endif
+}
 
 void CTransferSocket::OnClose(int nErrorCode)
 {

+ 1 - 0
source/filezilla/TransferSocket.h

@@ -57,6 +57,7 @@ protected:
   virtual void LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg);
   virtual void ConfigureSocket();
   bool Activate();
+  void Start();
 
   CFtpControlSocket * m_pOwner;
   CAsyncProxySocketLayer * m_pProxyLayer;