| 2980 | |
| 2981 | #[pyfunction] |
| 2982 | fn inet_ntop(af_inet: i32, packed_ip: ArgBytesLike, vm: &VirtualMachine) -> PyResult<String> { |
| 2983 | let packed_ip = packed_ip.borrow_buf(); |
| 2984 | match af_inet { |
| 2985 | c::AF_INET => { |
| 2986 | let packed_ip = <&[u8; 4]>::try_from(&*packed_ip).map_err(|_| { |
| 2987 | vm.new_value_error("invalid length of packed IP address string") |
| 2988 | })?; |
| 2989 | Ok(Ipv4Addr::from(*packed_ip).to_string()) |
| 2990 | } |
| 2991 | c::AF_INET6 => { |
| 2992 | let packed_ip = <&[u8; 16]>::try_from(&*packed_ip).map_err(|_| { |
| 2993 | vm.new_value_error("invalid length of packed IP address string") |
| 2994 | })?; |
| 2995 | Ok(get_ipv6_addr_str(Ipv6Addr::from(*packed_ip))) |
| 2996 | } |
| 2997 | _ => Err(vm.new_value_error(format!("unknown address family {af_inet}"))), |
| 2998 | } |
| 2999 | } |
| 3000 | |
| 3001 | #[pyfunction] |
| 3002 | fn getprotobyname(name: PyStrRef, vm: &VirtualMachine) -> PyResult { |