diff --git a/src/util/get_hostname.cpp b/src/util/get_hostname.cpp new file mode 100644 index 00000000..7f63dc93 --- /dev/null +++ b/src/util/get_hostname.cpp @@ -0,0 +1,46 @@ +/* + * MIT License + * + * Copyright (c) 2017 NUClear Contributors + * + * This file is part of the NUClear codebase. + * See https://github.com/Fastcode/NUClear for further info. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "get_hostname.hpp" + + +#ifdef _WIN32 + + #include "platform.hpp" + +std::string NUClear::util::get_hostname() { + char n[MAX_COMPUTERNAME_LENGTH + 1]; + DWORD size = sizeof(n); + GetComputerName(n, &size); + return std::string(n, size); +} + +#else + + #include + +std::string NUClear::util::get_hostname() { + utsname u{}; + uname(&u); + return u.nodename; +} + +#endif diff --git a/src/util/get_hostname.hpp b/src/util/get_hostname.hpp index 77d62c4a..dcd41820 100644 --- a/src/util/get_hostname.hpp +++ b/src/util/get_hostname.hpp @@ -23,29 +23,15 @@ #ifndef NUCLEAR_UTIL_GET_HOSTNAME_HPP #define NUCLEAR_UTIL_GET_HOSTNAME_HPP -#ifdef _WIN32 - #include "platform.hpp" -#else - #include -#endif - namespace NUClear { namespace util { - inline std::string get_hostname() { - -// If our config name is empty, use our system name -#ifdef _WIN32 - char n[MAX_COMPUTERNAME_LENGTH + 1]; - DWORD size = sizeof(n); - GetComputerName(n, &size); - return std::string(n, size); -#else - utsname u{}; - uname(&u); - return u.nodename; -#endif - } + /** + * Get the hostname of the machine + * + * @return the hostname of the machine + */ + std::string get_hostname(); } // namespace util } // namespace NUClear