summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rw-r--r--base64.cpp23
-rw-r--r--base64.h7
-rw-r--r--os.cpp78
-rw-r--r--os.h10
-rw-r--r--response.cpp12
-rw-r--r--tests/Makefile2
7 files changed, 8 insertions, 131 deletions
diff --git a/Makefile b/Makefile
index d9b55db..58da00f 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,7 @@ PLUGINS= \
weblog
CXXFLAGS+=-fPIE
+CXXFLAGS+=-gdwarf-4
LDLIBS+=\
-lreichwein \
@@ -36,11 +37,9 @@ LDFLAGS+=-pie
PROGSRC=\
auth.cpp \
- base64.cpp \
config.cpp \
http.cpp \
https.cpp \
- os.cpp \
plugin.cpp \
privileges.cpp \
response.cpp \
@@ -123,8 +122,6 @@ DISTFILES= \
archive.h \
auth.cpp \
auth.h \
- base64.cpp \
- base64.h \
config.cpp \
config.h \
http.cpp \
@@ -132,8 +129,6 @@ DISTFILES= \
https.cpp \
https.h \
main.cpp \
- os.cpp \
- os.h \
plugin.cpp \
plugin.h \
plugin_interface.h \
diff --git a/base64.cpp b/base64.cpp
deleted file mode 100644
index 3847f0a..0000000
--- a/base64.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "base64.h"
-
-#include <boost/archive/iterators/binary_from_base64.hpp>
-#include <boost/archive/iterators/base64_from_binary.hpp>
-#include <boost/archive/iterators/transform_width.hpp>
-#include <boost/algorithm/string.hpp>
-
-std::string decode64(const std::string &val)
-{
- using namespace boost::archive::iterators;
- using It = transform_width<binary_from_base64<std::string::const_iterator>, 8, 6>;
- return boost::algorithm::trim_right_copy_if(std::string(It(std::begin(val)), It(std::end(val))), [](char c) {
- return c == '\0';
- });
-}
-
-std::string encode64(const std::string &val)
-{
- using namespace boost::archive::iterators;
- using It = base64_from_binary<transform_width<std::string::const_iterator, 6, 8>>;
- auto tmp = std::string(It(std::begin(val)), It(std::end(val)));
- return tmp.append((3 - val.size() % 3) % 3, '=');
-}
diff --git a/base64.h b/base64.h
deleted file mode 100644
index 6a3f2c3..0000000
--- a/base64.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#include <string>
-
-std::string decode64(const std::string &val);
-std::string encode64(const std::string &val);
-
diff --git a/os.cpp b/os.cpp
deleted file mode 100644
index 10bf1c1..0000000
--- a/os.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "os.h"
-
-#include <boost/algorithm/string/split.hpp>
-
-#include <unistd.h>
-
-#include <fstream>
-#include <vector>
-
-using namespace std::string_literals;
-
-namespace {
-
- std::string to_string(uint32_t v, size_t size)
- {
- std::string result{std::to_string(v)};
-
- return (size > result.size() ? std::string(size - result.size(), char('0')) : ""s) + result;
- }
-
- std::string to_time_string(uint32_t sec)
- {
- uint32_t days = sec / (24 * 3600);
- uint32_t hours = (sec % (24 * 3600)) / 3600;
- uint32_t minutes = (sec % 3600) / 60;
- uint32_t seconds = (sec % 60);
-
- return std::to_string(days) + " days, "s + to_string(hours, 2) + ":"s + to_string(minutes, 2) + ":"s + to_string(seconds, 2);
- }
-
- uint64_t uptime()
- {
- double uptime_seconds{};
- if (std::ifstream("/proc/uptime", std::ios::in) >> uptime_seconds)
- {
- return static_cast<uint64_t>(uptime_seconds);
- }
-
- return 0;
- }
-
-} // anonymous namespace
-
-std::string OS::uptime_host()
-{
- return to_time_string(uptime());
-}
-
-std::string OS::uptime_process()
-{
- std::string filepath{"/proc/self/stat"};
- std::ifstream f(filepath, std::ios::in);
- if (f.is_open()) {
- std::string line;
- std::getline(f, line);
- std::vector<std::string> elements;
- boost::algorithm::split(elements, line, [](char c){ return c == ' '; });
- if (elements.size() < 22)
- throw std::runtime_error("Bad contents of /proc/self/stat");
-
- long jiffies_per_second {sysconf(_SC_CLK_TCK)};
- if (jiffies_per_second == 0)
- throw std::runtime_error("Jiffies per second is 0");
-
- try {
- unsigned long starttime { std::stoul(elements[21])};
-
- unsigned long runtime = uptime() - starttime / jiffies_per_second;
-
- return to_time_string(runtime);
- } catch (const std::exception& ex) {
- throw std::runtime_error("Bad value in /proc/self/stat: "s + ex.what());
- }
-
- } else
- throw std::runtime_error("Reading /proc/self/stat");
-}
-
diff --git a/os.h b/os.h
deleted file mode 100644
index ed08234..0000000
--- a/os.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include <string>
-
-namespace OS {
-
- std::string uptime_host();
- std::string uptime_process();
-
-} // namespace OS
diff --git a/response.cpp b/response.cpp
index 92390cd..17d3e48 100644
--- a/response.cpp
+++ b/response.cpp
@@ -1,11 +1,11 @@
#include "response.h"
#include "auth.h"
-#include "base64.h"
-#include "os.h"
-#include "libreichwein/mime.h"
+#include "libreichwein/base64.h"
#include "libreichwein/file.h"
+#include "libreichwein/mime.h"
+#include "libreichwein/os.h"
#include <boost/algorithm/string/predicate.hpp>
@@ -16,6 +16,8 @@
using namespace std::placeholders;
using namespace Reichwein::Mime;
+using namespace Reichwein::OS;
+using namespace Reichwein::Base64;
namespace {
@@ -122,8 +124,8 @@ std::unordered_map<std::string, std::function<std::string(Server&)>> GetServerPa
{"ipv6", [](Server& server) { return is_ipv6_address(server.GetSocket().address) ? "yes" : "no"; }},
{"port", [](Server& server) { return server.GetSocket().port; }},
{"statistics", [](Server& server) { return server.GetStatistics().getValues(); }},
- {"uptime_host", [](Server& server) { return OS::uptime_host(); }},
- {"uptime_webserver", [](Server& server) { return OS::uptime_process(); }},
+ {"uptime_host", [](Server& server) { return uptime_host(); }},
+ {"uptime_webserver", [](Server& server) { return uptime_process(); }},
{"version", [](Server& server) { return Server::VersionString; }},
};
diff --git a/tests/Makefile b/tests/Makefile
index 033ba95..4522952 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -33,11 +33,9 @@ LDFLAGS+=-pie
UNITS=\
auth.cpp \
- base64.cpp \
config.cpp \
http.cpp \
https.cpp \
- os.cpp \
plugin.cpp \
privileges.cpp \
response.cpp \