xref: /third_party/musl/src/misc/gethostid.c (revision 570af302)
1#ifdef __LITEOS_A__
2#define _GNU_SOURCE
3
4#include <netdb.h>
5#include <string.h>
6#include <unistd.h>
7
8#define HOSTID_NUM   16
9#else
10#include <unistd.h>
11#endif
12
13long gethostid()
14{
15#ifdef __LITEOS_A__
16	int ret;
17	struct in_addr in;
18	struct hostent *hst = NULL;
19	char **p = NULL;
20	char host[128] = {0};
21
22	ret = gethostname(host, sizeof(host));
23	if (ret || host[0] == '\0') {
24		return -1;
25	}
26
27	hst = gethostbyname(host);
28	if (hst == NULL) {
29		return -1;
30	}
31
32	p = hst->h_addr_list;
33	memcpy(&in.s_addr, *p, sizeof(in.s_addr));
34
35	return (long)((in.s_addr << HOSTID_NUM) | (in.s_addr >> HOSTID_NUM));
36#else
37	return 0;
38#endif
39}
40