diff --git a/clientgui/DlgOptions.cpp b/clientgui/DlgOptions.cpp index f56e8d2b92..b3d7e95e42 100644 --- a/clientgui/DlgOptions.cpp +++ b/clientgui/DlgOptions.cpp @@ -69,7 +69,7 @@ bool CDlgOptions::Create( wxWindow* parent, wxWindowID id, const wxString& capti m_SOCKSAddressCtrl = NULL; m_SOCKSPortCtrl = NULL; m_SOCKSUsernameCtrl = NULL; - m_SOCKPasswordCtrl = NULL; + m_SOCKSPasswordCtrl = NULL; SetExtraStyle(wxWS_EX_BLOCK_EVENTS); wxDialog::Create( parent, id, caption, pos, size, style ); @@ -219,7 +219,7 @@ void CDlgOptions::CreateControls() wxTextCtrl* itemTextCtrl38 = new wxTextCtrl; itemTextCtrl38->Create( itemPanel23, ID_SOCKSPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); - m_SOCKPasswordCtrl = itemTextCtrl38; + m_SOCKSPasswordCtrl = itemTextCtrl38; itemFlexGridSizer34->Add(itemTextCtrl38, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); itemNotebook3->AddPage(itemPanel23, _("SOCKS Proxy")); @@ -255,28 +255,104 @@ void CDlgOptions::OnNotebookUpdate( wxUpdateUIEvent& event ) void CDlgOptions::OnEnableHTTPProxyCtrlClick( wxCommandEvent& event ) { - // Insert custom code here + if ( event.IsChecked() ) + { + m_HTTPAddressCtrl->Enable(true); + m_HTTPPortCtrl->Enable(true); + m_HTTPUsernameCtrl->Enable(true); + m_HTTPPasswordCtrl->Enable(true); + } + else + { + m_HTTPAddressCtrl->Enable(false); + m_HTTPPortCtrl->Enable(false); + m_HTTPUsernameCtrl->Enable(false); + m_HTTPPasswordCtrl->Enable(false); + } event.Skip(); } void CDlgOptions::OnEnableHTTPProxyCtrlUpdate( wxUpdateUIEvent& event ) { - // Insert custom code here + if ( m_bProxySectionConfigured ) + { + m_EnableHTTPProxyCtrl->Enable(true); + if ( m_EnableHTTPProxyCtrl->IsChecked() ) + { + m_HTTPAddressCtrl->Enable(true); + m_HTTPPortCtrl->Enable(true); + m_HTTPUsernameCtrl->Enable(true); + m_HTTPPasswordCtrl->Enable(true); + } + else + { + m_HTTPAddressCtrl->Enable(false); + m_HTTPPortCtrl->Enable(false); + m_HTTPUsernameCtrl->Enable(false); + m_HTTPPasswordCtrl->Enable(false); + } + } + else + { + m_EnableHTTPProxyCtrl->Enable(false); + m_HTTPAddressCtrl->Enable(false); + m_HTTPPortCtrl->Enable(false); + m_HTTPUsernameCtrl->Enable(false); + m_HTTPPasswordCtrl->Enable(false); + } event.Skip(); } void CDlgOptions::OnEnableSOCKSProxyCtrlClick( wxCommandEvent& event ) { - // Insert custom code here + if ( event.IsChecked() ) + { + m_SOCKSAddressCtrl->Enable(true); + m_SOCKSPortCtrl->Enable(true); + m_SOCKSUsernameCtrl->Enable(true); + m_SOCKSPasswordCtrl->Enable(true); + } + else + { + m_SOCKSAddressCtrl->Enable(false); + m_SOCKSPortCtrl->Enable(false); + m_SOCKSUsernameCtrl->Enable(false); + m_SOCKSPasswordCtrl->Enable(false); + } event.Skip(); } void CDlgOptions::OnEnableSOCKSProxyCtrlUpdate( wxUpdateUIEvent& event ) { - // Insert custom code here + if ( m_bProxySectionConfigured ) + { + m_EnableSOCKSProxyCtrl->Enable(true); + if ( m_EnableSOCKSProxyCtrl->IsChecked() ) + { + m_SOCKSAddressCtrl->Enable(true); + m_SOCKSPortCtrl->Enable(true); + m_SOCKSUsernameCtrl->Enable(true); + m_SOCKSPasswordCtrl->Enable(true); + } + else + { + m_SOCKSAddressCtrl->Enable(false); + m_SOCKSPortCtrl->Enable(false); + m_SOCKSUsernameCtrl->Enable(false); + m_SOCKSPasswordCtrl->Enable(false); + } + } + else + { + m_EnableSOCKSProxyCtrl->Enable(false); + m_SOCKSAddressCtrl->Enable(false); + m_SOCKSPortCtrl->Enable(false); + m_SOCKSUsernameCtrl->Enable(false); + m_SOCKSPasswordCtrl->Enable(false); + } event.Skip(); } diff --git a/clientgui/DlgOptions.h b/clientgui/DlgOptions.h index 9f8edca57b..94e21d4476 100644 --- a/clientgui/DlgOptions.h +++ b/clientgui/DlgOptions.h @@ -102,7 +102,7 @@ public: wxTextCtrl* m_SOCKSAddressCtrl; wxTextCtrl* m_SOCKSPortCtrl; wxTextCtrl* m_SOCKSUsernameCtrl; - wxTextCtrl* m_SOCKPasswordCtrl; + wxTextCtrl* m_SOCKSPasswordCtrl; }; #endif diff --git a/clientgui/MainDocument.cpp b/clientgui/MainDocument.cpp index 0911420660..a946b6889b 100644 --- a/clientgui/MainDocument.cpp +++ b/clientgui/MainDocument.cpp @@ -1411,20 +1411,14 @@ wxInt32 CMainDocument::GetProxyConfiguration() wxInt32 CMainDocument::GetProxyHTTPProxyEnabled( bool& bEnabled ) { - bEnabled = proxy_info.use_http_authentication; - return 0; -} - - -wxInt32 CMainDocument::GetProxyHTTPAuthenticationEnabled( bool& bEnabled ) -{ - bEnabled = proxy_info.use_http_authentication; + bEnabled = proxy_info.use_http_proxy; return 0; } wxInt32 CMainDocument::GetProxyHTTPServerName( wxString& strServerName ) { + strServerName.Clear(); strServerName = proxy_info.http_server_name.c_str(); return 0; } @@ -1439,6 +1433,7 @@ wxInt32 CMainDocument::GetProxyHTTPServerPort( wxInt32& iPortNumber ) wxInt32 CMainDocument::GetProxyHTTPUserName( wxString& strUserName ) { + strUserName.Clear(); strUserName = proxy_info.http_user_name.c_str(); return 0; } @@ -1446,6 +1441,7 @@ wxInt32 CMainDocument::GetProxyHTTPUserName( wxString& strUserName ) wxInt32 CMainDocument::GetProxyHTTPPassword( wxString& strPassword ) { + strPassword.Clear(); strPassword = proxy_info.http_user_passwd.c_str(); return 0; } @@ -1458,15 +1454,9 @@ wxInt32 CMainDocument::GetProxySOCKSProxyEnabled( bool& bEnabled ) } -wxInt32 CMainDocument::GetProxySOCKSVersion( wxInt32& iVersion ) -{ - iVersion = proxy_info.socks_version; - return 0; -} - - wxInt32 CMainDocument::GetProxySOCKSServerName( wxString& strServerName ) { + strServerName.Clear(); strServerName = proxy_info.socks_server_name.c_str(); return 0; } @@ -1481,6 +1471,7 @@ wxInt32 CMainDocument::GetProxySOCKSServerPort( wxInt32& iPortNumber ) wxInt32 CMainDocument::GetProxySOCKSUserName( wxString& strUserName ) { + strUserName.Clear(); strUserName = proxy_info.socks5_user_name.c_str(); return 0; } @@ -1488,6 +1479,7 @@ wxInt32 CMainDocument::GetProxySOCKSUserName( wxString& strUserName ) wxInt32 CMainDocument::GetProxySOCKSPassword( wxString& strPassword ) { + strPassword.Clear(); strPassword = proxy_info.socks5_user_passwd.c_str(); return 0; } @@ -1497,7 +1489,7 @@ wxInt32 CMainDocument::SetProxyConfiguration() { wxInt32 retval = 0; - retval = rpc.set_proxy_settings(proxy_info); + retval = rpc.set_proxy_settings( proxy_info ); if (retval) { wxLogTrace("CMainDocument::SetProxyInfo - Set Proxy Info Failed '%d'", retval); @@ -1510,14 +1502,7 @@ wxInt32 CMainDocument::SetProxyConfiguration() wxInt32 CMainDocument::SetProxyHTTPProxyEnabled( const bool bEnabled ) { - proxy_info.use_http_authentication = bEnabled; - return 0; -} - - -wxInt32 CMainDocument::SetProxyHTTPAuthenticationEnabled( const bool bEnabled ) -{ - proxy_info.use_http_authentication = bEnabled; + proxy_info.use_http_proxy = bEnabled; return 0; } @@ -1557,13 +1542,6 @@ wxInt32 CMainDocument::SetProxySOCKSProxyEnabled( const bool bEnabled ) } -wxInt32 CMainDocument::SetProxySOCKSVersion( const wxInt32 iVersion ) -{ - proxy_info.socks_version = iVersion; - return 0; -} - - wxInt32 CMainDocument::SetProxySOCKSServerName( const wxString& strServerName ) { proxy_info.socks_server_name = strServerName.c_str(); diff --git a/clientgui/MainDocument.h b/clientgui/MainDocument.h index d17ef8f1fa..d5eaea1f4e 100644 --- a/clientgui/MainDocument.h +++ b/clientgui/MainDocument.h @@ -246,13 +246,11 @@ public: wxInt32 GetProxyConfiguration(); wxInt32 GetProxyHTTPProxyEnabled( bool& bEnabled ); - wxInt32 GetProxyHTTPAuthenticationEnabled( bool& bEnabled ); wxInt32 GetProxyHTTPServerName( wxString& strServerName ); wxInt32 GetProxyHTTPServerPort( wxInt32& iPortNumber ); wxInt32 GetProxyHTTPUserName( wxString& strUserName ); wxInt32 GetProxyHTTPPassword( wxString& strPassword ); wxInt32 GetProxySOCKSProxyEnabled( bool& bEnabled ); - wxInt32 GetProxySOCKSVersion( wxInt32& iVersion ); wxInt32 GetProxySOCKSServerName( wxString& strServerName ); wxInt32 GetProxySOCKSServerPort( wxInt32& iPortNumber ); wxInt32 GetProxySOCKSUserName( wxString& strUserName ); @@ -260,13 +258,11 @@ public: wxInt32 SetProxyConfiguration(); wxInt32 SetProxyHTTPProxyEnabled( const bool bEnabled ); - wxInt32 SetProxyHTTPAuthenticationEnabled( const bool bEnabled ); wxInt32 SetProxyHTTPServerName( const wxString& strServerName ); wxInt32 SetProxyHTTPServerPort( const wxInt32 iPortNumber ); wxInt32 SetProxyHTTPUserName( const wxString& strUserName ); wxInt32 SetProxyHTTPPassword( const wxString& strPassword ); wxInt32 SetProxySOCKSProxyEnabled( const bool bEnabled ); - wxInt32 SetProxySOCKSVersion( const wxInt32 iVersion ); wxInt32 SetProxySOCKSServerName( const wxString& strServerName ); wxInt32 SetProxySOCKSServerPort( const wxInt32 iPortNumber ); wxInt32 SetProxySOCKSUserName( const wxString& strUserName ); diff --git a/clientgui/MainFrame.cpp b/clientgui/MainFrame.cpp index 57e1848049..b8a29cd44a 100644 --- a/clientgui/MainFrame.cpp +++ b/clientgui/MainFrame.cpp @@ -531,18 +531,78 @@ void CMainFrame::OnToolsOptions( wxCommandEvent& WXUNUSED(event) ) CMainDocument* pDoc = wxGetApp().GetDocument(); CDlgOptions* pDlg = new CDlgOptions(this); wxInt32 iAnswer = 0; + bool bProxyInformationConfigured = false; + bool bBuffer = false; + wxInt32 iBuffer = 0; + wxString strBuffer = wxEmptyString; wxASSERT(NULL != pDoc); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); wxASSERT(NULL != pDlg); - - iAnswer = pDlg->ShowModal(); - if ( wxOK == iAnswer ) + bProxyInformationConfigured = ( 0 == pDoc->GetProxyConfiguration() ); + if ( bProxyInformationConfigured ) { + pDlg->m_bProxySectionConfigured = true; + if ( 0 == pDoc->GetProxyHTTPProxyEnabled( bBuffer ) ) + pDlg->m_EnableHTTPProxyCtrl->SetValue( bBuffer ); + if ( 0 == pDoc->GetProxyHTTPServerName( strBuffer ) ) + pDlg->m_HTTPAddressCtrl->SetValue( strBuffer ); + if ( 0 == pDoc->GetProxyHTTPServerPort( iBuffer ) ) + { + strBuffer.Printf( wxT("%d"), iBuffer ); + pDlg->m_HTTPPortCtrl->SetValue( strBuffer ); + } + if ( 0 == pDoc->GetProxyHTTPUserName( strBuffer ) ) + pDlg->m_HTTPUsernameCtrl->SetValue( strBuffer ); + if ( 0 == pDoc->GetProxyHTTPPassword( strBuffer ) ) + pDlg->m_HTTPPasswordCtrl->SetValue( strBuffer ); + + if ( 0 == pDoc->GetProxySOCKSProxyEnabled( bBuffer ) ) + pDlg->m_EnableSOCKSProxyCtrl->SetValue( bBuffer ); + if ( 0 == pDoc->GetProxySOCKSServerName( strBuffer ) ) + pDlg->m_SOCKSAddressCtrl->SetValue( strBuffer ); + if ( 0 == pDoc->GetProxySOCKSServerPort( iBuffer ) ) + { + strBuffer.Printf( wxT("%d"), iBuffer ); + pDlg->m_SOCKSPortCtrl->SetValue( strBuffer ); + } + if ( 0 == pDoc->GetProxySOCKSUserName( strBuffer ) ) + pDlg->m_SOCKSUsernameCtrl->SetValue( strBuffer ); + if ( 0 == pDoc->GetProxySOCKSPassword( strBuffer ) ) + pDlg->m_SOCKSPasswordCtrl->SetValue( strBuffer ); } + iAnswer = pDlg->ShowModal(); + if ( wxID_OK == iAnswer ) + { + bBuffer = pDlg->m_EnableHTTPProxyCtrl->GetValue(); + pDoc->SetProxyHTTPProxyEnabled( bBuffer ); + strBuffer = pDlg->m_HTTPAddressCtrl->GetValue(); + pDoc->SetProxyHTTPServerName( strBuffer ); + strBuffer = pDlg->m_HTTPPortCtrl->GetValue(); + strBuffer.ToLong( (long*)&iBuffer ); + pDoc->SetProxyHTTPServerPort( iBuffer ); + strBuffer = pDlg->m_HTTPUsernameCtrl->GetValue(); + pDoc->SetProxyHTTPUserName( strBuffer ); + strBuffer = pDlg->m_HTTPPasswordCtrl->GetValue(); + pDoc->SetProxyHTTPPassword( strBuffer ); + bBuffer = pDlg->m_EnableHTTPProxyCtrl->GetValue(); + + pDoc->SetProxySOCKSProxyEnabled( bBuffer ); + strBuffer = pDlg->m_SOCKSAddressCtrl->GetValue(); + pDoc->SetProxySOCKSServerName( strBuffer ); + strBuffer = pDlg->m_SOCKSPortCtrl->GetValue(); + strBuffer.ToLong( (long*)&iBuffer ); + pDoc->SetProxySOCKSServerPort( iBuffer ); + strBuffer = pDlg->m_SOCKSUsernameCtrl->GetValue(); + pDoc->SetProxySOCKSUserName( strBuffer ); + strBuffer = pDlg->m_SOCKSPasswordCtrl->GetValue(); + pDoc->SetProxySOCKSPassword( strBuffer ); + + pDoc->SetProxyConfiguration(); + } if (pDlg) pDlg->Destroy(); diff --git a/lib/gui_rpc_client.C b/lib/gui_rpc_client.C index 74b83aeaf4..9ce7e0764e 100644 --- a/lib/gui_rpc_client.C +++ b/lib/gui_rpc_client.C @@ -1254,30 +1254,30 @@ int RPC_CLIENT::run_benchmarks() { } int RPC_CLIENT::set_proxy_settings(PROXY_INFO& pi) { - char buf[256]; + char buf[1024]; RPC rpc(this); sprintf(buf, "\n%s%s" " \n" - " %s\n" - " %d\n" " %s\n" " %d\n" - " %d\n" - " %d\n" - " %d\n" - " %d\n" + " %s\n" + " %s\n" + " %s\n" + " %d\n" + " %s\n" + " %s\n" " \n" "\n", pi.use_http_proxy?" \n":"", pi.use_socks_proxy?" \n":"", - pi.socks_server_name.c_str(), - pi.socks_server_port, pi.http_server_name.c_str(), pi.http_server_port, pi.http_user_name.c_str(), pi.http_user_passwd.c_str(), + pi.socks_server_name.c_str(), + pi.socks_server_port, pi.socks5_user_name.c_str(), pi.socks5_user_passwd.c_str() );