1 /*
2 * Copyright (c) 1999, 2000
3 * Intel Corporation.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without modification,
7 * are permitted provided that the following conditions are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this software must
17 * display the following acknowledgement:
18 *
19 * This product includes software developed by Intel Corporation and its
20 * contributors.
21 *
22 * 4. Neither the name of Intel Corporation or its contributors may be used to
23 * endorse or promote products derived from this software without specific
24 * prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION AND CONTRIBUTORS ``AS IS'' AND
27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 * DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR CONTRIBUTORS BE LIABLE FOR
30 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
33 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 *
37 */
38
39 #include <stdlib.h>
40 #include <string.h>
41 #include <unistd.h>
42
43 /*++
44
45 Module Name:
46
47 gethostname.c
48
49 Abstract:
50
51 Map FreeBSD gethostname call to EFI Interface
52
53
54 Revision History
55
56 --*/
57
58 int
gethostname(char * name,size_t namelen)59 gethostname(
60 char *name,
61 size_t namelen
62 )
63 /*++
64
65 Routine Description:
66
67 Get the hostname for this system.
68
69 Arguments:
70
71 name - Pointer to storage for hostname.
72 namelen - Length of name
73
74 Returns:
75
76 0 on success, -1 if not set
77
78 --*/
79 {
80 char *pHost;
81
82 pHost = getenv ("HOSTNAME");
83
84 if ( pHost == NULL ) {
85 *name = 0;
86 } else {
87 strncpy (name, pHost, namelen);
88 name[namelen-1] = 0;
89 }
90
91 return (0);
92 }
93