dcs

package
v0.31.1 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2021 License: MIT Imports: 13 Imported by: 35

Documentation

Overview

Package dcs contains Telegram DCs list and some helpers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindDCs

func FindDCs(opts []tg.DCOption, dcID int, preferIPv6 bool) []tg.DCOption

FindDCs searches DCs candidates from given config.

func FindPrimaryDCs

func FindPrimaryDCs(opts []tg.DCOption, dcID int, preferIPv6 bool) []tg.DCOption

FindPrimaryDCs searches new primary DC from given config. Unlike FindDC, it filters CDNs and MediaOnly servers, returns error if not found.

func ProdDCs

func ProdDCs() []tg.DCOption

ProdDCs returns production DC list.

func StagingDCs

func StagingDCs() []tg.DCOption

StagingDCs returns staging DC list.

Types

type MTProxyOptions

type MTProxyOptions struct {
	// Dialer to use. net.Dialer will be used by default.
	Dialer transport.Dialer
	// Network to use.
	Network string
	// Random source for MTProxy obfuscator.
	Rand io.Reader
}

MTProxyOptions is MTProxy resolver creation options.

type PlainOptions

type PlainOptions struct {
	// Transport to use.
	Transport Transport
	// Dialer to use. Default net.Dialer will be used by default.
	Dialer transport.Dialer
	// Network to use.
	Network string
	// PreferIPv6 gives IPv6 DCs higher precedence.
	// Default is to prefer IPv4 DCs over IPv6.
	PreferIPv6 bool
}

PlainOptions is plain resolver creation options.

type Resolver

type Resolver interface {
	Primary(ctx context.Context, dc int, dcOptions []tg.DCOption) (transport.Conn, error)
	MediaOnly(ctx context.Context, dc int, dcOptions []tg.DCOption) (transport.Conn, error)
	CDN(ctx context.Context, dc int, dcOptions []tg.DCOption) (transport.Conn, error)
}

Resolver resolves DC and creates transport MTProto connection.

func MTProxyResolver

func MTProxyResolver(addr string, secret []byte, opts MTProxyOptions) (Resolver, error)

MTProxyResolver creates MTProxy obfuscated DC resolver.

See https://core.telegram.org/mtproto/mtproto-transports#transport-obfuscation.

func PlainResolver

func PlainResolver(opts PlainOptions) Resolver

PlainResolver creates plain DC resolver.

type Transport

type Transport interface {
	Codec() transport.Codec
	Handshake(conn net.Conn) (transport.Conn, error)
}

Transport is MTProto connection creator.

Jump to

Keyboard shortcuts

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