net

package
v4.19.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2019 License: MIT Imports: 14 Imported by: 7,937

Documentation

Overview

Package net is a drop-in replacement to Golang's net package, with some more functionalities.

Index

Constants

View Source
const (
	// AddressFamilyIPv4 represents address as IPv4
	AddressFamilyIPv4 = AddressFamily(0)

	// AddressFamilyIPv6 represents address as IPv6
	AddressFamilyIPv6 = AddressFamily(1)

	// AddressFamilyDomain represents address as Domain
	AddressFamilyDomain = AddressFamily(2)
)
View Source
const IPv4len = net.IPv4len
View Source
const IPv6len = net.IPv6len

Variables

View Source
var (
	// LocalHostIP is a constant value for localhost IP in IPv4.
	LocalHostIP = IPAddress([]byte{127, 0, 0, 1})

	// AnyIP is a constant value for any IP in IPv4.
	AnyIP = IPAddress([]byte{0, 0, 0, 0})

	// LocalHostDomain is a constant value for localhost domain.
	LocalHostDomain = DomainAddress("localhost")

	// LocalHostIPv6 is a constant value for localhost IP in IPv6.
	LocalHostIPv6 = IPAddress([]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1})

	// AnyIPv6 is a constant value for any IP in IPv6.
	AnyIPv6 = IPAddress([]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
)
View Source
var CIDRMask = net.CIDRMask
View Source
var Dial = net.Dial
View Source
var DialTCP = net.DialTCP

DialTCP is an alias of net.DialTCP.

View Source
var DialUDP = net.DialUDP
View Source
var DialUnix = net.DialUnix
View Source
var FileConn = net.FileConn
View Source
var Listen = net.Listen
View Source
var ListenTCP = net.ListenTCP
View Source
var ListenUDP = net.ListenUDP
View Source
var ListenUnix = net.ListenUnix
View Source
var LookupIP = net.LookupIP
View Source
var Network_name = map[int32]string{
	0: "Unknown",
	1: "RawTCP",
	2: "TCP",
	3: "UDP",
}
View Source
var Network_value = map[string]int32{
	"Unknown": 0,
	"RawTCP":  1,
	"TCP":     2,
	"UDP":     3,
}
View Source
var ParseIP = net.ParseIP

ParseIP is an alias of net.ParseIP

View Source
var ResolveUDPAddr = net.ResolveUDPAddr
View Source
var ResolveUnixAddr = net.ResolveUnixAddr
View Source
var SplitHostPort = net.SplitHostPort

Functions

func HasNetwork

func HasNetwork(list []Network, network Network) bool

HasNetwork returns true if the network list has a certain network.

func NewConnection

func NewConnection(opts ...ConnectionOption) net.Conn

Types

type Addr

type Addr = net.Addr

type AddrError

type AddrError = net.AddrError

type Address

type Address interface {
	IP() net.IP     // IP of this Address
	Domain() string // Domain of this Address
	Family() AddressFamily

	String() string // String representation of this Address
}

Address represents a network address to be communicated with. It may be an IP address or domain address, not both. This interface doesn't resolve IP address for a given domain.

func DomainAddress

func DomainAddress(domain string) Address

DomainAddress creates an Address with given domain.

func IPAddress

func IPAddress(ip []byte) Address

IPAddress creates an Address with given IP.

func ParseAddress

func ParseAddress(addr string) Address

ParseAddress parses a string into an Address. The return value will be an IPAddress when the string is in the form of IPv4 or IPv6 address, or a DomainAddress otherwise.

type AddressFamily

type AddressFamily byte

AddressFamily is the type of address.

func (AddressFamily) IsDomain

func (af AddressFamily) IsDomain() bool

IsDomain returns true if current AddressFamily is Domain.

func (AddressFamily) IsIP

func (af AddressFamily) IsIP() bool

IsIP returns true if current AddressFamily is IPv6 or IPv4.

func (AddressFamily) IsIPv4

func (af AddressFamily) IsIPv4() bool

IsIPv4 returns true if current AddressFamily is IPv4.

func (AddressFamily) IsIPv6

func (af AddressFamily) IsIPv6() bool

IsIPv6 returns true if current AddressFamily is IPv6.

type Conn

type Conn = net.Conn

type ConnectionOption

type ConnectionOption func(*connection)

func ConnectionInput

func ConnectionInput(writer io.Writer) ConnectionOption

func ConnectionInputMulti

func ConnectionInputMulti(writer buf.Writer) ConnectionOption

func ConnectionLocalAddr

func ConnectionLocalAddr(a net.Addr) ConnectionOption

func ConnectionOnClose

func ConnectionOnClose(n io.Closer) ConnectionOption

func ConnectionOutput

func ConnectionOutput(reader io.Reader) ConnectionOption

func ConnectionOutputMulti

func ConnectionOutputMulti(reader buf.Reader) ConnectionOption

func ConnectionOutputMultiUDP

func ConnectionOutputMultiUDP(reader buf.Reader) ConnectionOption

func ConnectionRemoteAddr

func ConnectionRemoteAddr(a net.Addr) ConnectionOption

type Destination

type Destination struct {
	Address Address
	Port    Port
	Network Network
}

Destination represents a network destination including address and protocol (tcp / udp).

func DestinationFromAddr

func DestinationFromAddr(addr net.Addr) Destination

DestinationFromAddr generates a Destination from a net address.

func ParseDestination

func ParseDestination(dest string) (Destination, error)

ParseDestination converts a destination from its string presentation.

func TCPDestination

func TCPDestination(address Address, port Port) Destination

TCPDestination creates a TCP destination with given address

func UDPDestination

func UDPDestination(address Address, port Port) Destination

UDPDestination creates a UDP destination with given address

func (Destination) IsValid

func (d Destination) IsValid() bool

IsValid returns true if this Destination is valid.

func (Destination) NetAddr

func (d Destination) NetAddr() string

NetAddr returns the network address in this Destination in string form.

func (Destination) String

func (d Destination) String() string

String returns the strings form of this Destination.

type Dialer

type Dialer = net.Dialer

type Endpoint

type Endpoint struct {
	Network              Network     `protobuf:"varint,1,opt,name=network,proto3,enum=v2ray.core.common.net.Network" json:"network,omitempty"`
	Address              *IPOrDomain `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	Port                 uint32      `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

Endpoint of a network connection.

func (*Endpoint) AsDestination

func (p *Endpoint) AsDestination() Destination

AsDestination converts current Endpoint into Destination.

func (*Endpoint) Descriptor

func (*Endpoint) Descriptor() ([]byte, []int)

func (*Endpoint) GetAddress

func (m *Endpoint) GetAddress() *IPOrDomain

func (*Endpoint) GetNetwork

func (m *Endpoint) GetNetwork() Network

func (*Endpoint) GetPort

func (m *Endpoint) GetPort() uint32

func (*Endpoint) ProtoMessage

func (*Endpoint) ProtoMessage()

func (*Endpoint) Reset

func (m *Endpoint) Reset()

func (*Endpoint) String

func (m *Endpoint) String() string

func (*Endpoint) XXX_DiscardUnknown

func (m *Endpoint) XXX_DiscardUnknown()

func (*Endpoint) XXX_Marshal

func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Endpoint) XXX_Merge

func (m *Endpoint) XXX_Merge(src proto.Message)

func (*Endpoint) XXX_Size

func (m *Endpoint) XXX_Size() int

func (*Endpoint) XXX_Unmarshal

func (m *Endpoint) XXX_Unmarshal(b []byte) error

type Error

type Error = net.Error

type IP

type IP = net.IP

IP is an alias for net.IP.

type IPMask

type IPMask = net.IPMask

type IPNet

type IPNet = net.IPNet

type IPOrDomain

type IPOrDomain struct {
	// Types that are valid to be assigned to Address:
	//	*IPOrDomain_Ip
	//	*IPOrDomain_Domain
	Address              isIPOrDomain_Address `protobuf_oneof:"address"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

Address of a network host. It may be either an IP address or a domain address.

func NewIPOrDomain

func NewIPOrDomain(addr Address) *IPOrDomain

NewIPOrDomain translates Address to IPOrDomain

func (*IPOrDomain) AsAddress

func (d *IPOrDomain) AsAddress() Address

AsAddress translates IPOrDomain to Address.

func (*IPOrDomain) Descriptor

func (*IPOrDomain) Descriptor() ([]byte, []int)

func (*IPOrDomain) GetAddress

func (m *IPOrDomain) GetAddress() isIPOrDomain_Address

func (*IPOrDomain) GetDomain

func (m *IPOrDomain) GetDomain() string

func (*IPOrDomain) GetIp

func (m *IPOrDomain) GetIp() []byte

func (*IPOrDomain) ProtoMessage

func (*IPOrDomain) ProtoMessage()

func (*IPOrDomain) Reset

func (m *IPOrDomain) Reset()

func (*IPOrDomain) String

func (m *IPOrDomain) String() string

func (*IPOrDomain) XXX_DiscardUnknown

func (m *IPOrDomain) XXX_DiscardUnknown()

func (*IPOrDomain) XXX_Marshal

func (m *IPOrDomain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*IPOrDomain) XXX_Merge

func (m *IPOrDomain) XXX_Merge(src proto.Message)

func (*IPOrDomain) XXX_OneofWrappers

func (*IPOrDomain) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*IPOrDomain) XXX_Size

func (m *IPOrDomain) XXX_Size() int

func (*IPOrDomain) XXX_Unmarshal

func (m *IPOrDomain) XXX_Unmarshal(b []byte) error

type IPOrDomain_Domain

type IPOrDomain_Domain struct {
	Domain string `protobuf:"bytes,2,opt,name=domain,proto3,oneof"`
}

type IPOrDomain_Ip

type IPOrDomain_Ip struct {
	Ip []byte `protobuf:"bytes,1,opt,name=ip,proto3,oneof"`
}

type ListenConfig

type ListenConfig = net.ListenConfig

type Listener

type Listener = net.Listener

type MemoryPortList

type MemoryPortList []MemoryPortRange

func PortListFromProto

func PortListFromProto(l *PortList) MemoryPortList

func (MemoryPortList) Contains

func (mpl MemoryPortList) Contains(port Port) bool

type MemoryPortRange

type MemoryPortRange struct {
	From Port
	To   Port
}

func (MemoryPortRange) Contains

func (r MemoryPortRange) Contains(port Port) bool

type Network

type Network int32
const (
	Network_Unknown Network = 0
	Network_RawTCP  Network = 1 // Deprecated: Do not use.
	Network_TCP     Network = 2
	Network_UDP     Network = 3
)

func (Network) EnumDescriptor

func (Network) EnumDescriptor() ([]byte, []int)

func (Network) String

func (x Network) String() string

func (Network) SystemString

func (n Network) SystemString() string

type NetworkList

type NetworkList struct {
	Network              []Network `protobuf:"varint,1,rep,packed,name=network,proto3,enum=v2ray.core.common.net.Network" json:"network,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

NetworkList is a list of Networks.

func (*NetworkList) Descriptor

func (*NetworkList) Descriptor() ([]byte, []int)

func (*NetworkList) GetNetwork

func (m *NetworkList) GetNetwork() []Network

func (*NetworkList) ProtoMessage

func (*NetworkList) ProtoMessage()

func (*NetworkList) Reset

func (m *NetworkList) Reset()

func (*NetworkList) String

func (m *NetworkList) String() string

func (*NetworkList) XXX_DiscardUnknown

func (m *NetworkList) XXX_DiscardUnknown()

func (*NetworkList) XXX_Marshal

func (m *NetworkList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NetworkList) XXX_Merge

func (m *NetworkList) XXX_Merge(src proto.Message)

func (*NetworkList) XXX_Size

func (m *NetworkList) XXX_Size() int

func (*NetworkList) XXX_Unmarshal

func (m *NetworkList) XXX_Unmarshal(b []byte) error

type PacketConn

type PacketConn = net.PacketConn

type Port

type Port uint16

Port represents a network port in TCP and UDP protocol.

func PortFromBytes

func PortFromBytes(port []byte) Port

PortFromBytes converts a byte array to a Port, assuming bytes are in big endian order. @unsafe Caller must ensure that the byte array has at least 2 elements.

func PortFromInt

func PortFromInt(val uint32) (Port, error)

PortFromInt converts an integer to a Port. @error when the integer is not positive or larger then 65535

func PortFromString

func PortFromString(s string) (Port, error)

PortFromString converts a string to a Port. @error when the string is not an integer or the integral value is a not a valid Port.

func (Port) String

func (p Port) String() string

String returns the string presentation of a Port.

func (Port) Value

func (p Port) Value() uint16

Value return the correspoding uint16 value of a Port.

type PortList

type PortList struct {
	Range                []*PortRange `protobuf:"bytes,1,rep,name=range,proto3" json:"range,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

PortList is a list of ports.

func (*PortList) Descriptor

func (*PortList) Descriptor() ([]byte, []int)

func (*PortList) GetRange

func (m *PortList) GetRange() []*PortRange

func (*PortList) ProtoMessage

func (*PortList) ProtoMessage()

func (*PortList) Reset

func (m *PortList) Reset()

func (*PortList) String

func (m *PortList) String() string

func (*PortList) XXX_DiscardUnknown

func (m *PortList) XXX_DiscardUnknown()

func (*PortList) XXX_Marshal

func (m *PortList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PortList) XXX_Merge

func (m *PortList) XXX_Merge(src proto.Message)

func (*PortList) XXX_Size

func (m *PortList) XXX_Size() int

func (*PortList) XXX_Unmarshal

func (m *PortList) XXX_Unmarshal(b []byte) error

type PortRange

type PortRange struct {
	// The port that this range starts from.
	From uint32 `protobuf:"varint,1,opt,name=From,proto3" json:"From,omitempty"`
	// The port that this range ends with (inclusive).
	To                   uint32   `protobuf:"varint,2,opt,name=To,proto3" json:"To,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

PortRange represents a range of ports.

func SinglePortRange

func SinglePortRange(p Port) *PortRange

SinglePortRange returns a PortRange contains a single port.

func (PortRange) Contains

func (p PortRange) Contains(port Port) bool

Contains returns true if the given port is within the range of a PortRange.

func (*PortRange) Descriptor

func (*PortRange) Descriptor() ([]byte, []int)

func (PortRange) FromPort

func (p PortRange) FromPort() Port

FromPort returns the beginning port of this PortRange.

func (*PortRange) GetFrom

func (m *PortRange) GetFrom() uint32

func (*PortRange) GetTo

func (m *PortRange) GetTo() uint32

func (*PortRange) ProtoMessage

func (*PortRange) ProtoMessage()

func (*PortRange) Reset

func (m *PortRange) Reset()

func (*PortRange) String

func (m *PortRange) String() string

func (PortRange) ToPort

func (p PortRange) ToPort() Port

ToPort returns the end port of this PortRange.

func (*PortRange) XXX_DiscardUnknown

func (m *PortRange) XXX_DiscardUnknown()

func (*PortRange) XXX_Marshal

func (m *PortRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PortRange) XXX_Merge

func (m *PortRange) XXX_Merge(src proto.Message)

func (*PortRange) XXX_Size

func (m *PortRange) XXX_Size() int

func (*PortRange) XXX_Unmarshal

func (m *PortRange) XXX_Unmarshal(b []byte) error

type Resolver

type Resolver = net.Resolver

type TCPAddr

type TCPAddr = net.TCPAddr

type TCPConn

type TCPConn = net.TCPConn

type TCPListener

type TCPListener = net.TCPListener

type UDPAddr

type UDPAddr = net.UDPAddr

type UDPConn

type UDPConn = net.UDPConn

type UnixAddr

type UnixAddr = net.UnixAddr

type UnixConn

type UnixConn = net.UnixConn

type UnixListener

type UnixListener = net.UnixListener

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL