X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fhelperfuncs.cpp;h=94938ef12cfcf9c3594f181a9c2342f482c3cadd;hb=007e0b46a82f0aa4ebe47472d0fed63d845107b7;hp=94a5240c9d4474888c81b91e010ee98c5a2c8262;hpb=7530285740c2db1bc4457859b0d5f2436e0ed113;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index 94a5240c9..94938ef12 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -7,6 +7,7 @@ * Copyright (C) 2008 Thomas Stagner * Copyright (C) 2006-2007 Oliver Lupton * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2003-2019 Anope Team * * 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 @@ -337,18 +338,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 @@ -429,6 +418,36 @@ bool InspIRCd::IsValidDuration(const std::string& duration) return true; } +std::string InspIRCd::DurationString(time_t duration) +{ + 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; + time_t minutes = (duration / 60) % 60; + time_t seconds = duration % 60; + + std::string ret; + + if (years) + ret = ConvToStr(years) + "y"; + if (weeks) + ret += ConvToStr(weeks) + "w"; + if (days) + ret += ConvToStr(days) + "d"; + if (hours) + ret += ConvToStr(hours) + "h"; + if (minutes) + ret += ConvToStr(minutes) + "m"; + if (seconds) + ret += ConvToStr(seconds) + "s"; + + return ret; +} + std::string InspIRCd::Format(va_list& vaList, const char* formatString) { static std::vector formatBuffer(1024);