Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | #include "platform.h" |
2 | ||
3 | static struct hostent *NetHostDB_hostent; | |
4 | ||
5 | C_String_t NetHostDB_getEntryName(void) { | |
6 | return (C_String_t)(NetHostDB_hostent->h_name); | |
7 | } | |
8 | ||
9 | C_Int_t NetHostDB_getEntryAliasesNum(void) { | |
10 | int num = 0; | |
11 | while (NetHostDB_hostent->h_aliases[num] != NULL) num++; | |
12 | return num; | |
13 | } | |
14 | ||
15 | C_String_t NetHostDB_getEntryAliasesN(C_Int_t n) { | |
16 | return (C_String_t)(NetHostDB_hostent->h_aliases[n]); | |
17 | } | |
18 | ||
19 | C_Int_t NetHostDB_getEntryAddrType(void) { | |
20 | return NetHostDB_hostent->h_addrtype; | |
21 | } | |
22 | ||
23 | C_Int_t NetHostDB_getEntryLength(void) { | |
24 | return NetHostDB_hostent->h_length; | |
25 | } | |
26 | ||
27 | C_Int_t NetHostDB_getEntryAddrsNum(void) { | |
28 | int num = 0; | |
29 | while (NetHostDB_hostent->h_addr_list[num] != NULL) num++; | |
30 | return num; | |
31 | } | |
32 | ||
33 | void NetHostDB_getEntryAddrsN(C_Int_t n, Array(Word8_t) addr) { | |
34 | int i; | |
35 | for (i = 0; i < NetHostDB_hostent->h_length; i++) { | |
36 | ((char*)addr)[i] = NetHostDB_hostent->h_addr_list[n][i]; | |
37 | } | |
38 | return; | |
39 | } | |
40 | ||
41 | C_Int_t NetHostDB_getByAddress(Vector(Word8_t) addr, C_Socklen_t len) { | |
42 | MLton_initSockets (); | |
43 | NetHostDB_hostent = gethostbyaddr((const char*)addr, len, AF_INET); | |
44 | return (C_Int_t)(NetHostDB_hostent != NULL and NetHostDB_hostent->h_name != NULL); | |
45 | } | |
46 | ||
47 | C_Int_t NetHostDB_getByName(NullString8_t name) { | |
48 | MLton_initSockets (); | |
49 | NetHostDB_hostent = gethostbyname((const char*)name); | |
50 | return (C_Int_t)(NetHostDB_hostent != NULL and NetHostDB_hostent->h_name != NULL); | |
51 | } | |
52 | ||
53 | C_Errno_t(C_Int_t) NetHostDB_getHostName(Array(Char8_t) buf, C_Size_t len) { | |
54 | int out; | |
55 | ||
56 | MLton_initSockets (); | |
57 | out = gethostname ((char*)buf, len); | |
58 | if (out == -1) MLton_fixSocketErrno (); | |
59 | ||
60 | return out; | |
61 | } |