X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspstring.h;h=17093eb7cfbb49a5646ed80e0d4d98399287147f;hb=635cb9d65f6d7f6758ae8ed874da00c8d94b6e39;hp=6864245b0219e719e5eda500e913c41c53f3a569;hpb=712a0e5ff36e5ba052c5d1accf5f5943be4a6e8a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspstring.h b/include/inspstring.h index 6864245b0..17093eb7c 100644 --- a/include/inspstring.h +++ b/include/inspstring.h @@ -1,8 +1,15 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2013, 2018 Sadie Powell + * Copyright (C) 2013 Daniel Vassdal + * Copyright (C) 2013 Attila Molnar + * Copyright (C) 2012 Robby + * Copyright (C) 2010 Daniel De Graaf + * Copyright (C) 2008 Robin Burchell + * Copyright (C) 2008 Pippijn van Steenhoven + * Copyright (C) 2007, 2010 Craig Edwards * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2007 Craig Edwards * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -20,13 +27,34 @@ #pragma once -// This (config) is needed as inspstring doesn't pull in the central header -#include "config.h" #include -/** Binary to hexadecimal conversion */ -CoreExport std::string BinToHex(const std::string& data); +/** Sets ret to the formatted string. last is the last parameter before ..., and format is the format in printf-style */ +#define VAFORMAT(ret, last, format) \ + do { \ + va_list _vaList; \ + va_start(_vaList, last); \ + ret.assign(InspIRCd::Format(_vaList, format)); \ + va_end(_vaList); \ + } while (false); + +/** Compose a hex string from raw data. + * @param raw The raw data to compose hex from (can be NULL if rawsize is 0) + * @param rawsize The size of the raw data buffer + * @return The hex string + */ +CoreExport std::string BinToHex(const void* raw, size_t rawsize); + /** Base64 encode */ CoreExport std::string BinToBase64(const std::string& data, const char* table = NULL, char pad = 0); /** Base64 decode */ CoreExport std::string Base64ToBin(const std::string& data, const char* table = NULL); + +/** Compose a hex string from the data in a std::string. + * @param data The data to compose hex from + * @return The hex string. + */ +inline std::string BinToHex(const std::string& data) +{ + return BinToHex(data.data(), data.size()); +}