X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspstring.h;h=ccc77da663156644b8723c34d6b998408ab07987;hb=b9006ce3cba742ca2a22d601ba1a63a47b0402c9;hp=1e6ba68e666063f0b6be56211170909f155f10a9;hpb=9cf56d917d92959701694477f7944d45ad2c38ed;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspstring.h b/include/inspstring.h index 1e6ba68e6..ccc77da66 100644 --- a/include/inspstring.h +++ b/include/inspstring.h @@ -1,36 +1,55 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2007 Craig Edwards * - * This program is free but copyrighted software; see - * the file COPYING for details. + * 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 + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef __IN_INSPSTRING_H -#define __IN_INSPSTRING_H -#include "inspircd_config.h" -#include -#include +#pragma once + +// This (config) is needed as inspstring doesn't pull in the central header +#include "config.h" +#include -#ifndef HAS_STRLCPY -CoreExport size_t strlcpy(char *dst, const char *src, size_t siz); -CoreExport size_t strlcat(char *dst, const char *src, size_t siz); -#endif +/** Sets ret to the formated 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 = 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); -CoreExport int charlcat(char* x,char y,int z); -CoreExport bool charremove(char* mp, char remove); -inline char * strnewdup(const char * s1) +/** 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) { - size_t len = strlen(s1) + 1; - char * p = new char[len]; - memcpy(p, s1, len); - return p; + return BinToHex(data.data(), data.size()); } - -#endif