diff options
| author | Szczepan Zalega <szczepan@nitrokey.com> | 2016-10-22 18:59:12 +0200 | 
|---|---|---|
| committer | Szczepan Zalega <szczepan@nitrokey.com> | 2016-11-26 15:54:12 +0100 | 
| commit | b0e14aeb25e8d5d799b685bdc844b87617d97c80 (patch) | |
| tree | a17b313438407b847fb48f338b4662cec74c6dd5 /include | |
| parent | 3601f5f97fb64357d9d9221acbd356eec4dbc67a (diff) | |
| download | libnitrokey-b0e14aeb25e8d5d799b685bdc844b87617d97c80.tar.gz libnitrokey-b0e14aeb25e8d5d799b685bdc844b87617d97c80.tar.bz2 | |
Add strcpyT to misc.h
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/misc.h | 23 | 
1 files changed, 22 insertions, 1 deletions
| diff --git a/include/misc.h b/include/misc.h index 5fcd16d..48d6a83 100644 --- a/include/misc.h +++ b/include/misc.h @@ -3,11 +3,32 @@  #include <stdio.h>  #include <string>  #include <vector> +#include <string.h> +#include "log.h" +#include "LibraryException.h"  namespace nitrokey {  namespace misc { -template <typename T> +    template <typename T> +    void strcpyT(T& dest, const char* src){ + +        if (src == nullptr) +//            throw EmptySourceStringException(slot_number); +            return; +        const size_t s_dest = sizeof dest; +        nitrokey::log::Log::instance()(std::string("strcpyT sizes dest src ") +                                       +std::to_string(s_dest)+ " " +                                       +std::to_string(strlen(src))+ " " +            ,nitrokey::log::Loglevel::DEBUG); +        if (strlen(src) > s_dest){ +            throw TooLongStringException(strlen(src), s_dest, src); +        } +        strncpy((char*) &dest, src, s_dest); +    } + + +    template <typename T>  typename T::CommandPayload get_payload(){      //Create, initialize and return by value command payload      typename T::CommandPayload st; | 
