X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=psi.d%2Fnetdb.psi;h=dd81ed882de993602f2e670fd1c91b4f75ca3272;hp=0820c205723a9ab23e187cb79a63dc01d8460983;hb=cfebc76ed7426836f21296cca9a14b422bfa04cf;hpb=5c82e8c40c87314d9bd93c42d36f194413eae619 diff --git a/psi.d/netdb.psi b/psi.d/netdb.psi index 0820c20..dd81ed8 100644 --- a/psi.d/netdb.psi +++ b/psi.d/netdb.psi @@ -11,18 +11,46 @@ function psi\endservent() : void { return void(endservent); } +function psi\sethostent(bool $stayopen) : void { + let stayopen = intval($stayopen); + return void(sethostent); +} +function psi\setnetset(bool $stayopen) : void { + let stayopen = intval($stayopen); + return void(setnetent); +} +function psi\setprotoent(bool $stayopen) : void { + let stayopen = intval($stayopen); + return void(setprotoent); +} +function psi\setservent(bool $stayopen) : void { + let stayopen = intval($stayopen); + return void(setservent); +} + +function psi\gethostent() : array { + return to_array(gethostent, + to_string(h_name), + to_array(h_aliases, to_string(h_aliases)), + to_int(h_addrtype), + to_int(h_length), + to_array(h_addr_list, to_string(h_addr_list, h_length)) + ); +} + function psi\gai_strerror(int $errcode) : string { let errcode = intval($errcode); return to_string(gai_strerror); } +// extern int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); function psi\getaddrinfo(string $node, string $service, array $hints, object &$res = NULL) : int { let node = strval($node); let service = strval($service); let hints = arrval($hints); let res = &NULL; return to_int(getaddrinfo); - set $res = to_array(*res, + set $res = to_array(**res, to_int(ai_flags), to_int(ai_family), to_int(ai_socktype), @@ -30,7 +58,7 @@ function psi\getaddrinfo(string $node, string $service, array $hints, object &$r to_int(ai_addrlen), to_string(ai_addr, ai_addrlen), to_string(ai_canonname), - to_array(ai_next, ...) + to_array(*ai_next, ...) ); free freeaddrinfo(res); } \ No newline at end of file