OSDN Git Service

Convert source codes' encoding to UTF-8.
[ffftp/ffftp.git] / socketwrapper.c
index e4f03b0..e3d4623 100644 (file)
@@ -1,9 +1,9 @@
-// socketwrapper.cpp
+// socketwrapper.cpp
 // Copyright (C) 2011 Suguru Kawamoto
-// \83\\83P\83b\83g\83\89\83b\83p\81[
-// socket\8aÖ\98A\8aÖ\90\94\82ðOpenSSL\97p\82É\92u\8a·
-// \83R\83\93\83p\83C\83\8b\82É\82ÍOpenSSL\82Ì\83w\83b\83_\81[\83t\83@\83C\83\8b\82ª\95K\97v
-// \8eÀ\8ds\82É\82ÍOpenSSL\82ÌDLL\82ª\95K\97v
+// ソケットラッパー
+// socket関連関数をOpenSSL用に置換
+// コンパイルにはOpenSSLのヘッダーファイルが必要
+// 実行にはOpenSSLのDLLが必要
 
 #include <windows.h>
 #include <mmsystem.h>
@@ -185,7 +185,7 @@ BOOL AttachSSL(SOCKET s)
                                if(pSSL_set_fd(*ppSSL, s) != 0)
                                {
                                        r = TRUE;
-                                       // SSL\82Ì\83l\83S\83V\83G\81[\83V\83\87\83\93\82É\82Í\8e\9e\8aÔ\82ª\82©\82©\82é\8fê\8d\87\82ª\82 \82é
+                                       // SSLのネゴシエーションには時間がかかる場合がある
                                        while(pSSL_connect(*ppSSL) != 1)
                                        {
                                                LeaveCriticalSection(&g_OpenSSLLock);
@@ -200,7 +200,11 @@ BOOL AttachSSL(SOCKET s)
                                        }
                                }
                                else
+                               {
+                                       LeaveCriticalSection(&g_OpenSSLLock);
                                        DetachSSL(s);
+                                       EnterCriticalSection(&g_OpenSSLLock);
+                               }
                        }
                }
        }