X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fhelperfuncs.cpp;h=f8ee0d1a65f568d5ddc9629be5a0366b51817bee;hb=66dbd438f23a6beb06b0d44b9121deeb1e3f73bc;hp=846feab5072fd21e7c6ad63b0da9f7ed5b56fa94;hpb=87b1461e2a4710a38b32186c2582da9fe9bb3804;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index 846feab50..f8ee0d1a6 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -1,13 +1,18 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2019-2020 Matt Schatz + * Copyright (C) 2018 linuxdaemon + * Copyright (C) 2013 Daniel Vassdal + * Copyright (C) 2013 Adam + * Copyright (C) 2012-2015 Attila Molnar + * Copyright (C) 2012-2014, 2017-2018, 2020 Sadie Powell + * Copyright (C) 2012, 2018 Robby + * Copyright (C) 2012 ChrisTX * Copyright (C) 2009-2010 Daniel De Graaf - * Copyright (C) 2006-2008 Robin Burchell - * Copyright (C) 2005-2008 Craig Edwards - * Copyright (C) 2008 Thomas Stagner - * Copyright (C) 2006-2007 Oliver Lupton + * Copyright (C) 2007, 2010 Craig Edwards * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2003-2019 Anope Team + * Copyright (C) 2006-2008 Robin Burchell * * 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 @@ -338,18 +343,6 @@ bool InspIRCd::IsSID(const std::string &str) ((str[2] >= 'A' && str[2] <= 'Z') || isdigit(str[2]))); } -void InspIRCd::CheckRoot() -{ -#ifndef _WIN32 - if (geteuid() == 0) - { - std::cout << "ERROR: You are running an irc server as root! DO NOT DO THIS!" << std::endl << std::endl; - this->Logs->Log("STARTUP", LOG_DEFAULT, "Can't start as root"); - Exit(EXIT_STATUS_ROOT); - } -#endif -} - /** A lookup table of values for multiplier characters used by * InspIRCd::Duration(). In this lookup table, the indexes for * the ascii values 'm' and 'M' have the value '60', the indexes @@ -390,7 +383,7 @@ bool InspIRCd::Duration(const std::string& str, unsigned long& duration) } else { - /* Found something thats not a number, find out how much + /* Found something that's not a number, find out how much * it multiplies the built up number by, multiply the total * and reset the built up number. */ @@ -432,7 +425,10 @@ bool InspIRCd::IsValidDuration(const std::string& duration) std::string InspIRCd::DurationString(time_t duration) { - time_t years = duration / 31536000; + if (duration == 0) + return "0s"; + + time_t years = duration / 31449600; time_t weeks = (duration / 604800) % 52; time_t days = (duration / 86400) % 7; time_t hours = (duration / 3600) % 24; @@ -521,14 +517,12 @@ std::string InspIRCd::TimeString(time_t curtime, const char* format, bool utc) 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 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. @@ -540,7 +534,7 @@ unsigned long InspIRCd::GenRandomInt(unsigned long max) return rv % max; } -// This is overridden by a higher-quality algorithm when SSL support is loaded +// This is overridden by a higher-quality algorithm when TLS (SSL) support is loaded void InspIRCd::DefaultGenRandom(char* output, size_t max) { #if defined HAS_ARC4RANDOM_BUF