summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibCore/System.cpp8
-rw-r--r--Userland/Libraries/LibCore/System.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCore/System.cpp b/Userland/Libraries/LibCore/System.cpp
index f29fb758ca..bbc1a08684 100644
--- a/Userland/Libraries/LibCore/System.cpp
+++ b/Userland/Libraries/LibCore/System.cpp
@@ -352,6 +352,14 @@ ErrorOr<String> gethostname()
return String(&hostname[0]);
}
+ErrorOr<void> sethostname(StringView hostname)
+{
+ int rc = ::sethostname(hostname.characters_without_null_termination(), hostname.length());
+ if (rc < 0)
+ return Error::from_syscall("sethostname"sv, -errno);
+ return {};
+}
+
ErrorOr<String> getcwd()
{
auto* cwd = ::getcwd(nullptr, 0);
diff --git a/Userland/Libraries/LibCore/System.h b/Userland/Libraries/LibCore/System.h
index 7cf6027d53..1ade033c6a 100644
--- a/Userland/Libraries/LibCore/System.h
+++ b/Userland/Libraries/LibCore/System.h
@@ -9,6 +9,7 @@
#pragma once
#include <AK/Error.h>
+#include <AK/StringView.h>
#include <fcntl.h>
#include <grp.h>
#include <pwd.h>
@@ -72,6 +73,7 @@ ErrorOr<int> dup(int source_fd);
ErrorOr<int> dup2(int source_fd, int destination_fd);
ErrorOr<String> ptsname(int fd);
ErrorOr<String> gethostname();
+ErrorOr<void> sethostname(StringView);
ErrorOr<String> getcwd();
ErrorOr<void> ioctl(int fd, unsigned request, ...);
ErrorOr<struct termios> tcgetattr(int fd);