aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/options/posix/generic/resolv_conf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mlibc/options/posix/generic/resolv_conf.cpp')
-rw-r--r--lib/mlibc/options/posix/generic/resolv_conf.cpp42
1 files changed, 0 insertions, 42 deletions
diff --git a/lib/mlibc/options/posix/generic/resolv_conf.cpp b/lib/mlibc/options/posix/generic/resolv_conf.cpp
deleted file mode 100644
index a5c3aa7..0000000
--- a/lib/mlibc/options/posix/generic/resolv_conf.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <mlibc/resolv_conf.hpp>
-#include <mlibc/allocator.hpp>
-#include <stdio.h>
-#include <ctype.h>
-
-namespace mlibc {
-
-frg::optional<struct nameserver_data> get_nameserver() {
- auto file = fopen("/etc/resolv.conf", "r");
- if (!file)
- return frg::null_opt;
-
- char line[128];
- struct nameserver_data ret;
- while (fgets(line, 128, file)) {
- char *pos;
- if (!strchr(line, '\n') && !feof(file)) {
- // skip truncated lines
- for (int c = getc(file); c != '\n' && c != EOF; c = getc(file));
- continue;
- }
-
- // TODO(geert): resolv.conf can actually have multiple nameservers
- // but we just pick the first one for now
- if (!strncmp(line, "nameserver", 10) && isspace(line[10])) {
- char *end;
- for (pos = line + 11; isspace(*pos); pos++);
- for (end = pos; *end && !isspace(*end); end++);
- *end = '\0';
- ret.name = frg::string<MemoryAllocator>(
- pos, end - pos, getAllocator());
- break;
- }
- }
-
- fclose(file);
- if(ret.name.empty())
- return frg::null_opt;
- return ret;
-}
-
-} // namespace mlibc