1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/net/util.v

28 lines
609 B
V
Raw Permalink Normal View History

2020-08-21 00:01:37 +03:00
module net
const (
socket_max_port = u16(0xFFFF)
)
// validate_port checks whether a port is valid
// and returns the port or an error
pub fn validate_port(port int) !u16 {
if port <= net.socket_max_port {
2020-08-21 00:01:37 +03:00
return u16(port)
} else {
return err_port_out_of_range
}
}
// split address splits an address into its host name and its port
pub fn split_address(addr string) !(string, u16) {
2020-08-21 00:01:37 +03:00
port := addr.all_after_last(':').int()
address := addr.all_before_last(':')
// TODO(emily): Maybe do some more checking here
// to validate ipv6 address sanity?
p := validate_port(port)!
2020-08-21 00:01:37 +03:00
return address, p
}