Index: /home/cloud/repositories/springlobby/src/connectwindow.cpp =================================================================== --- /home/cloud/repositories/springlobby/src/connectwindow.cpp (revisione 610) +++ /home/cloud/repositories/springlobby/src/connectwindow.cpp (copia locale) @@ -201,13 +201,16 @@ void ConnectWindow::OnOk(wxCommandEvent& event) { Hide(); + wxString ServerAddress = m_server_combo->GetValue(); + if ( ServerAddress != _T( DEFSETT_DEFAULT_SERVER ) && !ServerAddress.Contains( _T(":") ) ) ServerAddress += _T(":") + wxString::Format( _T("%l"), DEFSETT_DEFAULT_SERVER_PORT ); + std::string value = STD_STRING ( ServerAddress ); if ( m_tabs->GetSelection() <= 0 ) { - sett().SetDefaultServer( STD_STRING(m_server_combo->GetValue()) ); - sett().SetServerAccountNick( STD_STRING(m_server_combo->GetValue()), STD_STRING(m_nick_text->GetValue()) ); - sett().SetServerAccountSavePass( STD_STRING(m_server_combo->GetValue()), m_rpass_check->GetValue() ); + sett().SetDefaultServer( STD_STRING( ServerAddress ) ); + sett().SetServerAccountNick( STD_STRING( ServerAddress ), STD_STRING(m_nick_text->GetValue()) ); + sett().SetServerAccountSavePass( STD_STRING( ServerAddress ), m_rpass_check->GetValue() ); // We assume that the server is given as : "host:port" so we split based on ":" - wxArrayString serverString = wxStringTokenize(m_server_combo->GetValue(),_T(":") ); + wxArrayString serverString = wxStringTokenize(ServerAddress,_T(":") ); if ( serverString.GetCount() == 0 ) { wxMessageBox( _("Invalid host/port or servername."), _("Invalid host"), wxOK ); @@ -220,9 +223,14 @@ wxMessageBox( _("Invalid port."), _("Invalid port"), wxOK ); return; } - sett().AddServer( STD_STRING(m_server_combo->GetValue()) ); - sett().SetServerHost( STD_STRING(m_server_combo->GetValue()),STD_STRING(serverString[0]) ); - sett().SetServerPort( STD_STRING(m_server_combo->GetValue()), (int)port ); + if ( port < 1 || port > 65535 ) { + wxMessageBox( _("Port number out of range.\n\nMust be a integer between 1 and 65535"), _("Invalid port"), wxOK ); + return; + + } + sett().AddServer( STD_STRING( ServerAddress ) ); + sett().SetServerHost( STD_STRING( ServerAddress ),STD_STRING(serverString[0]) ); + sett().SetServerPort( STD_STRING( ServerAddress ), (int)port ); } if ( serverString.GetCount() != 1 && serverString.GetCount() != 2 ) { @@ -232,15 +240,17 @@ sett().SaveSettings(); - m_ui.DoConnect( m_server_combo->GetValue(), m_nick_text->GetValue(), m_pass_text->GetValue() ); - } else { - if ( m_ui.DoRegister( m_server_combo->GetValue(), m_regnick_text->GetValue(), m_regpass1_text->GetValue() ) ) { + m_ui.DoConnect( ServerAddress, m_nick_text->GetValue(), m_pass_text->GetValue() ); + } + else { + if ( m_ui.DoRegister( ServerAddress, m_regnick_text->GetValue(), m_regpass1_text->GetValue() ) ) { m_tabs->SetSelection( 0 ); m_nick_text->SetValue(m_regnick_text->GetValue()); m_pass_text->SetValue(m_regpass1_text->GetValue()); Show(); wxMessageBox( _("Registration successful,\nyou should now be able to login."), _("Registration successful"), wxOK ); - } else { + } + else { Show(); wxMessageBox( _("Registration failed."), _("Registration failed"), wxOK ); }