summaryrefslogtreecommitdiffstats
path: root/contrib/opie/libmissing/uname.c
blob: 5b51fa55122a6979bb5c49613a6c4a09d4eb5f3c (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
35
36
37
38
39
40
41
42
/* uname.c: A replacement for the uname function (sort of)

%%% copyright-cmetz
This software is Copyright 1996 by Craig Metz, All Rights Reserved.
The Inner Net License Version 2 applies to this software.
You should have received a copy of the license with this software. If
you didn't get a copy, you may request one from <license@inner.net>.

        History:

	Modified by cmetz for OPIE 2.3. Ifdef around gethostname().
	Created by cmetz for OPIE 2.2.
*/
#include "opie_cfg.h"
#if HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif /* HAVE_SYS_PARAM_H */
#include "opie.h"

int uname FUNCTION(struct utsname *buf)
{
#if HAVE_GETHOSTNAME
	char hostname[MAXHOSTNAMELEN], *c;

	memset(buf, 0, sizeof(buf));

	if (gethostname(hostname, sizeof(hostname)-1) < 0)
		return -1;

	hostname[sizeof(hostname) - 1] = 0;

	if (c = strchr(hostname, '.')) {
		*c = 0;
	}

	strncpy(buf->nodename, hostname, sizeof(buf->nodename) - 1);
	return 0;
#else /* HAVE_GETHOSTNAME */
	strncpy(buf->nodename, "unknown", sizeof(buf->nodename) - 1);
	return 0;
#endif /* HAVE_GETHOSTNAME */
}
OpenPOWER on IntegriCloud