here is the patch for filezilla server to allow user to disable UTF8 by default, and enable UTF8 support until receive OPTS UTF8 ON:
Code: Select all
diff -Nur source/ControlSocket.cpp source.patch/ControlSocket.cpp
--- source/ControlSocket.cpp Tue May 30 22:06:00 2006
+++ source.patch/ControlSocket.cpp Thu Jun 22 12:10:13 2006
@@ -84,7 +84,10 @@
m_antiHammeringWaitTime = 0;
m_bProtP = false;
- m_useUTF8 = true;
+ if (m_pOwner->m_pOptions->GetOptionVal(OPTION_UTF8_OFF))
+ m_useUTF8 = false;
+ else
+ m_useUTF8 = true;
}
CControlSocket::~CControlSocket()
diff -Nur source/OptionTypes.h source.patch/OptionTypes.h
--- source/OptionTypes.h Thu May 11 20:33:00 2006
+++ source.patch/OptionTypes.h Thu Jun 22 12:31:11 2006
@@ -78,8 +78,9 @@
#define OPTION_SHAREDWRITE 52
#define OPTION_NOEXTERNALIPONLOCAL 53
#define OPTION_ACTIVE_IGNORELOCAL 54
+#define OPTION_UTF8_OFF 55
-#define OPTIONS_NUM 54
+#define OPTIONS_NUM 55
#define CONST_WELCOMEMESSAGE_LINESIZE 75
@@ -148,7 +149,8 @@
_T("SSL Key Password"), 0, FALSE,
_T("Allow shared write"), 1, FALSE,
_T("No External IP On Local"), 1, FALSE,
- _T("Active ignore local"), 1, FALSE
+ _T("Active ignore local"), 1, FALSE,
+ _T("UTF8 OFF by default"), 1, FALSE
};
#endif // OPTION_TYPES_INCLUDED
diff -Nur source/Options.cpp source.patch/Options.cpp
--- source/Options.cpp Sat Apr 29 22:20:12 2006
+++ source.patch/Options.cpp Thu Jun 22 12:08:20 2006
@@ -231,6 +231,10 @@
if (value < 0 || value > 1)
value = 0;
break;
+ case OPTION_UTF8_OFF:
+ if (value < 0 || value > 1)
+ value = 0;
+ break;
}
Init();
@@ -731,6 +735,9 @@
break;
case OPTION_ACTIVE_IGNORELOCAL:
m_sOptionsCache[nOptionID-1].value = 1;
+ break;
+ case OPTION_UTF8_OFF:
+ m_sOptionsCache[nOptionID-1].value = 0;
break;
default:
m_sOptionsCache[nOptionID-1].value = 0;
diff -Nur source/interface/FileZilla server.rc source.patch/interface/FileZilla server.rc
--- source/interface/FileZilla server.rc Sun May 28 22:02:46 2006
+++ source.patch/interface/FileZilla server.rc Thu Jun 22 12:04:00 2006
@@ -552,11 +552,11 @@
LTEXT "Static",IDC_TEXT,7,7,215,38
END
-IDD_OPTIONS_GENERAL DIALOGEX 0, 0, 286, 208
+IDD_OPTIONS_GENERAL DIALOGEX 0, 0, 286, 222
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- GROUPBOX "Connection settings",IDC_STATIC,7,7,272,48
+ GROUPBOX "Connection settings",IDC_STATIC,7,7,272,66
LTEXT "&Listen on these ports:",IDC_STATIC,13,20,76,8
EDITTEXT IDC_PORT,89,17,89,14,ES_AUTOHSCROLL
LTEXT "List of ports between 1 and 65535.",IDC_STATIC,184,15,
@@ -564,26 +564,28 @@
LTEXT "&Max. number of users:",IDC_STATIC,13,38,73,8
EDITTEXT IDC_MAXUSERS,89,35,40,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "(0 for unlimited users)",IDC_STATIC,133,38,67,8
- GROUPBOX "Performance settings",IDC_STATIC,7,60,272,57
- LTEXT "&Number of Threads:",IDC_STATIC,14,75,64,8
- EDITTEXT IDC_THREADNUM,89,73,40,14,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "UTF8 OFF by default.",IDC_UTF8_OFF,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,15,55,75,9
+ GROUPBOX "Performance settings",IDC_STATIC,7,77,272,57
+ LTEXT "&Number of Threads:",IDC_STATIC,14,94,64,8
+ EDITTEXT IDC_THREADNUM,89,92,40,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "This value should be a multiple of the number of processors installed on your system. Increase this value if your server is under heavy load.",
- IDC_STATIC,135,71,137,33
- GROUPBOX "Timeout settings",IDC_STATIC,7,123,272,78,0,
+ IDC_STATIC,135,90,137,33
+ GROUPBOX "Timeout settings",IDC_STATIC,7,137,272,78,0,
WS_EX_TRANSPARENT
- LTEXT "&Connections timeout:",IDC_STATIC,13,136,69,8
- EDITTEXT IDC_TIMEOUT,88,133,41,14,ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT "&Connections timeout:",IDC_STATIC,13,149,69,8
+ EDITTEXT IDC_TIMEOUT,88,146,41,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "in seconds (1-9999, 0 for no timeout)",IDC_STATIC,137,
- 136,135,8
- LTEXT "No &Transfer timeout:",IDC_STATIC,13,155,68,8
- EDITTEXT IDC_TRANSFERTIMEOUT,88,152,41,14,ES_AUTOHSCROLL |
+ 149,135,8
+ LTEXT "No &Transfer timeout:",IDC_STATIC,13,168,68,8
+ EDITTEXT IDC_TRANSFERTIMEOUT,88,165,41,14,ES_AUTOHSCROLL |
ES_NUMBER
LTEXT "in seconds (1-9999, 0 for no timeout). This value specifies the time a user has to initiate a file transfer.",
- IDC_STATIC,137,148,135,26
- LTEXT "L&ogin timeout:",IDC_STATIC,13,184,45,8
- EDITTEXT IDC_LOGINTIMEOUT,88,180,41,14,ES_AUTOHSCROLL | ES_NUMBER
+ IDC_STATIC,137,161,135,26
+ LTEXT "L&ogin timeout:",IDC_STATIC,13,197,45,8
+ EDITTEXT IDC_LOGINTIMEOUT,88,193,41,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "in seconds (1-9999, 0 for no timeout). This value specifies the time in which a new user has to login.",
- IDC_STATIC,137,175,136,26
+ IDC_STATIC,137,188,136,26
END
IDD_OFFLINEASK DIALOG 0, 0, 147, 89
diff -Nur source/interface/OptionsGeneralPage.cpp source.patch/interface/OptionsGeneralPage.cpp
--- source/interface/OptionsGeneralPage.cpp Thu Mar 24 18:42:14 2005
+++ source.patch/interface/OptionsGeneralPage.cpp Thu Jun 22 11:58:23 2006
@@ -42,6 +42,7 @@
//{{AFX_DATA_INIT(COptionsGeneralPage)
m_MaxUsers = _T("");
m_Port = _T("");
+ m_bUTF8OFF = FALSE;
m_Threadnum = _T("");
m_Timeout = _T("");
m_NoTransferTimeout = _T("");
@@ -57,6 +58,7 @@
DDX_Text(pDX, IDC_MAXUSERS, m_MaxUsers);
DDV_MaxChars(pDX, m_MaxUsers, 9);
DDX_Text(pDX, IDC_PORT, m_Port);
+ DDX_Check(pDX, IDC_UTF8_OFF, m_bUTF8OFF);
DDX_Text(pDX, IDC_THREADNUM, m_Threadnum);
DDV_MaxChars(pDX, m_Threadnum, 2);
DDX_Text(pDX, IDC_TIMEOUT, m_Timeout);
@@ -145,6 +147,7 @@
void COptionsGeneralPage::LoadData()
{
m_Port = m_pOptionsDlg->GetOption(OPTION_SERVERPORT);
+ m_bUTF8OFF = m_pOptionsDlg->GetOptionVal(OPTION_UTF8_OFF) != 0;
m_Threadnum.Format("%d", m_pOptionsDlg->GetOptionVal(OPTION_THREADNUM));
m_MaxUsers.Format("%d", m_pOptionsDlg->GetOptionVal(OPTION_MAXUSERS));
m_Timeout.Format("%d", m_pOptionsDlg->GetOptionVal(OPTION_TIMEOUT));
@@ -155,9 +158,10 @@
void COptionsGeneralPage::SaveData()
{
m_pOptionsDlg->SetOption(OPTION_SERVERPORT, m_Port);
+ m_pOptionsDlg->SetOption(OPTION_UTF8_OFF, m_bUTF8OFF);
m_pOptionsDlg->SetOption(OPTION_THREADNUM, atoi(m_Threadnum));
m_pOptionsDlg->SetOption(OPTION_MAXUSERS, atoi(m_MaxUsers));
m_pOptionsDlg->SetOption(OPTION_TIMEOUT, atoi(m_Timeout));
m_pOptionsDlg->SetOption(OPTION_NOTRANSFERTIMEOUT, atoi(m_NoTransferTimeout));
m_pOptionsDlg->SetOption(OPTION_LOGINTIMEOUT, atoi(m_LoginTimeout));
-}
\ No newline at end of file
+}
diff -Nur source/interface/OptionsGeneralPage.h source.patch/interface/OptionsGeneralPage.h
--- source/interface/OptionsGeneralPage.h Sun Jun 6 18:35:46 2004
+++ source.patch/interface/OptionsGeneralPage.h Thu Jun 22 11:55:52 2006
@@ -66,6 +66,9 @@
// HINWEIS: Der Klassen-Assistent f�gt hier Member-Funktionen ein
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
+
+public:
+ BOOL m_bUTF8OFF;
};
//{{AFX_INSERT_LOCATION}}
diff -Nur source/interface/resource.h source.patch/interface/resource.h
--- source/interface/resource.h Wed Mar 8 18:02:38 2006
+++ source.patch/interface/resource.h Thu Jun 22 11:54:21 2006
@@ -257,6 +257,7 @@
#define IDC_SHAREWRITE 1197
#define IDC_CHECK1 1198
#define IDC_ACTIVE_IGNORELOCAL 1199
+#define IDC_UTF8_OFF 1200
#define ID_ACTIVE 32768
#define ID_DIRMENU_ADD 32769
#define ID_DIRMENU_REMOVE 32770
@@ -304,7 +305,7 @@
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 167
#define _APS_NEXT_COMMAND_VALUE 32805
-#define _APS_NEXT_CONTROL_VALUE 1200
+#define _APS_NEXT_CONTROL_VALUE 1201
#define _APS_NEXT_SYMED_VALUE 1228
#endif
#endif