1 function psi\endhostent() : void {
2 return void(endhostent);
4 function psi\endnetend() : void {
5 return void(endnetent);
7 function psi\endprotoent() : void {
8 return void(endprotoent);
10 function psi\endservent() : void {
11 return void(endservent);
14 function psi\sethostent(bool $stayopen) : void {
15 let stayopen = intval($stayopen);
16 return void(sethostent);
18 function psi\setnetset(bool $stayopen) : void {
19 let stayopen = intval($stayopen);
20 return void(setnetent);
22 function psi\setprotoent(bool $stayopen) : void {
23 let stayopen = intval($stayopen);
24 return void(setprotoent);
26 function psi\setservent(bool $stayopen) : void {
27 let stayopen = intval($stayopen);
28 return void(setservent);
31 function psi\gethostent() : array {
32 return to_array(gethostent,
34 to_array(h_aliases, to_string(h_aliases)),
37 to_array(h_addr_list, to_string(h_addr_list, h_length))
41 function psi\gai_strerror(int $errcode) : string {
42 let errcode = intval($errcode);
43 return to_string(gai_strerror);
46 // extern int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);
47 function psi\getaddrinfo(string $node, string $service, array $hints, object &$res = NULL) : int {
48 let node = strval($node);
49 let service = strval($service);
50 let hints = arrval($hints);
52 return to_int(getaddrinfo);
53 set $res = to_array(**res,
59 to_string(ai_addr, ai_addrlen),
60 to_string(ai_canonname),
61 to_array(*ai_next, ...)
63 free freeaddrinfo(res);