static int SetUploadResume(TRANSPACKET *Pkt, int ProcMode, LONGLONG Size, int *Mode);\r
static LRESULT CALLBACK TransDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);\r
static void DispTransferStatus(HWND hWnd, int End, TRANSPACKET *Pkt);\r
-static void DispTransFileInfo(TRANSPACKET *Pkt, char *Title, int SkipButton, int Info);\r
+static void DispTransFileInfo(TRANSPACKET *Pkt, const char *Title, int SkipButton, int Info);\r
// IPv6対応\r
//static int GetAdrsAndPort(char *Str, char *Adrs, int *Port, int Max);\r
static int GetAdrsAndPort(SOCKET Skt, char *Str, char *Adrs, int *Port, int Max);\r
// 64ビット対応\r
//static BOOL CALLBACK MirrorDeleteDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
static INT_PTR CALLBACK MirrorDeleteDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
-static void SetErrorMsg(char *fmt, ...);\r
+static void SetErrorMsg(const char *fmt, ...);\r
// 同時接続対応\r
static char* GetErrMsg();\r
\r
// if(TransPacketBase != NULL)\r
if(TrnSkt != INVALID_SOCKET && NextTransPacketBase != NULL)\r
{\r
+ if(strcmp(NextTransPacketBase->Cmd, "GOQUIT") == 0 && NextTransPacketBase != TransPacketBase)\r
+ {\r
+ ReleaseMutex(hListAccMutex);\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ continue;\r
+ }\r
Pos = NextTransPacketBase;\r
NextTransPacketBase = NextTransPacketBase->Next;\r
// ディレクトリ操作は非同期で行わない\r
if (AskHostType() == HTYPE_VMS)\r
return;\r
#endif\r
+#if defined(HAVE_TANDEM)\r
+ /* HP Nonstop Server の場合、ファイルのない subvol へ移動すると550 File not found\r
+ * になるが問題ないのでエラーダイアログやエラーメッセージを出さないため */\r
+ if (AskHostType() == HTYPE_TANDEM)\r
+ return;\r
+#endif\r
\r
if((strncmp(Pkt->Cmd, "NLST", 4) == 0) || (strncmp(Pkt->Cmd, "LIST", 4) == 0))\r
{\r
{\r
SetUploadResume(Pkt, Pkt->Mode, Pkt->ExistSize, &Resume);\r
if(Resume == NO)\r
+#if defined(HAVE_TANDEM)\r
+ if(AskHostType() == HTYPE_TANDEM && AskOSS() == NO && Pkt->Type != TYPE_A) {\r
+ if( Pkt->PriExt == DEF_PRIEXT && Pkt->SecExt == DEF_SECEXT && Pkt->MaxExt == DEF_MAXEXT) {\r
+ // EXTENTがデフォルトのときはコードのみ\r
+ sprintf(Buf, "%s%s,%d", Pkt->Cmd, Pkt->RemoteFile, Pkt->FileCode);\r
+ } else {\r
+ sprintf(Buf, "%s%s,%d,%d,%d,%d", Pkt->Cmd, Pkt->RemoteFile, Pkt->FileCode, Pkt->PriExt, Pkt->SecExt, Pkt->MaxExt);\r
+ }\r
+ } else\r
+#endif\r
sprintf(Buf, "%s%s", Pkt->Cmd, Pkt->RemoteFile);\r
else\r
sprintf(Buf, "%s%s", "APPE ", Pkt->RemoteFile);\r
\r
SetUploadResume(Pkt, Pkt->Mode, Pkt->ExistSize, &Resume);\r
if(Resume == NO)\r
+#if defined(HAVE_TANDEM)\r
+ if(AskHostType() == HTYPE_TANDEM && AskOSS() == NO && Pkt->Type != TYPE_A) {\r
+ if( Pkt->PriExt == DEF_PRIEXT && Pkt->SecExt == DEF_SECEXT && Pkt->MaxExt == DEF_MAXEXT) {\r
+ // EXTENTがデフォルトのときはコードのみ\r
+ sprintf(Buf, "%s%s,%d", Pkt->Cmd, Pkt->RemoteFile, Pkt->FileCode);\r
+ } else {\r
+ sprintf(Buf, "%s%s,%d,%d,%d,%d", Pkt->Cmd, Pkt->RemoteFile, Pkt->FileCode, Pkt->PriExt, Pkt->SecExt, Pkt->MaxExt);\r
+ }\r
+ } else\r
+#endif\r
sprintf(Buf, "%s%s", Pkt->Cmd, Pkt->RemoteFile);\r
else\r
sprintf(Buf, "%s%s", "APPE ", Pkt->RemoteFile);\r
* なし\r
*----------------------------------------------------------------------------*/\r
\r
-static void DispTransFileInfo(TRANSPACKET *Pkt, char *Title, int SkipButton, int Info)\r
+static void DispTransFileInfo(TRANSPACKET *Pkt, const char *Title, int SkipButton, int Info)\r
{\r
char Tmp[40];\r
\r
\r
\r
\r
-static void SetErrorMsg(char *fmt, ...)\r
+static void SetErrorMsg(const char *fmt, ...)\r
{\r
va_list Args;\r
\r