// 64ビット対応\r
//static BOOL CALLBACK QuickConDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
static INT_PTR CALLBACK QuickConDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
-static int SendInitCommand(char *Cmd);\r
+// 同時接続対応\r
+//static int SendInitCommand(char *Cmd);\r
+static int SendInitCommand(SOCKET Socket, char *Cmd);\r
static void AskUseFireWall(char *Host, int *Fire, int *Pasv, int *List);\r
static void SaveCurrentSetToHistory(void);\r
static int ReConnectSkt(SOCKET *Skt);\r
DispWindowTitle();\r
SoundPlay(SND_CONNECT);\r
\r
- SendInitCommand(CurHost.InitCmd);\r
+ SendInitCommand(CmdCtrlSocket, CurHost.InitCmd);\r
\r
if(strlen(CurHost.LocalInitDir) > 0)\r
{\r
DispWindowTitle();\r
SoundPlay(SND_CONNECT);\r
\r
- SendInitCommand(CurHost.InitCmd);\r
+ SendInitCommand(CmdCtrlSocket, CurHost.InitCmd);\r
\r
DoLocalCWD(CurHost.LocalInitDir);\r
GetLocalDirForWnd();\r
* cmd1\r\ncmd2\r\n\0\r
*----------------------------------------------------------------------------*/\r
\r
-static int SendInitCommand(char *Cmd)\r
+static int SendInitCommand(SOCKET Socket, char *Cmd)\r
{\r
char Tmp[INITCMD_LEN+1];\r
char *Pos;\r
if((Pos = strchr(Tmp, '\r')) != NULL)\r
*Pos = NUL;\r
if(strlen(Tmp) > 0)\r
- DoQUOTE(Tmp);\r
+ DoQUOTE(Socket, Tmp);\r
\r
if((Cmd = strchr(Cmd, '\n')) != NULL)\r
Cmd++;\r
// if((*Skt = DoConnect(CurHost.HostAdrs, CurHost.UserName, CurHost.PassWord, CurHost.Account, CurHost.Port, CurHost.FireWall, NO, CurHost.Security)) != INVALID_SOCKET)\r
if((*Skt = DoConnect(&HostData, CurHost.HostAdrs, CurHost.UserName, CurHost.PassWord, CurHost.Account, CurHost.Port, CurHost.FireWall, NO, CurHost.Security, CancelCheckWork)) != INVALID_SOCKET)\r
{\r
- SendInitCommand(CurHost.InitCmd);\r
+ SendInitCommand(*Skt, CurHost.InitCmd);\r
// AskRemoteCurDir(Path, FMAX_PATH);\r
// DoCWD(Path, YES, YES, YES);\r
Sts = FFFTP_SUCCESS;\r
// if((*Skt = DoConnect(CurHost.HostAdrs, CurHost.UserName, CurHost.PassWord, CurHost.Account, CurHost.Port, CurHost.FireWall, NO, CurHost.Security)) != INVALID_SOCKET)\r
if((*Skt = DoConnect(&CurHost, CurHost.HostAdrs, CurHost.UserName, CurHost.PassWord, CurHost.Account, CurHost.Port, CurHost.FireWall, NO, CurHost.Security, &CancelFlg)) != INVALID_SOCKET)\r
{\r
- SendInitCommand(CurHost.InitCmd);\r
+ SendInitCommand(*Skt, CurHost.InitCmd);\r
AskRemoteCurDir(Path, FMAX_PATH);\r
DoCWD(Path, YES, YES, YES);\r
Sts = FFFTP_SUCCESS;\r
\r
int SetOSS(int wkOss)\r
{\r
+ if(Oss != wkOss) {\r
+ if (wkOss == YES) {\r
+ strcpy(CurHost.InitCmd, "OSS");\r
+ } else {\r
+ strcpy(CurHost.InitCmd, "GUARDIAN");\r
+ }\r
+ }\r
Oss = wkOss;\r
return(Oss);\r
}\r
* int 応答コードの1桁目\r
*----------------------------------------------------------------------------*/\r
\r
-int DoQUOTE(char *CmdStr)\r
+// 同時接続対応\r
+//int DoQUOTE(char *CmdStr)\r
+int DoQUOTE(SOCKET cSkt, char *CmdStr)\r
{\r
- int Sts;\r
+ int Sts, CancelCheckWork;\r
\r
- Sts = CommandProcCmd(NULL, "%s", CmdStr);\r
+ CancelCheckWork = NO;\r
+ Sts = CommandProcTrn(cSkt, NULL, &CancelCheckWork, "%s", CmdStr);\r
\r
if(Sts/100 >= FTP_CONTINUE)\r
SoundPlay(SND_ERROR);\r
\r
/* DoPWD でノード名の \ を保存するために OSSフラグも変更する */\r
if(AskOSS() == YES) {\r
- DoQUOTE("GUARDIAN");\r
+ DoQUOTE(AskCmdCtrlSkt(), "GUARDIAN");\r
SetOSS(NO);\r
} else {\r
- DoQUOTE("OSS");\r
+ DoQUOTE(AskCmdCtrlSkt(), "OSS");\r
SetOSS(YES);\r
}\r
/* Current Dir 再取得 */\r
/*----- リモート側へコマンドを送りリプライを待つ(転送ソケット)---------------\r
*\r
* Parameter\r
+* SOCKET cSkt : ソケット\r
* char *Reply : リプライのコピー先 (NULL=コピーしない)\r
+* int *CancelCheckWork :\r
* char *fmt : フォーマット文字列\r
* ... : パラメータ\r
*\r