Ticket #1795: filezilla-3.3.2.1-proxy-password.patch
File filezilla-3.3.2.1-proxy-password.patch, 37.2 KB (added by , 13 years ago) |
---|
-
docs/fzdefaults.xml.example
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/docs/fzdefaults.xml.example ./docs/fzdefaults.xml.example
old new 58 58 If the "Disable update check" setting is set to 1, the capability to 59 59 check for new FileZilla versions will be completely disabled. 60 60 61 Always ask for proxy password 62 63 If the "Always ask for proxy password" setting is set to 1, the user will 64 always be asked for a proxy password. It will never be saved in any file. 65 61 66 --> 62 67 63 68 <FileZilla3> … … 65 70 <Setting name="Config Location">$SOMEDIR/filezilla/</Setting> 66 71 <Setting name="Kiosk mode">0</Setting> 67 72 <Setting name="Disable update check">0</Setting> 73 <Setting name="Always ask for proxy password">0</Setting> 68 74 </Settings> 69 75 <Servers> 70 76 <Server> -
locales/de.po
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/locales/de.po ./locales/de.po
old new 1493 1493 msgid "As tab in the transfer queue pane" 1494 1494 msgstr "Als Tab in der Warteschlangenansicht" 1495 1495 1496 #: resources.h:762 1497 msgid "Ask for \"FTP proxy\" password" 1498 msgstr "Nach dem FTP-Proxy-Passwort fragen" 1499 1500 #: resources.h:780 1501 msgid "Ask for \"Generic proxy\" password" 1502 msgstr "Nach dem allgemeinen Proxy-Passwort fragen" 1503 1496 1504 #: resources.h:253 resources.h:263 resources.h:827 resources.h:836 1497 1505 msgid "Ask for action" 1498 1506 msgstr "Aktion erfragen" … … 6947 6955 msgid "Themes" 6948 6956 msgstr "Designs" 6949 6957 6958 #: resources.h:129 6959 msgid "" 6960 "There was an error during the login process.\n" 6961 "Please retype the password(s) for the next try." 6962 msgstr "" 6963 "Ein Fehler ist während dem Loginvorgang aufgetreten.\n" 6964 "Bitte geben Sie das jeweilige Proxy-Passwort erneut ein." 6965 6950 6966 #: ../../locales/../src/interface/filter.cpp:447 6951 6967 msgid "This filter set cannot be removed." 6952 6968 msgstr "Dieser Filtersatz kann nicht entfernt werden." … … 7605 7621 msgstr "" 7606 7622 "Verwenden Sie ein 'x', um die ursprünglichen Berechtigungen beizubehalten." 7607 7623 7624 #: ../../locales/../src/interface/loginmanager.cpp:248 7625 msgid "" 7626 "You can't change the proxy settings while there are active connections!\n" 7627 "\n" 7628 "Should all connections be closed? (\"No\" discards the new settings!)" 7629 msgstr "Sie können die Proxy-Einstellungen nicht ändern, während Verbindungen aktiv sind!\n" 7630 "\n" 7631 "Sollen alle Verbindungen getrennt werden? (\"Nein\" verwirft die Änderungen!)" 7632 7608 7633 #: ../../locales/../src/interface/import.cpp:29 7609 7634 msgid "You cannot import settings from FileZilla's own settings directory." 7610 7635 msgstr "" -
src/engine/ControlSocket.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/engine/ControlSocket.cpp ./src/engine/ControlSocket.cpp
old new 1171 1171 int res = m_pProxyBackend->Handshake((enum CProxySocket::ProxyType)proxy_type, 1172 1172 m_pCurrentServer->GetHost(), m_pCurrentServer->GetPort(), 1173 1173 m_pEngine->GetOptions()->GetOption(OPTION_PROXY_USER), 1174 m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ PASS));1174 m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ASKED_PASS)); 1175 1175 1176 1176 if (res != EINPROGRESS) 1177 1177 { -
src/engine/ftpcontrolsocket.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/engine/ftpcontrolsocket.cpp ./src/engine/ftpcontrolsocket.cpp
old new 526 526 pData->loginSequence.push_back(cmd); 527 527 cmd.optional = true; 528 528 cmd.hide_arguments = true; 529 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ PASS);529 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ASKED_PASS); 530 530 pData->loginSequence.push_back(cmd); 531 531 } 532 532 // User@host … … 558 558 pData->loginSequence.push_back(cmd); 559 559 cmd.optional = true; 560 560 cmd.hide_arguments = true; 561 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ PASS);561 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ASKED_PASS); 562 562 pData->loginSequence.push_back(cmd); 563 563 } 564 564 … … 592 592 else if (pData->ftp_proxy_type == 4) 593 593 { 594 594 wxString proxyUser = m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_USER); 595 wxString proxyPass = m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ PASS);595 wxString proxyPass = m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ASKED_PASS); 596 596 wxString host = server.FormatHost(); 597 597 wxString user = server.GetUser(); 598 598 wxString account = server.GetAccount(); -
src/engine/sftpcontrolsocket.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/engine/sftpcontrolsocket.cpp ./src/engine/sftpcontrolsocket.cpp
old new 565 565 566 566 wxString show = cmd; 567 567 568 wxString pass = m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ PASS);568 wxString pass = m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ASKED_PASS); 569 569 if (pass != _T("")) 570 570 { 571 571 cmd += _T(" \"") + pass + _T("\""); -
src/include/optionsbase.h
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/include/optionsbase.h ./src/include/optionsbase.h
old new 53 53 OPTION_FTP_PROXY_TYPE, 54 54 OPTION_FTP_PROXY_HOST, 55 55 OPTION_FTP_PROXY_USER, 56 OPTION_FTP_PROXY_ASK_PASS, 57 OPTION_FTP_PROXY_ASKED_PASS, 56 58 OPTION_FTP_PROXY_PASS, 57 59 OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE, 58 60 … … 62 64 OPTION_PROXY_HOST, 63 65 OPTION_PROXY_PORT, 64 66 OPTION_PROXY_USER, 67 OPTION_PROXY_ASK_PASS, 68 OPTION_PROXY_ASKED_PASS, 65 69 OPTION_PROXY_PASS, 66 70 67 71 OPTION_LOGGING_FILE, -
src/interface/Mainfrm.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/Mainfrm.cpp ./src/interface/Mainfrm.cpp
old new 2690 2690 if (!pState) 2691 2691 return false; 2692 2692 2693 if(!server.GetBypassProxy()) 2694 CLoginManager::Get().GetProxyPassword(); 2695 2693 2696 if (pState->IsRemoteConnected() || !pState->IsRemoteIdle()) 2694 2697 { 2695 2698 wxDialogEx dlg; -
src/interface/Options.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/Options.cpp ./src/interface/Options.cpp
old new 62 62 { "FTP Proxy type", number, _T("0"), false }, 63 63 { "FTP Proxy host", string, _T(""), false }, 64 64 { "FTP Proxy user", string, _T(""), false }, 65 { "FTP Proxy ask password", number, _T("1"), false }, 66 { "FTP Proxy asked password", string, _T(""), true }, 65 67 { "FTP Proxy password", string, _T(""), false }, 66 68 { "FTP Proxy login sequence", string, _T(""), false }, 67 69 { "SFTP keyfiles", string, _T(""), false }, … … 69 71 { "Proxy host", string, _T(""), false }, 70 72 { "Proxy port", number, _T("0"), false }, 71 73 { "Proxy user", string, _T(""), false }, 74 { "Proxy ask password", number, _T("1"), false }, 75 { "Proxy asked password", string, _T(""), true }, 72 76 { "Proxy password", string, _T(""), false }, 73 77 { "Logging file", string, _T(""), false }, 74 78 { "Logging filesize limit", number, _T("10"), false }, … … 167 171 { 168 172 { _T("Config Location"), string, _T(""), 0 }, 169 173 { _T("Kiosk mode"), number, _T(""), 0 }, 170 { _T("Disable update check"), number, _T(""), 0 } 174 { _T("Disable update check"), number, _T(""), 0 }, 175 { _T("Always ask for proxy password"), number, _T(""), 0 } 171 176 }; 172 177 173 178 BEGIN_EVENT_TABLE(COptions, wxEvtHandler) -
src/interface/Options.h
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/Options.h ./src/interface/Options.h
old new 88 88 DEFAULT_SETTINGSDIR, 89 89 DEFAULT_KIOSKMODE, 90 90 DEFAULT_DISABLEUPDATECHECK, 91 DEFAULT_ASKPROXYPASS, 91 92 92 93 // Has to be last element 93 94 DEFAULTS_NUM -
src/interface/loginmanager.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/loginmanager.cpp ./src/interface/loginmanager.cpp
old new 1 1 #include <filezilla.h> 2 2 #include "loginmanager.h" 3 3 #include "filezillaapp.h" 4 #include "Options.h" 5 #include "state.h" 6 #include "wx/statline.h" 4 7 5 8 CLoginManager CLoginManager::m_theLoginManager; 6 9 … … 124 127 125 128 void CLoginManager::CachedPasswordFailed(const CServer& server) 126 129 { 130 readProxyPass = !ActiveProxyConnections(&server); 131 readFtpProxyPass = readProxyPass; 132 GetProxyPassword(true); 133 127 134 if (server.GetLogonType() != ASK) 128 135 return; 129 136 … … 140 147 return; 141 148 } 142 149 } 150 151 bool CLoginManager::ActiveProxyConnections(const CServer *server) 152 { 153 const std::vector<CState*> *allStates = CContextManager::Get()->GetAllStates(); 154 bool active = false; 155 for (std::vector<CState*>::const_iterator iter = allStates->begin(); iter != allStates->end(); iter++) 156 { 157 if ((*iter)->GetServer() && !((*iter)->GetServer()->GetBypassProxy())) 158 { 159 if (server == NULL || (*iter)->GetServer() != server) 160 { 161 active = true; 162 break; 163 } 164 } 165 } 166 167 return active; 168 } 169 170 void CLoginManager::GetProxyPassword(bool onError) 171 { 172 if (readProxyPass || readFtpProxyPass) 173 { 174 bool askGenericProxyPass = ( readProxyPass && ( COptions::Get()->GetDefaultVal(DEFAULT_ASKPROXYPASS) != 0 || COptions::Get()->GetOptionVal(OPTION_PROXY_ASK_PASS ) != 0 ) && COptions::Get()->GetOptionVal(OPTION_PROXY_TYPE ) != 0); 175 bool askFtpProxyPass = ( readFtpProxyPass && ( COptions::Get()->GetDefaultVal(DEFAULT_ASKPROXYPASS) != 0 || COptions::Get()->GetOptionVal(OPTION_FTP_PROXY_ASK_PASS) != 0 ) && COptions::Get()->GetOptionVal(OPTION_FTP_PROXY_TYPE) != 0); 176 177 if (!askGenericProxyPass ) 178 COptions::Get()->SetOption(OPTION_PROXY_ASKED_PASS, COptions::Get()->GetOptionVal(OPTION_PROXY_PASS)); 179 180 if (!askFtpProxyPass) 181 COptions::Get()->SetOption(OPTION_FTP_PROXY_ASKED_PASS, COptions::Get()->GetOptionVal(OPTION_FTP_PROXY_PASS)); 182 183 184 if (!askGenericProxyPass && !askFtpProxyPass) 185 return; // nothing to do for us - leave 186 187 wxDialog pwdDlg; 188 wxXmlResource::Get()->LoadDialog(&pwdDlg, wxGetApp().GetTopWindow(), _T("ID_ENTER_PROXY_PASSWORD")); 189 190 if (!askGenericProxyPass) 191 { 192 XRCCTRL(pwdDlg, "ID_GENERIC_LABEL", wxStaticText)->Hide(); 193 XRCCTRL(pwdDlg, "ID_GENERIC_PASSWORD_LABEL", wxStaticText)->Hide(); 194 XRCCTRL(pwdDlg, "ID_GENERIC_PASSWORD", wxTextCtrl)->Hide(); 195 } 196 197 if (!askFtpProxyPass) 198 { 199 XRCCTRL(pwdDlg, "ID_FTP_LABEL", wxStaticText)->Hide(); 200 XRCCTRL(pwdDlg, "ID_FTP_PASSWORD_LABEL", wxStaticText)->Hide(); 201 XRCCTRL(pwdDlg, "ID_FTP_PASSWORD", wxTextCtrl)->Hide(); 202 } 203 204 if (!onError) 205 { 206 XRCCTRL(pwdDlg, "ID_ERROR_MSG_LABEL", wxStaticText)->Hide(); 207 XRCCTRL(pwdDlg, "ID_ERROR_MSG_LINE", wxStaticLine)->Hide(); 208 } 209 210 XRCCTRL(pwdDlg, "wxID_OK", wxButton)->SetId(wxID_OK); 211 XRCCTRL(pwdDlg, "wxID_CANCEL", wxButton)->SetId(wxID_CANCEL); 212 pwdDlg.GetSizer()->Fit(&pwdDlg); 213 pwdDlg.GetSizer()->SetSizeHints(&pwdDlg); 214 215 if (pwdDlg.ShowModal() == wxID_OK) 216 { 217 if (askGenericProxyPass) 218 { 219 wxString genericPass; 220 genericPass = XRCCTRL(pwdDlg, "ID_GENERIC_PASSWORD", wxTextCtrl)->GetValue(); 221 COptions::Get()->SetOption(OPTION_PROXY_ASKED_PASS, genericPass); 222 } 223 224 if (askFtpProxyPass) 225 { 226 wxString ftpPass; 227 ftpPass = XRCCTRL(pwdDlg, "ID_FTP_PASSWORD", wxTextCtrl)->GetValue(); 228 COptions::Get()->SetOption(OPTION_FTP_PROXY_ASKED_PASS, ftpPass); 229 } 230 } 231 232 readProxyPass = false; 233 readFtpProxyPass = false; 234 235 } 236 } 237 238 bool CLoginManager::ResetProxyPassword(int type) 239 { 240 if (ActiveProxyConnections()) 241 { 242 int answer = wxMessageBox(_("You can't change the proxy settings while there are active connections!\n\nShould all connections be closed? (\"No\" discards the new settings!)"), _("Confirm"), wxYES_NO | wxICON_QUESTION, wxGetApp().GetTopWindow()); 243 if (answer == wxYES) 244 { 245 const std::vector<CState*> *allStates = CContextManager::Get()->GetAllStates(); 246 for (std::vector<CState*>::const_iterator iter = allStates->begin(); iter != allStates->end(); iter++) 247 { 248 if (*iter) 249 (*iter)->Disconnect(); 250 } 251 252 if (type == 0) 253 readProxyPass = true; 254 else if (type == 1) 255 readFtpProxyPass = true; 256 else 257 return false; 258 259 GetProxyPassword(); 260 return true; 261 } 262 } 263 else 264 { 265 if (type == 0) 266 readProxyPass = true; 267 else if (type == 1) 268 readFtpProxyPass = true; 269 else 270 return false; 271 272 return true; 273 } 274 275 return false; 276 } 277 No newline at end of file -
src/interface/loginmanager.h
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/loginmanager.h ./src/interface/loginmanager.h
old new 5 5 // behaviour. These are: 6 6 // - Password dialog for servers with ASK or INTERACTIVE logontype 7 7 // - Storage of passwords for ASK servers for duration of current session 8 // - Password dialog for proxies with ASK logontype 8 9 9 10 class CLoginManager 10 11 { … … 12 13 static CLoginManager& Get() { return m_theLoginManager; } 13 14 14 15 bool GetPassword(CServer& server, bool silent, wxString name = _T(""), wxString challenge = _T("")); 16 void GetProxyPassword(bool onError = false); 17 bool ResetProxyPassword(int type); 15 18 16 19 void CachedPasswordFailed(const CServer& server); 17 20 18 21 protected: 22 CLoginManager() { readProxyPass = true; readFtpProxyPass = true; } 23 bool readProxyPass; 24 bool readFtpProxyPass; 25 bool ActiveProxyConnections(const CServer *server = NULL); 26 19 27 bool DisplayDialog(CServer& server, wxString name, wxString challenge); 20 28 21 29 static CLoginManager m_theLoginManager; -
src/interface/resources/dialogs.xrc
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/resources/dialogs.xrc ./src/interface/resources/dialogs.xrc
old new 1415 1415 </object> 1416 1416 </object> 1417 1417 </object> 1418 <object class="wxDialog" name="ID_ENTER_PROXY_PASSWORD"> 1419 <title>Enter password</title> 1420 <object class="wxBoxSizer"> 1421 <orient>wxVERTICAL</orient> 1422 <object class="sizeritem"> 1423 <object class="wxStaticText" name="ID_ERROR_MSG_LABEL"> 1424 <label>There was an error during the login process.
Please retype the password(s) for the next try.</label> 1425 </object> 1426 <flag>wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag> 1427 <border>5</border> 1428 </object> 1429 <object class="sizeritem"> 1430 <object class="wxStaticLine" name="ID_ERROR_MSG_LINE"> 1431 <size>220,-1</size> 1432 </object> 1433 <flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> 1434 <border>2</border> 1435 </object> 1436 <object class="sizeritem"> 1437 <object class="wxStaticText" name="ID_INFO_CANCEL_LABEL"> 1438 <label>"Cancel" will keep the current password(s).</label> 1439 </object> 1440 <flag>wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag> 1441 <border>5</border> 1442 </object> 1443 <object class="sizeritem"> 1444 <object class="wxStaticText" name="ID_GENERIC_LABEL"> 1445 <label>Generic proxy</label> 1446 </object> 1447 <flag>wxTOP|wxLEFT|wxRIGHT|wxALIGN_LEFT|wxALIGN_TOP</flag> 1448 <border>5</border> 1449 </object> 1450 <object class="sizeritem"> 1451 <object class="wxFlexGridSizer"> 1452 <cols>2</cols> 1453 <vgap>5</vgap> 1454 <hgap>5</hgap> 1455 <object class="sizeritem"> 1456 <object class="wxStaticText" name="ID_GENERIC_PASSWORD_LABEL"> 1457 <label>Password:</label> 1458 </object> 1459 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 1460 </object> 1461 <object class="sizeritem"> 1462 <object class="wxTextCtrl" name="ID_GENERIC_PASSWORD"> 1463 <size>170,-1</size> 1464 <style>wxTE_PASSWORD</style> 1465 </object> 1466 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 1467 </object> 1468 </object> 1469 <flag>wxALL|wxALIGN_LEFT|wxALIGN_TOP</flag> 1470 <border>5</border> 1471 </object> 1472 <object class="sizeritem"> 1473 <object class="wxStaticText" name="ID_FTP_LABEL"> 1474 <label>FTP Proxy</label> 1475 </object> 1476 <flag>wxTOP|wxLEFT|wxRIGHT|wxALIGN_LEFT|wxALIGN_TOP</flag> 1477 <border>5</border> 1478 </object> 1479 <object class="sizeritem"> 1480 <object class="wxFlexGridSizer"> 1481 <cols>2</cols> 1482 <vgap>5</vgap> 1483 <hgap>5</hgap> 1484 <object class="sizeritem"> 1485 <object class="wxStaticText" name="ID_FTP_PASSWORD_LABEL"> 1486 <label>Password:</label> 1487 </object> 1488 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 1489 </object> 1490 <object class="sizeritem"> 1491 <object class="wxTextCtrl" name="ID_FTP_PASSWORD"> 1492 <size>170,-1</size> 1493 <style>wxTE_PASSWORD</style> 1494 </object> 1495 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 1496 </object> 1497 </object> 1498 <flag>wxALL|wxALIGN_LEFT|wxALIGN_TOP</flag> 1499 <border>5</border> 1500 </object> 1501 <object class="sizeritem"> 1502 <object class="wxBoxSizer"> 1503 <object class="sizeritem"> 1504 <object class="wxButton" name="wxID_OK"> 1505 <label>&OK</label> 1506 <default>1</default> 1507 </object> 1508 <flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 1509 <border>5</border> 1510 </object> 1511 <object class="sizeritem"> 1512 <object class="wxButton" name="wxID_CANCEL"> 1513 <label>&Cancel</label> 1514 </object> 1515 <flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 1516 <border>5</border> 1517 </object> 1518 </object> 1519 <flag>wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag> 1520 </object> 1521 </object> 1522 </object> 1418 1523 <object class="wxDialog" name="ID_INPUTDIALOG"> 1419 1524 <object class="wxBoxSizer"> 1420 1525 <orient>wxVERTICAL</orient> -
src/interface/resources/settings.xrc
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/resources/settings.xrc ./src/interface/resources/settings.xrc
old new 444 444 <object class="sizeritem"> 445 445 <object class="wxStaticBoxSizer"> 446 446 <label>FTP Proxy</label> 447 <orient>wxHORIZONTAL</orient>448 447 <object class="sizeritem"> 449 448 <object class="wxFlexGridSizer"> 450 449 <cols>1</cols> 451 450 <vgap>5</vgap> 451 <growablecols>0</growablecols> 452 <growablerows>6</growablerows> 452 453 <object class="sizeritem"> 453 454 <object class="wxStaticText"> 454 455 <label>Type of FTP Proxy:</label> … … 486 487 <object class="wxTextCtrl" name="ID_LOGINSEQUENCE"> 487 488 <style>wxTE_MULTILINE</style> 488 489 </object> 490 <flag>wxEXPAND</flag> 489 491 <option>1</option> 490 <flag>wxGROW</flag>491 492 </object> 492 493 <object class="sizeritem"> 493 494 <object class="wxStaticText"> … … 496 497 </object> 497 498 <object class="sizeritem"> 498 499 <object class="wxBoxSizer"> 499 <orient>wxHORIZONTAL</orient>500 500 <object class="sizeritem"> 501 501 <object class="wxStaticText"> 502 502 <label>%h - Host</label> … … 545 545 </object> 546 546 </object> 547 547 <option>1</option> 548 <flag>wxLEFT|wx GROW</flag>548 <flag>wxLEFT|wxEXPAND</flag> 549 549 <border>17</border> 550 550 </object> 551 551 <object class="sizeritem"> 552 <object class="wxFlexGridSizer"> 553 <cols>5</cols> 552 <object class="wxBoxSizer"> 554 553 <object class="sizeritem"> 555 554 <object class="wxStaticText"> 556 555 <label>P&roxy host:</label> … … 567 566 <object class="sizeritem"> 568 567 <object class="wxStaticText"> 569 568 <label>Proxy &user:</label> 569 <size>85,-1</size> 570 570 </object> 571 571 <flag>wxALIGN_CENTRE_VERTICAL</flag> 572 572 </object> … … 574 574 <object class="wxTextCtrl" name="ID_PROXY_USER"/> 575 575 <flag>wxALIGN_CENTRE_VERTICAL</flag> 576 576 </object> 577 </object> 578 <flag>wxALL</flag> 579 </object> 580 <object class="sizeritem"> 581 <object class="wxBoxSizer"> 577 582 <object class="sizeritem"> 578 583 <object class="wxStaticText"> 579 584 <label>Pro&xy password:</label> 585 <size>85,-1</size> 580 586 </object> 581 587 <flag>wxALIGN_CENTRE_VERTICAL</flag> 582 588 </object> … … 586 592 </object> 587 593 <flag>wxALIGN_CENTRE_VERTICAL</flag> 588 594 </object> 589 <vgap>5</vgap> 590 <hgap>5</hgap> 595 <object class="spacer"> 596 <flag>wxALIGN_BOTTOM</flag> 597 <size>10,0</size> 591 598 </object> 599 <object class="sizeritem"> 600 <object class="wxCheckBox" name="ID_PROXY_ASK_PASS"> 601 <label>Ask for "FTP proxy" password</label> 602 </object> 603 <flag>wxALL</flag> 604 </object> 605 </object> 606 <flag>wxALL</flag> 592 607 </object> 593 <growablecols>0</growablecols>594 608 <object class="sizeritem"> 595 609 <object class="wxStaticText"> 596 610 <label>Note: This only works with plain, unencrypted FTP connections.</label> 597 611 </object> 598 612 </object> 599 <growablerows>6</growablerows>600 613 </object> 601 614 <option>1</option> 602 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wx GROW</flag>615 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND</flag> 603 616 <border>5</border> 604 617 </object> 605 618 </object> 606 619 <option>1</option> 607 <flag>wx GROW</flag>620 <flag>wxEXPAND</flag> 608 621 </object> 609 622 </object> 610 623 </object> … … 691 704 <object class="wxFlexGridSizer"> 692 705 <cols>1</cols> 693 706 <vgap>5</vgap> 707 <growablecols>0</growablecols> 694 708 <object class="sizeritem"> 695 709 <object class="wxStaticText"> 696 710 <label>Type of generic proxy:</label> … … 714 728 <object class="sizeritem"> 715 729 <object class="wxFlexGridSizer"> 716 730 <cols>2</cols> 731 <vgap>5</vgap> 732 <hgap>5</hgap> 733 <growablecols>1</growablecols> 717 734 <object class="sizeritem"> 718 735 <object class="wxStaticText"> 719 736 <label>P&roxy host:</label> … … 722 739 </object> 723 740 <object class="sizeritem"> 724 741 <object class="wxTextCtrl" name="ID_PROXY_HOST"/> 725 <flag>wxALIGN_CENTRE_VERTICAL|wx GROW</flag>742 <flag>wxALIGN_CENTRE_VERTICAL|wxEXPAND</flag> 726 743 </object> 727 744 <object class="sizeritem"> 728 745 <object class="wxStaticText"> … … 744 761 </object> 745 762 <object class="sizeritem"> 746 763 <object class="wxTextCtrl" name="ID_PROXY_USER"/> 747 <flag>wxALIGN_CENTRE_VERTICAL|wx GROW</flag>764 <flag>wxALIGN_CENTRE_VERTICAL|wxEXPAND</flag> 748 765 </object> 749 766 <object class="sizeritem"> 750 767 <object class="wxStaticText"> … … 756 773 <object class="wxTextCtrl" name="ID_PROXY_PASS"> 757 774 <style>wxTE_PASSWORD</style> 758 775 </object> 759 <flag>wxALIGN_CENTRE_VERTICAL|wx GROW</flag>776 <flag>wxALIGN_CENTRE_VERTICAL|wxEXPAND</flag> 760 777 </object> 761 < vgap>5</vgap>762 <hgap>5</hgap>763 <growablecols>1</growablecols>778 <object class="sizeritem"> 779 <object class="wxCheckBox" name="ID_PROXY_ASK_PASS"> 780 <label>Ask for "Generic proxy" password</label> 764 781 </object> 765 <flag>wxGROW</flag> 782 <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> 783 </object> 784 </object> 785 <flag>wxEXPAND</flag> 766 786 </object> 767 <growablecols>0</growablecols>768 787 <object class="sizeritem"> 769 788 <object class="wxStaticText"> 770 789 <label>Note: Using a generic proxy forces passive mode on FTP connections.</label> … … 772 791 </object> 773 792 </object> 774 793 <option>1</option> 775 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wx GROW</flag>794 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND</flag> 776 795 <border>5</border> 777 796 </object> 778 797 </object> 779 798 <option>1</option> 780 <flag>wx GROW</flag>799 <flag>wxEXPAND</flag> 781 800 </object> 782 801 </object> 783 802 </object> -
src/interface/settings/optionspage_ftpproxy.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/settings/optionspage_ftpproxy.cpp ./src/interface/settings/optionspage_ftpproxy.cpp
old new 4 4 #include "settingsdialog.h" 5 5 #include "optionspage.h" 6 6 #include "optionspage_ftpproxy.h" 7 #include "../loginmanager.h" 7 8 8 9 BEGIN_EVENT_TABLE(COptionsPageFtpProxy, COptionsPageFtpProxy::COptionsPage) 9 10 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_NONE"), COptionsPageFtpProxy::OnProxyTypeChanged) … … 11 12 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_SITE"), COptionsPageFtpProxy::OnProxyTypeChanged) 12 13 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_OPEN"), COptionsPageFtpProxy::OnProxyTypeChanged) 13 14 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_CUSTOM"), COptionsPageFtpProxy::OnProxyTypeChanged) 15 EVT_CHECKBOX(XRCID("ID_PROXY_ASK_PASS"), COptionsPageFtpProxy::OnProxyAskPassChanged) 14 16 EVT_TEXT(XRCID("ID_LOGINSEQUENCE"), COptionsPageFtpProxy::OnLoginSequenceChanged) 15 17 END_EVENT_TABLE() 16 18 17 19 bool COptionsPageFtpProxy::LoadPage() 18 20 { 19 21 bool failure = false; 22 bool askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || m_pOptions->GetOptionVal(OPTION_FTP_PROXY_ASK_PASS) != 0); 20 23 21 24 SetTextFromOption(XRCID("ID_PROXY_HOST"), OPTION_FTP_PROXY_HOST, failure); 22 25 SetTextFromOption(XRCID("ID_PROXY_USER"), OPTION_FTP_PROXY_USER, failure); 26 SetCheck(XRCID("ID_PROXY_ASK_PASS"), askPass, failure); 27 if(!askPass) 28 { 23 29 SetTextFromOption(XRCID("ID_PROXY_PASS"), OPTION_FTP_PROXY_PASS, failure); 30 } 24 31 25 32 int type = m_pOptions->GetOptionVal(OPTION_FTP_PROXY_TYPE); 26 33 switch (type) … … 45 52 } 46 53 47 54 if (!failure) 55 { 48 56 SetCtrlState(); 57 SetAskPass(); 58 } 49 59 50 60 return !failure; 51 61 } 52 62 53 63 bool COptionsPageFtpProxy::SavePage() 54 64 { 55 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_FTP_PROXY_HOST); 56 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_FTP_PROXY_USER); 57 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_FTP_PROXY_PASS); 65 int askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? 1 : 0); 58 66 59 67 int type = 0; 60 68 if (GetRCheck(XRCID("ID_PROXYTYPE_USER"))) … … 64 72 else if (GetRCheck(XRCID("ID_PROXYTYPE_OPEN"))) 65 73 type = 3; 66 74 else if (GetRCheck(XRCID("ID_PROXYTYPE_CUSTOM"))) 67 {68 SetOptionFromText(XRCID("ID_LOGINSEQUENCE"), OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE);69 75 type = 4; 76 77 if (type != 0 && ( 78 GetText(XRCID("ID_PROXY_HOST")) != m_pOptions->GetOption(OPTION_FTP_PROXY_HOST) || 79 GetText(XRCID("ID_PROXY_USER")) != m_pOptions->GetOption(OPTION_FTP_PROXY_USER) || 80 ( type == 4 && GetText(XRCID("ID_LOGINSEQUENCE")) != m_pOptions->GetOption(OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE) ) || 81 askPass != m_pOptions->GetOptionVal(OPTION_FTP_PROXY_ASK_PASS) || 82 ( askPass == 0 && GetText(XRCID("ID_PROXY_PASS")) != m_pOptions->GetOption(OPTION_FTP_PROXY_PASS))) 83 ) 84 { 85 if (!CLoginManager::Get().ResetProxyPassword(1)) 86 return true; 70 87 } 88 89 90 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_FTP_PROXY_HOST); 91 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_FTP_PROXY_USER); 92 m_pOptions->SetOption(OPTION_FTP_PROXY_ASK_PASS, askPass); 93 if (!askPass) 94 { 95 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_FTP_PROXY_PASS); 96 } 97 else 98 { 99 m_pOptions->SetOption(OPTION_FTP_PROXY_PASS, _T("")); 100 } 101 102 if (type == 4) 103 SetOptionFromText(XRCID("ID_LOGINSEQUENCE"), OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE); 104 71 105 m_pOptions->SetOption(OPTION_FTP_PROXY_TYPE, type); 72 106 73 107 return true; … … 110 144 XRCCTRL(*this, "ID_PROXY_HOST", wxTextCtrl)->Enable(false); 111 145 XRCCTRL(*this, "ID_PROXY_USER", wxTextCtrl)->Enable(false); 112 146 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(false); 147 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(false); 113 148 return; 114 149 } 115 150 … … 121 156 122 157 XRCCTRL(*this, "ID_PROXY_HOST", wxTextCtrl)->Enable(true); 123 158 XRCCTRL(*this, "ID_PROXY_USER", wxTextCtrl)->Enable(true); 124 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(true); 159 //XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(true); 160 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(true); 161 SetAskPass(); 125 162 126 163 if (XRCCTRL(*this, "ID_PROXYTYPE_CUSTOM", wxRadioButton)->GetValue()) 127 164 return; … … 144 181 pTextCtrl->ChangeValue(loginSequence); 145 182 } 146 183 184 void COptionsPageFtpProxy::SetAskPass() 185 { 186 bool defaultAskPass = m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS); 187 bool askPass = (defaultAskPass || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? true : false); 188 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(!askPass); 189 if (defaultAskPass) 190 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(false); 191 } 192 147 193 void COptionsPageFtpProxy::OnProxyTypeChanged(wxCommandEvent& event) 148 194 { 149 195 SetCtrlState(); 150 196 } 151 197 198 void COptionsPageFtpProxy::OnProxyAskPassChanged(wxCommandEvent& event) 199 { 200 SetAskPass(); 201 } 202 152 203 void COptionsPageFtpProxy::OnLoginSequenceChanged(wxCommandEvent& event) 153 204 { 154 205 XRCCTRL(*this, "ID_PROXYTYPE_CUSTOM", wxRadioButton)->SetValue(true); -
src/interface/settings/optionspage_ftpproxy.h
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/settings/optionspage_ftpproxy.h ./src/interface/settings/optionspage_ftpproxy.h
old new 12 12 protected: 13 13 14 14 void SetCtrlState(); 15 void SetAskPass(); 15 16 16 17 DECLARE_EVENT_TABLE(); 17 18 void OnProxyTypeChanged(wxCommandEvent& event); 19 void OnProxyAskPassChanged(wxCommandEvent& event); 18 20 void OnLoginSequenceChanged(wxCommandEvent& event); 19 21 }; 20 22 -
src/interface/settings/optionspage_proxy.cpp
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/settings/optionspage_proxy.cpp ./src/interface/settings/optionspage_proxy.cpp
old new 4 4 #include "settingsdialog.h" 5 5 #include "optionspage.h" 6 6 #include "optionspage_proxy.h" 7 #include "../loginmanager.h" 7 8 8 9 BEGIN_EVENT_TABLE(COptionsPageProxy, COptionsPageProxy::COptionsPage) 9 10 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_NONE"), COptionsPageProxy::OnProxyTypeChanged) 10 11 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_HTTP"), COptionsPageProxy::OnProxyTypeChanged) 11 12 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_SOCKS5"), COptionsPageProxy::OnProxyTypeChanged) 13 EVT_CHECKBOX(XRCID("ID_PROXY_ASK_PASS"), COptionsPageProxy::OnProxyAskPassChanged) 12 14 END_EVENT_TABLE() 13 15 14 16 bool COptionsPageProxy::LoadPage() 15 17 { 16 18 bool failure = false; 19 bool askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || m_pOptions->GetOptionVal(OPTION_PROXY_ASK_PASS) != 0); 17 20 18 21 SetTextFromOption(XRCID("ID_PROXY_HOST"), OPTION_PROXY_HOST, failure); 19 22 SetTextFromOption(XRCID("ID_PROXY_PORT"), OPTION_PROXY_PORT, failure); 20 23 SetTextFromOption(XRCID("ID_PROXY_USER"), OPTION_PROXY_USER, failure); 24 SetCheck(XRCID("ID_PROXY_ASK_PASS"), askPass, failure); 25 if(!askPass) 26 { 21 27 SetTextFromOption(XRCID("ID_PROXY_PASS"), OPTION_PROXY_PASS, failure); 28 } 22 29 23 30 int type = m_pOptions->GetOptionVal(OPTION_PROXY_TYPE); 24 31 switch (type) … … 36 43 } 37 44 38 45 if (!failure) 46 { 39 47 SetCtrlState(); 48 SetAskPass(); 49 } 40 50 41 51 return !failure; 42 52 } 43 53 44 54 bool COptionsPageProxy::SavePage() 45 55 { 46 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_PROXY_HOST); 47 SetOptionFromText(XRCID("ID_PROXY_PORT"), OPTION_PROXY_PORT); 48 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_PROXY_USER); 49 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_PROXY_PASS); 56 int askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? 1 : 0); 57 50 58 51 59 int type; 52 60 if (GetRCheck(XRCID("ID_PROXYTYPE_HTTP"))) … … 55 63 type = 2; 56 64 else 57 65 type = 0; 66 67 if (type != 0 && ( 68 GetText(XRCID("ID_PROXY_HOST")) != m_pOptions->GetOption(OPTION_PROXY_HOST) || 69 GetText(XRCID("ID_PROXY_PORT")) != m_pOptions->GetOption(OPTION_PROXY_PORT) || 70 GetText(XRCID("ID_PROXY_USER")) != m_pOptions->GetOption(OPTION_PROXY_USER) || 71 askPass != m_pOptions->GetOption(OPTION_PROXY_ASK_PASS) || 72 ( askPass == 0 && GetText(XRCID("ID_PROXY_PASS")) != m_pOptions->GetOption(OPTION_PROXY_PASS))) 73 ) 74 { 75 if (!CLoginManager::Get().ResetProxyPassword(0)) 76 return true; 77 } 78 79 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_PROXY_HOST); 80 SetOptionFromText(XRCID("ID_PROXY_PORT"), OPTION_PROXY_PORT); 81 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_PROXY_USER); 82 m_pOptions->SetOption(OPTION_PROXY_ASK_PASS, askPass); 83 if(!askPass) 84 { 85 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_PROXY_PASS); 86 } 87 else 88 { 89 m_pOptions->SetOption(OPTION_PROXY_PASS, _T("")); 90 } 91 58 92 m_pOptions->SetOption(OPTION_PROXY_TYPE, type); 59 93 60 94 return true; … … 84 118 XRCCTRL(*this, "ID_PROXY_HOST", wxTextCtrl)->Enable(enabled); 85 119 XRCCTRL(*this, "ID_PROXY_PORT", wxTextCtrl)->Enable(enabled); 86 120 XRCCTRL(*this, "ID_PROXY_USER", wxTextCtrl)->Enable(enabled); 121 //XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(enabled); 122 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(enabled); 123 124 if(enabled) 125 { 126 SetAskPass(); 127 } 128 else 129 { 87 130 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(enabled); 131 } 132 } 133 134 void COptionsPageProxy::SetAskPass() 135 { 136 bool defaultAskPass = m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS); 137 bool askPass = (defaultAskPass || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? true : false); 138 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(!askPass); 139 if(defaultAskPass) 140 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(false); 88 141 } 89 142 90 143 void COptionsPageProxy::OnProxyTypeChanged(wxCommandEvent& event) 91 144 { 92 145 SetCtrlState(); 93 146 } 147 148 void COptionsPageProxy::OnProxyAskPassChanged(wxCommandEvent& event) 149 { 150 SetAskPass(); 151 } -
src/interface/settings/optionspage_proxy.h
diff -ub --recursive --new-file ../filezilla-3.3.2.1-org/src/interface/settings/optionspage_proxy.h ./src/interface/settings/optionspage_proxy.h
old new 12 12 protected: 13 13 14 14 void SetCtrlState(); 15 void SetAskPass(); 15 16 16 17 DECLARE_EVENT_TABLE(); 17 18 void OnProxyTypeChanged(wxCommandEvent& event); 19 void OnProxyAskPassChanged(wxCommandEvent& event); 18 20 }; 19 21 20 22 #endif //__OPTIONSPAGE_PROXY_H__