Source File
port.go
Belonging Package
net
// Copyright 2016 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package net// parsePort parses service as a decimal integer and returns the// corresponding value as port. It is the caller's responsibility to// parse service as a non-decimal integer when needsLookup is true.//// Some system resolvers will return a valid port number when given a number// over 65536 (see https://golang.org/issues/11715). Alas, the parser// can't bail early on numbers > 65536. Therefore reasonably large/small// numbers are parsed in full and rejected if invalid.func ( string) ( int, bool) {if == "" {// Lock in the legacy behavior that an empty string// means port 0. See golang.org/issue/13610.return 0, false}const (= uint32(1<<32 - 1)= uint32(1 << 30)):= falseif [0] == '+' {= [1:]} else if [0] == '-' {= true= [1:]}var uint32for , := range {if '0' <= && <= '9' {-= '0'} else {return 0, true}if >= {=break}*= 10:= + uint32()if < || > {=break}=}if ! && >= {= int( - 1)} else if && > {= int()} else {= int()}if {= -}return , false}