53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
//
|
|
// Created by rexy712 on 06/25/2021.
|
|
//
|
|
|
|
#ifndef FRNETLIB_UTIL_H
|
|
#define FRNETLIB_UTIL_H
|
|
|
|
#include <mbedtls/ssl.h>
|
|
#include <cstdlib> //size_t
|
|
#include <cstring> //memcpy, memset
|
|
#include <utility> //move
|
|
|
|
namespace fr
|
|
{
|
|
template<class T>
|
|
constexpr void swap(T& a, T& b)
|
|
{
|
|
T tmp = std::move(a);
|
|
a = std::move(b);
|
|
b = std::move(tmp);
|
|
}
|
|
|
|
template<class T, size_t N>
|
|
constexpr void swap(T (&a)[N], T (&b)[N])
|
|
{
|
|
for(size_t i = 0;i < N;++i)
|
|
{
|
|
swap(a[i], b[i]);
|
|
}
|
|
}
|
|
|
|
constexpr mbedtls_ssl_config move_mbedtls_ssl_config(mbedtls_ssl_config &&src)
|
|
{
|
|
mbedtls_ssl_config retval = {};
|
|
swap(retval.ciphersuite_list, src.ciphersuite_list);
|
|
swap(retval.p_dbg, src.p_dbg);
|
|
swap(retval.f_get_cache, src.f_get_cache);
|
|
swap(retval.f_set_cache, src.f_set_cache);
|
|
swap(retval.p_cache, src.p_cache);
|
|
retval.max_major_ver = src.max_major_ver;
|
|
retval.max_minor_ver = src.max_minor_ver;
|
|
retval.min_major_ver = src.min_major_ver;
|
|
retval.min_minor_ver = src.min_minor_ver;
|
|
retval.endpoint = src.endpoint;
|
|
retval.transport = src.transport;
|
|
retval.authmode = src.authmode;
|
|
retval.allow_legacy_renegotiation = src.allow_legacy_renegotiation;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
#endif
|