diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2018-12-07 19:36:40 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2018-12-07 21:28:08 +0300 |
commit | 6a5e8096973f701363a36eb07a096ff8ca784342 (patch) | |
tree | 9beebb681abd93e080e8e98e9658a4576d951132 /source/blender/blenlib | |
parent | de491abf996281785391b18b3547d1bff305355f (diff) |
Move static `get_hostname()` to `BLI_hostname()` in `system.c`
This makes the `#include <Windows.h>` use more localised and out of the
`image.c` file.
Reviewers: LazyDodo
Reviewed by: LazyDodo
Differential revision: https://developer.blender.org/D4049
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_system.h | 12 | ||||
-rw-r--r-- | source/blender/blenlib/intern/system.c | 19 |
2 files changed, 30 insertions, 1 deletions
diff --git a/source/blender/blenlib/BLI_system.h b/source/blender/blenlib/BLI_system.h index 7f88f8a18b1..3bb47a4a5b7 100644 --- a/source/blender/blenlib/BLI_system.h +++ b/source/blender/blenlib/BLI_system.h @@ -34,6 +34,18 @@ void BLI_system_backtrace(FILE *fp); /* Get CPU brand, result is to be MEM_freeN()-ed. */ char *BLI_cpu_brand_string(void); +/** + * Obtain the hostname from the system. + * + * This simply determines the host's name, and doesn't do any DNS lookup of any + * IP address of the machine. As such, it's only usable for identification + * purposes, and not for reachability over a network. + * + * @param buffer Character buffer to write the hostname into. + * @param bufsize Size of the character buffer, including trailing '\0'. + */ +void BLI_hostname_get(char *buffer, size_t bufsize); + /* getpid */ #ifdef WIN32 # define BLI_SYSTEM_PID_H <process.h> diff --git a/source/blender/blenlib/intern/system.c b/source/blender/blenlib/intern/system.c index fca168dce69..5ff1d4ed710 100644 --- a/source/blender/blenlib/intern/system.c +++ b/source/blender/blenlib/intern/system.c @@ -31,9 +31,10 @@ #include "MEM_guardedalloc.h" -/* for backtrace */ +/* for backtrace and gethostname/GetComputerName */ #if defined(__linux__) || defined(__APPLE__) # include <execinfo.h> +# include <unistd.h> #elif defined(WIN32) # include <windows.h> # include <dbghelp.h> @@ -176,3 +177,19 @@ char *BLI_cpu_brand_string(void) } return NULL; } + +void BLI_hostname_get(char *buffer, size_t bufsize) +{ +#ifndef WIN32 + if (gethostname(buffer, bufsize-1) < 0) { + BLI_strncpy(buffer, "-unknown-", bufsize); + } + /* When gethostname() truncates, it doesn't guarantee the trailing \0. */ + buffer[bufsize - 1] = '\0'; +#else + DWORD bufsize_inout = bufsize; + if(!GetComputerName(buffer, &bufsize_inout)) { + strncpy(buffer, "-unknown-", bufsize); + } +#endif +} |