eap::session<> remembers basic EAP session parameters now

This commit is contained in:
Simon Rozman 2016-08-03 15:22:52 +02:00
parent 3e82b7df49
commit f68a65f8f8

View File

@ -73,7 +73,10 @@ namespace eap
session(_In_ module &mod) : session(_In_ module &mod) :
m_module(mod), m_module(mod),
m_cfg(mod), m_cfg(mod),
m_cred(mod) m_cred(mod),
m_eap_flags(0),
m_token(NULL),
m_send_packet_size_max((DWORD)-1)
{ {
} }
@ -86,7 +89,10 @@ namespace eap
session(_In_ const session &other) : session(_In_ const session &other) :
m_module(other.m_module), m_module(other.m_module),
m_cfg(other.m_cfg), m_cfg(other.m_cfg),
m_cred(other.m_cred) m_cred(other.m_cred),
m_eap_flags(other.m_eap_flags),
m_token(other.m_token),
m_send_packet_size_max(other.m_send_packet_size_max)
{ {
} }
@ -99,7 +105,10 @@ namespace eap
session(_Inout_ session &&other) : session(_Inout_ session &&other) :
m_module(other.m_module), m_module(other.m_module),
m_cfg(std::move(other.m_cfg)), m_cfg(std::move(other.m_cfg)),
m_cred(std::move(other.m_cred)) m_cred(std::move(other.m_cred)),
m_eap_flags(std::move(other.m_eap_flags)),
m_token(std::move(other.m_token)),
m_send_packet_size_max(std::move(other.m_send_packet_size_max))
{ {
} }
@ -115,8 +124,11 @@ namespace eap
{ {
if (this != std::addressof(other)) { if (this != std::addressof(other)) {
assert(std::addressof(m_module) ==std::addressof(other.m_module)); // Copy session within same module only! assert(std::addressof(m_module) ==std::addressof(other.m_module)); // Copy session within same module only!
m_cfg = other.m_cfg; m_cfg = other.m_cfg;
m_cred = other.m_cred; m_cred = other.m_cred;
m_eap_flags = other.m_eap_flags;
m_token = other.m_token;
m_send_packet_size_max = other.m_send_packet_size_max;
} }
return *this; return *this;
} }
@ -133,8 +145,11 @@ namespace eap
{ {
if (this != std::addressof(other)) { if (this != std::addressof(other)) {
assert(std::addressof(m_module) ==std::addressof(other.m_module)); // Move session within same module only! assert(std::addressof(m_module) ==std::addressof(other.m_module)); // Move session within same module only!
m_cfg = std::move(other.m_cfg); m_cfg = std::move(other.m_cfg);
m_cred = std::move(other.m_cred); m_cred = std::move(other.m_cred);
m_eap_flags = std::move(other.m_eap_flags);
m_token = std::move(other.m_token);
m_send_packet_size_max = std::move(other.m_send_packet_size_max);
} }
return *this; return *this;
} }
@ -159,12 +174,14 @@ namespace eap
_In_ DWORD dwMaxSendPacketSize, _In_ DWORD dwMaxSendPacketSize,
_Out_ EAP_ERROR **ppEapError) _Out_ EAP_ERROR **ppEapError)
{ {
UNREFERENCED_PARAMETER(dwFlags);
UNREFERENCED_PARAMETER(pAttributeArray); UNREFERENCED_PARAMETER(pAttributeArray);
UNREFERENCED_PARAMETER(hTokenImpersonateUser);
UNREFERENCED_PARAMETER(dwMaxSendPacketSize);
UNREFERENCED_PARAMETER(ppEapError); UNREFERENCED_PARAMETER(ppEapError);
// Save session parameters.
m_eap_flags = dwFlags;
m_token = hTokenImpersonateUser;
m_send_packet_size_max = dwMaxSendPacketSize;
return true; return true;
} }
@ -358,5 +375,8 @@ namespace eap
config_providers m_cfg; ///< Session configuration config_providers m_cfg; ///< Session configuration
credentials_type m_cred; ///< User credentials credentials_type m_cred; ///< User credentials
interactive_request_type m_intreq; ///< Interactive UI request data interactive_request_type m_intreq; ///< Interactive UI request data
DWORD m_eap_flags; ///< A combination of EAP flags that describe the new EAP authentication session behavior
HANDLE m_token; ///< Specifies a handle to the user impersonation token to use in this session
DWORD m_send_packet_size_max; ///< Specifies the maximum size in bytes of an EAP packet sent during the session. If the method needs to send a packet larger than the maximum size, the method must accommodate fragmentation and reassembly.
}; };
} }