aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/sysname.c
blob: 2060b986eaa879c02a8b24f79491cba7f60525c1 (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
#include <u.h>
#include <libc.h>

char*
sysname(void)
{
	static char buf[512];
	char *p, *q;

	if(buf[0])
		return buf;

	if((q = getenv("sysname")) != nil && q[0] != 0){
		utfecpy(buf, buf+sizeof buf, q);
		free(q);
		return buf;
	}
	if(q)
		free(q);

	if(gethostname(buf, sizeof buf) >= 0){
		buf[sizeof buf-1] = 0;
		if((p = strchr(buf, '.')) != nil)
			*p = 0;
		return buf;
	}

	strcpy(buf, "gnot");
	return buf;
}