aboutsummaryrefslogtreecommitdiff
path: root/tests/libtest/sethostname.c
blob: d050f18d65a603b712595fd96b448f38e77e8876 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*****************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 */

#include <stdlib.h>
#include <string.h>

#define GETHOSTNAME_ENV_VAR "CURL_GETHOSTNAME"

/*
 * we force our own host name, in order to make some tests machine independent
 *
 * Since some systems think this prototype doesn't match the system provided
 * function, we AVOID including unistd.h or other headers that may include the
 * original prototype! We provide our own instead (to avoid warnings).
 */
int gethostname(char *name, size_t namelen);

int gethostname(char *name, size_t namelen)
{
  const char *force_hostname = getenv(GETHOSTNAME_ENV_VAR);
  if(force_hostname) {
    strncpy(name, force_hostname, namelen);
    return 0;
  }

  /* LD_PRELOAD used, but no hostname set, we'll just return a failure */
  return -1;
}