Documentation ¶
Index ¶
- Constants
- func GetMsgBuf(size int) []byte
- func GetMsgBufFor(m *dns.Msg) ([]byte, error)
- func GetTimer(t time.Duration) *time.Timer
- func ReadMsgFromTCP(c io.Reader) (m *dns.Msg, n int, err error)
- func ReadMsgFromUDP(c io.Reader, bufSize int) (m *dns.Msg, n int, err error)
- func ReadUDPMsgFrom(c net.PacketConn, bufSize int) (m *dns.Msg, from net.Addr, n int, err error)
- func ReleaseMsgBuf(buf []byte)
- func ReleaseTimer(timer *time.Timer)
- func ResetAndDrainTimer(timer *time.Timer, d time.Duration)
- func WriteMsgToTCP(c io.Writer, m *dns.Msg) (n int, err error)
- func WriteMsgToUDP(c io.Writer, m *dns.Msg) (n int, err error)
- func WriteRawMsgToTCP(c io.Writer, b []byte) (n int, err error)
- func WriteRawMsgToUDP(c io.Writer, b []byte) (n int, err error)
- func WriteUDPMsgTo(m *dns.Msg, c net.PacketConn, to net.Addr) (n int, err error)
- type Allocator
- type LoadOnceCache
Constants ¶
View Source
const ( IPv4UdpMaxPayload = 1472 // MTU 1500 - 20 IPv4 header - 8 udp header IPv6UdpMaxPayload = 1452 // MTU 1500 - 40 IPv6 header - 8 udp header )
Variables ¶
This section is empty.
Functions ¶
func ReadMsgFromTCP ¶
ReadMsgFromTCP reads msg from a tcp connection. brokenDataLeft indicates the frame size which have not be read from c. if brokenDataLeft is unknownBrokenDataSize(-1), c should not be reused anymore. n represents how many bytes are read from c.
func ReadUDPMsgFrom ¶
func ReleaseMsgBuf ¶
func ReleaseMsgBuf(buf []byte)
func ReleaseTimer ¶
func WriteMsgToTCP ¶
WriteMsgToTCP writes m to c. n represents how many bytes are wrote to c. This includes 2 bytes tcp length header.
func WriteRawMsgToTCP ¶
WriteRawMsgToTCP writes b to c. n represents how many bytes are wrote to c. This includes 2 bytes tcp length header.
func WriteUDPMsgTo ¶
Types ¶
type Allocator ¶
type Allocator struct {
// contains filtered or unexported fields
}
func NewAllocator ¶
func NewAllocator() *Allocator
NewAllocator initiates a []byte allocator for dns.Msg less than 65536 bytes, the waste(memory fragmentation) of space allocation is guaranteed to be no more than 50%.
type LoadOnceCache ¶
type LoadOnceCache struct {
// contains filtered or unexported fields
}
func NewCache ¶
func NewCache() *LoadOnceCache
func (*LoadOnceCache) Load ¶
func (c *LoadOnceCache) Load(key string) (interface{}, bool)
func (*LoadOnceCache) LoadFromCacheOrRawDisk ¶
func (c *LoadOnceCache) LoadFromCacheOrRawDisk(file string) (interface{}, []byte, error)
func (*LoadOnceCache) Put ¶
func (c *LoadOnceCache) Put(key string, data interface{}, ttl time.Duration)
func (*LoadOnceCache) Remove ¶
func (c *LoadOnceCache) Remove(key string)
Click to show internal directories.
Click to hide internal directories.