eap::config split to eap::config and eap::packable
This commit is contained in:
parent
527d4271b1
commit
66dd2bf283
@ -31,36 +31,6 @@ namespace eap
|
|||||||
class config_connection;
|
class config_connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \addtogroup EAPBaseStream
|
|
||||||
/// @{
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Packs a configuration
|
|
||||||
///
|
|
||||||
/// \param[inout] cursor Memory cursor
|
|
||||||
/// \param[in] val Configuration to pack
|
|
||||||
///
|
|
||||||
inline void operator<<(_Inout_ eap::cursor_out &cursor, _In_ const eap::config &val);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns packed size of a configuration
|
|
||||||
///
|
|
||||||
/// \param[in] val Configuration to pack
|
|
||||||
///
|
|
||||||
/// \returns Size of data when packed (in bytes)
|
|
||||||
///
|
|
||||||
inline size_t pksizeof(_In_ const eap::config &val);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Unpacks a configuration
|
|
||||||
///
|
|
||||||
/// \param[inout] cursor Memory cursor
|
|
||||||
/// \param[out] val Configuration to unpack to
|
|
||||||
///
|
|
||||||
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::config &val);
|
|
||||||
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Module.h"
|
#include "Module.h"
|
||||||
@ -89,9 +59,9 @@ namespace eap
|
|||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Base class for configuration storage
|
/// Base class for packable and XML-exportable storage
|
||||||
///
|
///
|
||||||
class config
|
class config : public packable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -160,32 +130,6 @@ namespace eap
|
|||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/// \name BLOB management
|
|
||||||
/// @{
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Packs this object
|
|
||||||
///
|
|
||||||
/// \param[inout] cursor Memory cursor
|
|
||||||
///
|
|
||||||
virtual void operator<<(_Inout_ cursor_out &cursor) const;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns packed size of this object
|
|
||||||
///
|
|
||||||
/// \returns Size of data when packed (in bytes)
|
|
||||||
///
|
|
||||||
virtual size_t get_pk_size() const;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Unpacks this object
|
|
||||||
///
|
|
||||||
/// \param[inout] cursor Memory cursor
|
|
||||||
///
|
|
||||||
virtual void operator>>(_Inout_ cursor_in &cursor);
|
|
||||||
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
module &m_module; ///< EAP module
|
module &m_module; ///< EAP module
|
||||||
|
|
||||||
@ -530,24 +474,6 @@ namespace eap
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline void operator<<(_Inout_ eap::cursor_out &cursor, _In_ const eap::config &val)
|
|
||||||
{
|
|
||||||
val.operator<<(cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
inline size_t pksizeof(_In_ const eap::config &val)
|
|
||||||
{
|
|
||||||
return val.get_pk_size();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::config &val)
|
|
||||||
{
|
|
||||||
val.operator>>(cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// \addtogroup EAPBaseStream
|
/// \addtogroup EAPBaseStream
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
|
@ -80,6 +80,8 @@ namespace eap
|
|||||||
struct cursor_out;
|
struct cursor_out;
|
||||||
struct cursor_in;
|
struct cursor_in;
|
||||||
|
|
||||||
|
class packable;
|
||||||
|
|
||||||
template<size_t N> struct WINSTD_NOVTABLE sanitizing_blob_f;
|
template<size_t N> struct WINSTD_NOVTABLE sanitizing_blob_f;
|
||||||
template<size_t N> struct WINSTD_NOVTABLE sanitizing_blob_zf;
|
template<size_t N> struct WINSTD_NOVTABLE sanitizing_blob_zf;
|
||||||
|
|
||||||
@ -499,6 +501,31 @@ inline size_t pksizeof(_In_ const EAP_METHOD_TYPE &val);
|
|||||||
///
|
///
|
||||||
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ EAP_METHOD_TYPE &val);
|
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ EAP_METHOD_TYPE &val);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Packs a packable object
|
||||||
|
///
|
||||||
|
/// \param[inout] cursor Memory cursor
|
||||||
|
/// \param[in] val Object to pack
|
||||||
|
///
|
||||||
|
inline void operator<<(_Inout_ eap::cursor_out &cursor, _In_ const eap::packable &val);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns packed size of a packable object
|
||||||
|
///
|
||||||
|
/// \param[in] val Object to pack
|
||||||
|
///
|
||||||
|
/// \returns Size of data when packed (in bytes)
|
||||||
|
///
|
||||||
|
inline size_t pksizeof(_In_ const eap::packable &val);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Unpacks a packable object
|
||||||
|
///
|
||||||
|
/// \param[inout] cursor Memory cursor
|
||||||
|
/// \param[out] val Object to unpack to
|
||||||
|
///
|
||||||
|
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::packable &val);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -574,6 +601,45 @@ namespace eap
|
|||||||
ptr_type ptr_end; ///< Pointer to the end of BLOB
|
ptr_type ptr_end; ///< Pointer to the end of BLOB
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Base class for all packable data classes
|
||||||
|
///
|
||||||
|
class packable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
///
|
||||||
|
/// Constructs configuration
|
||||||
|
///
|
||||||
|
packable();
|
||||||
|
|
||||||
|
/// \name BLOB management
|
||||||
|
/// @{
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Packs this object
|
||||||
|
///
|
||||||
|
/// \param[inout] cursor Memory cursor
|
||||||
|
///
|
||||||
|
virtual void operator<<(_Inout_ cursor_out &cursor) const;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns packed size of this object
|
||||||
|
///
|
||||||
|
/// \returns Size of data when packed (in bytes)
|
||||||
|
///
|
||||||
|
virtual size_t get_pk_size() const;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Unpacks this object
|
||||||
|
///
|
||||||
|
/// \param[inout] cursor Memory cursor
|
||||||
|
///
|
||||||
|
virtual void operator>>(_Inout_ cursor_in &cursor);
|
||||||
|
|
||||||
|
/// @}
|
||||||
|
};
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/// \addtogroup EAPBaseSanitizing
|
/// \addtogroup EAPBaseSanitizing
|
||||||
@ -1198,6 +1264,24 @@ inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ EAP_METHOD_TYPE &va
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline void operator<<(_Inout_ eap::cursor_out &cursor, _In_ const eap::packable &val)
|
||||||
|
{
|
||||||
|
val.operator<<(cursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline size_t pksizeof(_In_ const eap::packable &val)
|
||||||
|
{
|
||||||
|
return val.get_pk_size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::packable &val)
|
||||||
|
{
|
||||||
|
val.operator>>(cursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef htonll
|
#ifndef htonll
|
||||||
|
|
||||||
inline unsigned __int64 htonll(unsigned __int64 val)
|
inline unsigned __int64 htonll(unsigned __int64 val)
|
||||||
|
@ -43,17 +43,16 @@ namespace eap
|
|||||||
///
|
///
|
||||||
/// UI context
|
/// UI context
|
||||||
///
|
///
|
||||||
class ui_context : public config
|
class ui_context : public packable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
/// Constructs context
|
/// Constructs context
|
||||||
///
|
///
|
||||||
/// \param[in] mod EAP module to use for global services
|
|
||||||
/// \param[in] cfg Connection configuration
|
/// \param[in] cfg Connection configuration
|
||||||
/// \param[in] cred Connection credentials
|
/// \param[in] cred Connection credentials
|
||||||
///
|
///
|
||||||
ui_context(_In_ module &mod, _In_ config_connection &cfg, _In_ credentials_connection &cred);
|
ui_context(_In_ config_connection &cfg, _In_ credentials_connection &cred);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Copies context
|
/// Copies context
|
||||||
|
@ -77,24 +77,6 @@ void eap::config::load(_In_ IXMLDOMNode *pConfigRoot)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void eap::config::operator<<(_Inout_ cursor_out &cursor) const
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
size_t eap::config::get_pk_size() const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void eap::config::operator>>(_Inout_ cursor_in &cursor)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const bstr eap::config::namespace_eapmetadata(L"urn:ietf:params:xml:ns:yang:ietf-eap-metadata");
|
const bstr eap::config::namespace_eapmetadata(L"urn:ietf:params:xml:ns:yang:ietf-eap-metadata");
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,10 +20,39 @@
|
|||||||
|
|
||||||
#include "StdAfx.h"
|
#include "StdAfx.h"
|
||||||
|
|
||||||
|
#pragma comment(lib, "Ws2_32.lib")
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace winstd;
|
using namespace winstd;
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
// eap::packable
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
eap::packable::packable()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void eap::packable::operator<<(_Inout_ cursor_out &cursor) const
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(cursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
size_t eap::packable::get_pk_size() const
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void eap::packable::operator>>(_Inout_ cursor_in &cursor)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(cursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// eap::diameter_avp_append
|
// eap::diameter_avp_append
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
@ -28,8 +28,7 @@ using namespace winstd;
|
|||||||
// eap::ui_context
|
// eap::ui_context
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
eap::ui_context::ui_context(_In_ module &mod, _In_ config_connection &cfg, _In_ credentials_connection &cred) :
|
eap::ui_context::ui_context(_In_ config_connection &cfg, _In_ credentials_connection &cred) :
|
||||||
config(mod),
|
|
||||||
m_cfg(cfg),
|
m_cfg(cfg),
|
||||||
m_cred(cred)
|
m_cred(cred)
|
||||||
{
|
{
|
||||||
@ -37,17 +36,17 @@ eap::ui_context::ui_context(_In_ module &mod, _In_ config_connection &cfg, _In_
|
|||||||
|
|
||||||
|
|
||||||
eap::ui_context::ui_context(_In_ const ui_context &other) :
|
eap::ui_context::ui_context(_In_ const ui_context &other) :
|
||||||
m_cfg (other.m_cfg ),
|
m_cfg (other.m_cfg ),
|
||||||
m_cred(other.m_cred),
|
m_cred (other.m_cred),
|
||||||
config(other )
|
packable(other )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
eap::ui_context::ui_context(_Inout_ ui_context &&other) :
|
eap::ui_context::ui_context(_Inout_ ui_context &&other) :
|
||||||
m_cfg ( other.m_cfg ),
|
m_cfg ( other.m_cfg ),
|
||||||
m_cred( other.m_cred ),
|
m_cred ( other.m_cred ),
|
||||||
config(std::move(other ))
|
packable(std::move(other ))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +56,7 @@ eap::ui_context& eap::ui_context::operator=(_In_ const ui_context &other)
|
|||||||
if (this != &other) {
|
if (this != &other) {
|
||||||
assert(std::addressof(m_cfg ) == std::addressof(other.m_cfg )); // Copy context within same configuration only!
|
assert(std::addressof(m_cfg ) == std::addressof(other.m_cfg )); // Copy context within same configuration only!
|
||||||
assert(std::addressof(m_cred) == std::addressof(other.m_cred)); // Copy context within same credentials only!
|
assert(std::addressof(m_cred) == std::addressof(other.m_cred)); // Copy context within same credentials only!
|
||||||
(config&)*this = other;
|
(packable&)*this = other;
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
@ -69,7 +68,7 @@ eap::ui_context& eap::ui_context::operator=(_Inout_ ui_context &&other)
|
|||||||
if (this != &other) {
|
if (this != &other) {
|
||||||
assert(std::addressof(m_cfg ) == std::addressof(other.m_cfg )); // Move context within same configuration only!
|
assert(std::addressof(m_cfg ) == std::addressof(other.m_cfg )); // Move context within same configuration only!
|
||||||
assert(std::addressof(m_cred) == std::addressof(other.m_cred)); // Move context within same credentials only!
|
assert(std::addressof(m_cred) == std::addressof(other.m_cred)); // Move context within same credentials only!
|
||||||
(config&)*this = std::move(other);
|
(packable&)*this = std::move(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
@ -78,7 +77,7 @@ eap::ui_context& eap::ui_context::operator=(_Inout_ ui_context &&other)
|
|||||||
|
|
||||||
void eap::ui_context::operator<<(_Inout_ cursor_out &cursor) const
|
void eap::ui_context::operator<<(_Inout_ cursor_out &cursor) const
|
||||||
{
|
{
|
||||||
config::operator<<(cursor);
|
packable::operator<<(cursor);
|
||||||
cursor << m_cfg ;
|
cursor << m_cfg ;
|
||||||
cursor << m_cred;
|
cursor << m_cred;
|
||||||
}
|
}
|
||||||
@ -87,7 +86,7 @@ void eap::ui_context::operator<<(_Inout_ cursor_out &cursor) const
|
|||||||
size_t eap::ui_context::get_pk_size() const
|
size_t eap::ui_context::get_pk_size() const
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
config::get_pk_size() +
|
packable::get_pk_size() +
|
||||||
pksizeof(m_cfg ) +
|
pksizeof(m_cfg ) +
|
||||||
pksizeof(m_cred);
|
pksizeof(m_cred);
|
||||||
}
|
}
|
||||||
@ -95,7 +94,7 @@ size_t eap::ui_context::get_pk_size() const
|
|||||||
|
|
||||||
void eap::ui_context::operator>>(_Inout_ cursor_in &cursor)
|
void eap::ui_context::operator>>(_Inout_ cursor_in &cursor)
|
||||||
{
|
{
|
||||||
config::operator>>(cursor);
|
packable::operator>>(cursor);
|
||||||
cursor >> m_cfg ;
|
cursor >> m_cfg ;
|
||||||
cursor >> m_cred;
|
cursor >> m_cred;
|
||||||
}
|
}
|
||||||
|
@ -44,11 +44,10 @@ namespace eap
|
|||||||
///
|
///
|
||||||
/// Constructs context
|
/// Constructs context
|
||||||
///
|
///
|
||||||
/// \param[in] mod EAP module to use for global services
|
|
||||||
/// \param[in] cfg Connection configuration
|
/// \param[in] cfg Connection configuration
|
||||||
/// \param[in] cred Connection credentials
|
/// \param[in] cred Connection credentials
|
||||||
///
|
///
|
||||||
ui_context_ttls(_In_ module &mod, _In_ config_connection &cfg, _In_ credentials_connection &cred);
|
ui_context_ttls(_In_ config_connection &cfg, _In_ credentials_connection &cred);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Copies context
|
/// Copies context
|
||||||
@ -82,13 +81,6 @@ namespace eap
|
|||||||
///
|
///
|
||||||
ui_context_ttls& operator=(_Inout_ ui_context_ttls &&other);
|
ui_context_ttls& operator=(_Inout_ ui_context_ttls &&other);
|
||||||
|
|
||||||
///
|
|
||||||
/// Clones this object
|
|
||||||
///
|
|
||||||
/// \returns Pointer to cloned object with identical data
|
|
||||||
///
|
|
||||||
virtual config* clone() const;
|
|
||||||
|
|
||||||
/// \name BLOB management
|
/// \name BLOB management
|
||||||
/// @{
|
/// @{
|
||||||
virtual void operator<<(_Inout_ cursor_out &cursor) const;
|
virtual void operator<<(_Inout_ cursor_out &cursor) const;
|
||||||
|
@ -367,7 +367,7 @@ void eap::peer_ttls::get_ui_context(
|
|||||||
auto s = static_cast<session*>(hSession);
|
auto s = static_cast<session*>(hSession);
|
||||||
|
|
||||||
// Get context data from method.
|
// Get context data from method.
|
||||||
ui_context_ttls ctx(*this, s->m_cfg, s->m_cred);
|
ui_context_ttls ctx(s->m_cfg, s->m_cred);
|
||||||
s->m_method->get_ui_context(ctx.m_data);
|
s->m_method->get_ui_context(ctx.m_data);
|
||||||
|
|
||||||
// Pack context data.
|
// Pack context data.
|
||||||
|
@ -28,14 +28,15 @@ using namespace winstd;
|
|||||||
// eap::ui_context_ttls
|
// eap::ui_context_ttls
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
eap::ui_context_ttls::ui_context_ttls(_In_ module &mod, _In_ config_connection &cfg, _In_ credentials_connection &cred) :
|
eap::ui_context_ttls::ui_context_ttls(_In_ config_connection &cfg, _In_ credentials_connection &cred) :
|
||||||
ui_context(mod, cfg, cred)
|
ui_context(cfg, cred)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
eap::ui_context_ttls::ui_context_ttls(_In_ const ui_context_ttls &other) :
|
eap::ui_context_ttls::ui_context_ttls(_In_ const ui_context_ttls &other) :
|
||||||
ui_context(other)
|
m_data (other.m_data),
|
||||||
|
ui_context(other )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,12 +70,6 @@ eap::ui_context_ttls& eap::ui_context_ttls::operator=(_Inout_ ui_context_ttls &&
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
eap::config* eap::ui_context_ttls::clone() const
|
|
||||||
{
|
|
||||||
return new ui_context_ttls(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void eap::ui_context_ttls::operator<<(_Inout_ cursor_out &cursor) const
|
void eap::ui_context_ttls::operator<<(_Inout_ cursor_out &cursor) const
|
||||||
{
|
{
|
||||||
ui_context::operator<<(cursor);
|
ui_context::operator<<(cursor);
|
||||||
|
@ -393,7 +393,7 @@ void eap::peer_ttls_ui::invoke_interactive_ui(
|
|||||||
// Unpack context data.
|
// Unpack context data.
|
||||||
config_connection cfg(*this);
|
config_connection cfg(*this);
|
||||||
credentials_connection cred(*this, cfg);
|
credentials_connection cred(*this, cfg);
|
||||||
ui_context_ttls ctx(*this, cfg, cred);
|
ui_context_ttls ctx(cfg, cred);
|
||||||
unpack(ctx, pUIContextData, dwUIContextDataSize);
|
unpack(ctx, pUIContextData, dwUIContextDataSize);
|
||||||
|
|
||||||
// Look-up the provider.
|
// Look-up the provider.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user