Resolve the make_...() methods

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
Simon Rozman 2020-02-05 10:14:14 +01:00
parent 5195b79eed
commit 5b02352f1a
13 changed files with 67 additions and 71 deletions

View File

@ -108,7 +108,7 @@ namespace eap
/// ///
/// \returns New method configuration /// \returns New method configuration
/// ///
virtual config_method* make_config_method(); virtual config_method* make_config();
/// @} /// @}

View File

@ -632,7 +632,7 @@ void eap::config_provider::load(_In_ IXMLDOMNode *pConfigRoot)
com_obj<IXMLDOMNode> pXmlElMethod; com_obj<IXMLDOMNode> pXmlElMethod;
pXmlListMethods->get_item(i, &pXmlElMethod); pXmlListMethods->get_item(i, &pXmlElMethod);
unique_ptr<config_method> cfg(m_module.make_config_method()); unique_ptr<config_method> cfg(m_module.make_config());
// Check EAP method type (<EAPMethod>). // Check EAP method type (<EAPMethod>).
DWORD dwMethodID; DWORD dwMethodID;
@ -709,7 +709,7 @@ void eap::config_provider::operator>>(_Inout_ cursor_in &cursor)
bool is_nonnull; bool is_nonnull;
cursor >> is_nonnull; cursor >> is_nonnull;
if (is_nonnull) { if (is_nonnull) {
unique_ptr<config_method> el(m_module.make_config_method()); unique_ptr<config_method> el(m_module.make_config());
cursor >> *el; cursor >> *el;
m_methods.push_back(std::move(el)); m_methods.push_back(std::move(el));
} else } else

View File

@ -187,7 +187,7 @@ void eap::module::log_error(_In_ const EAP_ERROR *err) const
} }
eap::config_method* eap::module::make_config_method() eap::config_method* eap::module::make_config()
{ {
return NULL; return NULL;
} }

View File

@ -190,7 +190,7 @@ public:
#endif #endif
// Set banner title. // Set banner title.
std::unique_ptr<eap::config_method> cfg_dummy(cfg.m_module.make_config_method()); std::unique_ptr<eap::config_method> cfg_dummy(cfg.m_module.make_config());
m_banner->m_title->SetLabel(wxString::Format("%s %s", wxT(PRODUCT_NAME_STR), cfg_dummy->get_method_str())); m_banner->m_title->SetLabel(wxString::Format("%s %s", wxT(PRODUCT_NAME_STR), cfg_dummy->get_method_str()));
for (auto provider = m_cfg.m_providers.begin(), provider_end = m_cfg.m_providers.end(); provider != provider_end; ++provider) { for (auto provider = m_cfg.m_providers.begin(), provider_end = m_cfg.m_providers.end(); provider != provider_end; ++provider) {
@ -253,7 +253,7 @@ protected:
wxEAPConfigDialogBase::OnProvAdd(event); wxEAPConfigDialogBase::OnProvAdd(event);
// One method // One method
std::unique_ptr<eap::config_method> cfg_method(m_cfg.m_module.make_config_method()); std::unique_ptr<eap::config_method> cfg_method(m_cfg.m_module.make_config());
// Create provider. // Create provider.
eap::config_provider cfg_provider(m_cfg.m_module); eap::config_provider cfg_provider(m_cfg.m_module);

View File

@ -442,7 +442,7 @@ wxEAPProviderSelectDialog::wxEAPProviderSelectDialog(eap::config_connection &cfg
wxEAPProviderSelectDialogBase(parent) wxEAPProviderSelectDialogBase(parent)
{ {
// Set banner title. // Set banner title.
std::unique_ptr<eap::config_method> cfg_dummy(cfg.m_module.make_config_method()); std::unique_ptr<eap::config_method> cfg_dummy(cfg.m_module.make_config());
m_banner->m_title->SetLabel(wxString::Format("%s %s", wxT(PRODUCT_NAME_STR), cfg_dummy->get_method_str())); m_banner->m_title->SetLabel(wxString::Format("%s %s", wxT(PRODUCT_NAME_STR), cfg_dummy->get_method_str()));
// Iterate over providers. // Iterate over providers.

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
namespace eap namespace eap
@ -157,12 +157,12 @@ namespace eap
protected: protected:
/// ///
/// Makes a new inner method /// Makes a new method
/// ///
/// \param[in] cfg Method configuration /// \param[in] cfg Method configuration
/// \param[in] cred Credentials /// \param[in] cred Credentials
/// ///
/// \returns A new inner method of given type /// \returns A new method
/// ///
virtual method* make_method(_In_ config_method_tls &cfg, _In_ credentials_tls &cred) = 0; virtual method* make_method(_In_ config_method_tls &cfg, _In_ credentials_tls &cred) = 0;

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "StdAfx.h" #include "StdAfx.h"
@ -170,7 +170,7 @@ void eap::peer_tls_base::credentials_xml2blob(
UNREFERENCED_PARAMETER(dwConnectionDataSize); UNREFERENCED_PARAMETER(dwConnectionDataSize);
// Load credentials from XML. // Load credentials from XML.
unique_ptr<config_method> cfg(make_config_method()); unique_ptr<config_method> cfg(make_config());
unique_ptr<credentials> cred(cfg->make_credentials()); unique_ptr<credentials> cred(cfg->make_credentials());
cred->load(pConfigRoot); cred->load(pConfigRoot);

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <sal.h> #include <sal.h>
@ -103,6 +103,7 @@ namespace eap
/// ///
virtual credentials* make_credentials() const; virtual credentials* make_credentials() const;
protected:
/// ///
/// Makes a new inner method config /// Makes a new inner method config
/// ///
@ -110,7 +111,7 @@ namespace eap
/// ///
/// \returns A new inner method config of given type /// \returns A new inner method config of given type
/// ///
virtual config_method* make_config_method(_In_ winstd::eap_type_t eap_type) const = 0; virtual config_method* make_inner_config(_In_ winstd::eap_type_t eap_type) const = 0;
/// ///
/// Makes a new inner method config /// Makes a new inner method config
@ -119,7 +120,7 @@ namespace eap
/// ///
/// \returns A new inner method config of given type /// \returns A new inner method config of given type
/// ///
virtual config_method* make_config_method(_In_ const wchar_t *eap_type) const = 0; virtual config_method* make_inner_config(_In_ const wchar_t *eap_type) const = 0;
public: public:
std::unique_ptr<config_method> m_inner; ///< Inner authentication configuration std::unique_ptr<config_method> m_inner; ///< Inner authentication configuration
@ -192,23 +193,16 @@ namespace eap
/// ///
virtual const wchar_t* get_method_str() const; virtual const wchar_t* get_method_str() const;
protected:
/// ///
/// Makes a new inner method config /// @copydoc eap::config_method_tls_tunnel::make_inner_config()
/// ///
/// \param[in] eap_type EAP type virtual config_method* make_inner_config(_In_ winstd::eap_type_t eap_type) const;
///
/// \returns A new inner method config of given type
///
virtual config_method* make_config_method(_In_ winstd::eap_type_t eap_type) const;
/// ///
/// Makes a new inner method config /// @copydoc eap::config_method_tls_tunnel::make_inner_config()
/// ///
/// \param[in] eap_type EAP type virtual config_method* make_inner_config(_In_ const wchar_t *eap_type) const;
///
/// \returns A new inner method config of given type
///
virtual config_method* make_config_method(_In_ const wchar_t *eap_type) const;
}; };
/// @} /// @}

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
namespace eap namespace eap
@ -78,13 +78,15 @@ namespace eap
peer_ttls(); peer_ttls();
/// ///
/// @copydoc eap::method::make_config_method() /// @copydoc eap::method::make_config()
/// \returns This implementation always returns `eap::config_method_ttls` type of configuration /// \returns This implementation always returns `eap::config_method_ttls` type of configuration
/// ///
virtual config_method* make_config_method(); virtual config_method* make_config();
protected: protected:
/// @copydoc eap::method::make_config_method() ///
/// @copydoc eap::peer_tls_base::make_method()
///
virtual method* make_method(_In_ config_method_tls &cfg, _In_ credentials_tls &cred); virtual method* make_method(_In_ config_method_tls &cfg, _In_ credentials_tls &cred);
}; };

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "StdAfx.h" #include "StdAfx.h"
@ -95,7 +95,7 @@ void eap::config_method_tls_tunnel::operator>>(_Inout_ cursor_in &cursor)
eap_type_t eap_type; eap_type_t eap_type;
cursor >> eap_type; cursor >> eap_type;
m_inner.reset(make_config_method(eap_type)); m_inner.reset(make_inner_config(eap_type));
cursor >> *m_inner; cursor >> *m_inner;
} }
@ -253,10 +253,10 @@ void eap::config_method_ttls::load(_In_ IXMLDOMNode *pConfigRoot)
#endif #endif
)) ))
{ {
m_inner.reset(make_config_method((eap_type_t)dwMethod)); m_inner.reset(make_inner_config((eap_type_t)dwMethod));
m_module.log_config((xpath + L"/EAPMethod").c_str(), m_inner->get_method_str()); m_module.log_config((xpath + L"/EAPMethod").c_str(), m_inner->get_method_str());
} else if (SUCCEEDED(eapxml::get_element_value(pXmlElInnerAuthenticationMethod, bstr(L"eap-metadata:NonEAPAuthMethod"), bstrMethod))) { } else if (SUCCEEDED(eapxml::get_element_value(pXmlElInnerAuthenticationMethod, bstr(L"eap-metadata:NonEAPAuthMethod"), bstrMethod))) {
m_inner.reset(make_config_method(bstrMethod)); m_inner.reset(make_inner_config(bstrMethod));
m_module.log_config((xpath + L"/NonEAPAuthMethod").c_str(), m_inner->get_method_str()); m_module.log_config((xpath + L"/NonEAPAuthMethod").c_str(), m_inner->get_method_str());
} else } else
throw win_runtime_error(ERROR_NOT_SUPPORTED, __FUNCTION__ " Unsupported inner authentication method."); throw win_runtime_error(ERROR_NOT_SUPPORTED, __FUNCTION__ " Unsupported inner authentication method.");
@ -277,7 +277,7 @@ const wchar_t* eap::config_method_ttls::get_method_str() const
} }
eap::config_method* eap::config_method_ttls::make_config_method(_In_ winstd::eap_type_t eap_type) const eap::config_method* eap::config_method_ttls::make_inner_config(_In_ winstd::eap_type_t eap_type) const
{ {
switch (eap_type) { switch (eap_type) {
case eap_type_t::legacy_pap : return new config_method_pap (m_module, m_level + 1); case eap_type_t::legacy_pap : return new config_method_pap (m_module, m_level + 1);
@ -292,7 +292,7 @@ eap::config_method* eap::config_method_ttls::make_config_method(_In_ winstd::eap
} }
eap::config_method* eap::config_method_ttls::make_config_method(_In_ const wchar_t *eap_type) const eap::config_method* eap::config_method_ttls::make_inner_config(_In_ const wchar_t *eap_type) const
{ {
if (_wcsicmp(eap_type, L"PAP" ) == 0) return new config_method_pap (m_module, m_level + 1); if (_wcsicmp(eap_type, L"PAP" ) == 0) return new config_method_pap (m_module, m_level + 1);
else if (_wcsicmp(eap_type, L"MSCHAPv2" ) == 0) return new config_method_mschapv2 (m_module, m_level + 1); else if (_wcsicmp(eap_type, L"MSCHAPv2" ) == 0) return new config_method_mschapv2 (m_module, m_level + 1);

View File

@ -165,7 +165,7 @@ eap::peer_ttls::peer_ttls() : peer_tls_tunnel(eap_type_t::ttls)
} }
eap::config_method* eap::peer_ttls::make_config_method() eap::config_method* eap::peer_ttls::make_config()
{ {
return new config_method_ttls(*this, 0); return new config_method_ttls(*this, 0);
} }

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
namespace eap namespace eap
@ -47,10 +47,10 @@ namespace eap
peer_ttls_ui(); peer_ttls_ui();
/// ///
/// @copydoc eap::method::make_config_method() /// @copydoc eap::method::make_config()
/// \returns This implementation always returns `eap::config_method_ttls` type of configuration /// \returns This implementation always returns `eap::config_method_ttls` type of configuration
/// ///
virtual config_method* make_config_method(); virtual config_method* make_config();
virtual void invoke_config_ui( virtual void invoke_config_ui(
_In_ HWND hwndParent, _In_ HWND hwndParent,

View File

@ -1,21 +1,21 @@
/* /*
Copyright 2015-2020 Amebis Copyright 2015-2020 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of GÉANTLink. This file is part of GÉANTLink.
GÉANTLink is free software: you can redistribute it and/or modify it GÉANTLink is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
GÉANTLink is distributed in the hope that it will be useful, but GÉANTLink is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>. along with GÉANTLink. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "StdAfx.h" #include "StdAfx.h"
@ -33,7 +33,7 @@ eap::peer_ttls_ui::peer_ttls_ui() : peer_ui(eap_type_t::ttls, _T("EAP-TTLS_UI"))
} }
eap::config_method* eap::peer_ttls_ui::make_config_method() eap::config_method* eap::peer_ttls_ui::make_config()
{ {
return new config_method_ttls(*this, 0); return new config_method_ttls(*this, 0);
} }