in src/os/_Private/native_sockaddr_from_sockaddr.php [14:44]
function native_sockaddr_from_sockaddr(OS\sockaddr $sa): namespace\sockaddr {
if ($sa is OS\sockaddr_un) {
$path = $sa->getPath();
if ($path is null) {
return new namespace\sockaddr_un_unnamed();
}
return new namespace\sockaddr_un_pathname($path);
}
if ($sa is OS\sockaddr_in) {
return new namespace\sockaddr_in(
$sa->getPort(),
$sa->getAddress(),
);
}
if ($sa is OS\sockaddr_in6) {
return new namespace\sockaddr_in6(
$sa->getPort(),
$sa->getFlowInfo(),
$sa->getAddress() as string,
$sa->getScopeID(),
);
}
throw_errno(
OS\Errno::EAFNOSUPPORT,
"Unhandled sockaddr class %s",
\get_class($sa),
);
}