XU XUv0.8.8
中文

API

#github.com/xulang-org/packages/dns

import: dns #github.com/xulang-org/packages/dns

counts: 7 fns, 7 methods, 3 types, 6 consts, 0 ifaces

External package `dns #github.com/xulang-org/packages/dns`, provided by github.com/xulang-org/packages.

github.com/xulang-org/packages · 0.1.1 · Install and use

client

XuAPI
pub fn client(endpoint string) DnsClient

Purpose

client; returns DnsClient.

Parameters

endpoint string
endpoint (string)

Returns

DnsClient — a value of this type

pool

XuAPI
pub fn pool(endpoint string, max_conns int) DnsPool

Purpose

pool; returns DnsPool.

Parameters

endpoint string
endpoint (string)
max_conns int
max_conns (int)

Returns

DnsPool — a value of this type

struct DnsClient

XuAPI
pub struct DnsClient {
    pub host string
    pub port int
}

Purpose

Public struct `DnsClient`.

Parameters

host string
host
port int
port

new_client

XuAPI
pub fn new_client(endpoint string) DnsClient

Purpose

Construct client.

Parameters

endpoint string
endpoint (string)

Returns

DnsClient — a value of this type

(DnsClient) connect

XuAPI
pub fn (c DnsClient) connect() int

Purpose

Call `connect` on `DnsClient`. Throws on failure.

Parameters

c DnsClient
receiver DnsClient (value receiver)

Returns

int — a value of this type

(DnsClient) resolve_a_on_fd

XuAPI
pub fn (c DnsClient) resolve_a_on_fd(fd int, domain string) []string

Purpose

Queries A-records over TCP DNS (RFC 1035 section 4.2.2) Throws on failure.

Parameters

c DnsClient
receiver DnsClient (value receiver)
fd int
file descriptor (int)
domain string
domain (string)

Returns

[]string — slice result

(DnsClient) resolve_a

XuAPI
pub fn (c DnsClient) resolve_a(domain string) []string

Purpose

Method on `DnsClient`: resolve a. Throws on failure.

Parameters

c DnsClient
receiver DnsClient (value receiver)
domain string
domain (string)

Returns

[]string — slice result

const type_a

XuAPI
pub const type_a = 1

Purpose

Public constant `type_a`. Value `1`.

Parameters

none

const type_ns

XuAPI
pub const type_ns = 2

Purpose

Public constant `type_ns`. Value `2`.

Parameters

none

const type_cname

XuAPI
pub const type_cname = 5

Purpose

Public constant `type_cname`. Value `5`.

Parameters

none

const type_soa

XuAPI
pub const type_soa = 6

Purpose

Public constant `type_soa`. Value `6`.

Parameters

none

const type_txt

XuAPI
pub const type_txt = 16

Purpose

Public constant `type_txt`. Value `16`.

Parameters

none

const class_in

XuAPI
pub const class_in = 1

Purpose

Public constant `class_in`. Value `1`.

Parameters

none

encode_domain

XuAPI
pub fn encode_domain(domain string) string

Purpose

Encodes "www.example.com" -> "\x03www\x07example\x03com\x00"

Parameters

domain string
domain (string)

Returns

string — result string

build_query_packet

XuAPI
pub fn build_query_packet(tx_id int, domain string, qtype int) string

Purpose

Builds a standard 12-byte DNS Header + Question section

Parameters

tx_id int
tx_id (int)
domain string
domain (string)
qtype int
qtype (int)

Returns

string — result string

struct DnsAnswer

XuAPI
pub struct DnsAnswer {
    pub name string
    pub rtype int
    pub rclass int
    pub ttl int
    pub data string
}

Purpose

Public struct `DnsAnswer`.

Parameters

name string
name
rtype int
field (int)
rclass int
field (int)
ttl int
field (int)
data string
data

parse_a_records

XuAPI
pub fn parse_a_records(pkt string) []string

Purpose

Parses DNS response and extracts IPv4 addresses (Type A)

Parameters

pkt string
pkt (string)

Returns

[]string — slice result

struct DnsPool

XuAPI
pub struct DnsPool {
    pub client DnsClient
    pub idle chan int
    pub max_idle int
}

Purpose

Public struct `DnsPool`.

Parameters

client DnsClient
field (DnsClient)
idle chan int
field (channel; type chan int)
max_idle int
field (int)

open_pool

XuAPI
pub fn open_pool(endpoint string, max_idle int) DnsPool

Purpose

Open pool.

Parameters

endpoint string
endpoint (string)
max_idle int
max_idle (int)

Returns

DnsPool — a value of this type

(&DnsPool) get_conn

XuAPI
pub fn (p &DnsPool) get_conn() int

Purpose

Method on `&DnsPool`: read conn.

Parameters

p &DnsPool
receiver &DnsPool (borrow)

Returns

int — a value of this type

(&DnsPool) put_conn

XuAPI
pub fn (p &DnsPool) put_conn(fd int)

Purpose

Method on `&DnsPool`: put connection.

Parameters

p &DnsPool
receiver &DnsPool (borrow)
fd int
file descriptor (int)

(&DnsPool) resolve_a

XuAPI
pub fn (p &DnsPool) resolve_a(domain string) []string

Purpose

Method on `&DnsPool`: resolve a. Throws on failure.

Parameters

p &DnsPool
receiver &DnsPool (borrow)
domain string
domain (string)

Returns

[]string — slice result

(&DnsPool) close

XuAPI
pub fn (p &DnsPool) close()

Purpose

Method on `&DnsPool`: close the resource.

Parameters

p &DnsPool
receiver &DnsPool (borrow)