// 同時接続対応\r
int ReConnectTrnSkt(SOCKET *Skt)\r
{\r
- char Path[FMAX_PATH+1];\r
+// char Path[FMAX_PATH+1];\r
int Sts;\r
\r
Sts = FFFTP_FAIL;\r
\r
SetTaskMsg(MSGJPN003);\r
\r
- DisableUserOpe();\r
+// DisableUserOpe();\r
/* 現在のソケットは切断 */\r
if(*Skt != INVALID_SOCKET)\r
do_closesocket(*Skt);\r
/* 再接続 */\r
if((*Skt = DoConnect(CurHost.HostAdrs, CurHost.UserName, CurHost.PassWord, CurHost.Account, CurHost.Port, CurHost.FireWall, NO, CurHost.Security)) != INVALID_SOCKET)\r
{\r
- AskRemoteCurDir(Path, FMAX_PATH);\r
+// AskRemoteCurDir(Path, FMAX_PATH);\r
// DoCWD(Path, YES, YES, YES);\r
Sts = FFFTP_SUCCESS;\r
}\r
else\r
SoundPlay(SND_ERROR);\r
\r
- EnableUserOpe();\r
+// EnableUserOpe();\r
return(Sts);\r
}\r
\r
int Sts;\r
\r
Sts = YES;\r
- if(CmdCtrlSocket == TrnCtrlSocket)\r
- Sts = NO;\r
+// if(CmdCtrlSocket == TrnCtrlSocket)\r
+// Sts = NO;\r
\r
return(Sts);\r
}\r
// データ転送用ソケットのTCP遅延転送が無効されているので念のため\r
if(setsockopt(ContSock, IPPROTO_TCP, TCP_NODELAY, (LPSTR)&Flg, sizeof(Flg)) == SOCKET_ERROR)\r
ReportWSError("setsockopt", WSAGetLastError());\r
-#pragma aaa\r
+/* #pragma aaa */\r
Flg = 1;\r
if(setsockopt(ContSock, SOL_SOCKET, SO_KEEPALIVE, (LPSTR)&Flg, sizeof(Flg)) == SOCKET_ERROR)\r
ReportWSError("setsockopt", WSAGetLastError());\r
#endif\r
TryConnect = NO;\r
\r
+ // FEAT対応\r
+ // ホストの機能を確認\r
+ if(ContSock != INVALID_SOCKET)\r
+ {\r
+ if((Sts = command(ContSock, Reply, &CancelFlg, "FEAT")) == 211)\r
+ {\r
+ // 改行文字はReadReplyMessageで消去されるため区切り文字に空白を使用\r
+ // UTF-8対応\r
+ if(strstr(Reply, " UTF8 "))\r
+ CurHost.Feature |= FEATURE_UTF8;\r
+ }\r
+ // UTF-8対応\r
+ if(CurHost.NameKanjiCode == KANJI_AUTO && (CurHost.Feature & FEATURE_UTF8))\r
+ {\r
+ if((Sts = command(ContSock, Reply, &CancelFlg, "OPTS UTF8 ON")) == 200)\r
+ {\r
+ }\r
+ }\r
+ }\r
+\r
return(ContSock);\r
}\r
\r
return(CurHost.MaxThreadCount);\r
}\r
\r
+// FEAT対応\r
+int AskHostFeature(void)\r
+{\r
+ return(CurHost.Feature);\r
+}\r
+\r