/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
+ * Copyright (C) 2019-2020 Matt Schatz <genius3000@g3k.solutions>
* Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com>
* Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org>
* Copyright (C) 2013 Adam <Adam@anope.org>
* Copyright (C) 2012-2015 Attila Molnar <attilamolnar@hush.com>
- * Copyright (C) 2012-2014, 2017-2018 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012-2014, 2017-2018, 2020 Sadie Powell <sadie@witchery.services>
* Copyright (C) 2012, 2018 Robby <robby@chatbelgie.be>
* Copyright (C) 2012 ChrisTX <xpipe@hotmail.de>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007, 2010 Craig Edwards <brain@inspircd.org>
* Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
* Copyright (C) 2006-2008 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2005, 2007, 2010 Craig Edwards <brain@inspircd.org>
*
* 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
#include "inspircd.h"
#include "xline.h"
-#include "exitcodes.h"
-#include <iostream>
/* Find a user record by nickname and return a pointer to it */
User* InspIRCd::FindNick(const std::string &nick)
std::string InspIRCd::GenRandomStr(unsigned int length, bool printable)
{
- char* buf = new char[length];
- GenRandom(buf, length);
- std::string rv;
- rv.resize(length);
- for(size_t i = 0; i < length; i++)
- rv[i] = printable ? 0x3F + (buf[i] & 0x3F) : buf[i];
- delete[] buf;
- return rv;
+ std::vector<char> str(length);
+ GenRandom(&str[0], length);
+ if (printable)
+ for (size_t i = 0; i < length; i++)
+ str[i] = 0x3F + (str[i] & 0x3F);
+ return std::string(&str[0], str.size());
}
// NOTE: this has a slight bias for lower values if max is not a power of 2.