home

package
v0.105.0-beta.3 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2021 License: GPL-3.0 Imports: 70 Imported by: 0

Documentation

Overview

Package home contains AdGuard Home's HTTP API methods.

Index

Constants

View Source
const (
	ClientSourceWHOIS clientSource = iota
	ClientSourceRDNS
	ClientSourceDHCP
	ClientSourceARP
	ClientSourceHostsFile
)

Client sources. The order determines the priority.

View Source
const (
	// ReadTimeout is the maximum duration for reading the entire request,
	// including the body.
	ReadTimeout = 10 * time.Second

	// ReadHeaderTimeout is the amount of time allowed to read request
	// headers.
	ReadHeaderTimeout = 10 * time.Second

	// WriteTimeout is the maximum duration before timing out writes of the
	// response.
	WriteTimeout = 10 * time.Second
)
View Source
const MaxConnReadSize = 64 * 1024

MaxConnReadSize is an upper limit in bytes for reading from net.Conn.

View Source
const MaxFileSize = 1024 * 1024

MaxFileSize is a maximum file length in bytes.

View Source
const RequestBodySizeLimit = 64 * 1024

RequestBodySizeLimit is maximum request body length in bytes.

Variables

View Source
var Context homeContext

Context - a global context object

View Source
var GLMode bool

GLMode - enable GL-Inet compatibility mode

Functions

func Main

func Main()

Main is the entry point

func RegisterAuthHandlers

func RegisterAuthHandlers()

RegisterAuthHandlers - register handlers

func StartMods

func StartMods() error

StartMods initializes and starts the DNS server after installation.

func WebCheckPortAvailable

func WebCheckPortAvailable(port int) bool

WebCheckPortAvailable - check if port is available BUT: if we are already using this port, no need

Types

type Auth

type Auth struct {
	// contains filtered or unexported fields
}

Auth - global object

func InitAuth

func InitAuth(dbFilename string, users []User, sessionTTL uint32) *Auth

InitAuth - create a global object

func (*Auth) AuthRequired

func (a *Auth) AuthRequired() bool

AuthRequired - if authentication is required

func (*Auth) Close

func (a *Auth) Close()

Close - close module

func (*Auth) GetUsers

func (a *Auth) GetUsers() []User

GetUsers - get users

func (*Auth) RemoveSession

func (a *Auth) RemoveSession(sess string)

RemoveSession - remove session

func (*Auth) UserAdd

func (a *Auth) UserAdd(u *User, password string)

UserAdd - add new user

func (*Auth) UserFind

func (a *Auth) UserFind(login, password string) User

UserFind - find a user

type Client

type Client struct {
	IDs                 []string
	Tags                []string
	Name                string
	UseOwnSettings      bool // false: use global settings
	FilteringEnabled    bool
	SafeSearchEnabled   bool
	SafeBrowsingEnabled bool
	ParentalEnabled     bool

	UseOwnBlockedServices bool // false: use global settings
	BlockedServices       []string

	Upstreams []string // list of upstream servers to be used for the client's requests
	// contains filtered or unexported fields
}

Client contains information about persistent clients.

type ClientHost

type ClientHost struct {
	Host      string
	Source    clientSource
	WhoisInfo [][]string // [[key,value], ...]
}

ClientHost information

type Filtering

type Filtering struct {
	// contains filtered or unexported fields
}

Filtering - module object

func (*Filtering) Close

func (f *Filtering) Close()

Close - close the module

func (*Filtering) Init

func (f *Filtering) Init()

Init - initialize the module

func (*Filtering) RegisterFilteringHandlers

func (f *Filtering) RegisterFilteringHandlers()

RegisterFilteringHandlers - register handlers

func (*Filtering) Start

func (f *Filtering) Start()

Start - start the module

type HTTPSServer

type HTTPSServer struct {
	// contains filtered or unexported fields
}

HTTPSServer - HTTPS Server

type RDNS

type RDNS struct {
	// contains filtered or unexported fields
}

RDNS - module context

func InitRDNS

func InitRDNS(dnsServer *dnsforward.Server, clients *clientsContainer) *RDNS

InitRDNS - create module context

func (*RDNS) Begin

func (r *RDNS) Begin(ip net.IP)

Begin - add IP address to rDNS queue

type TLSMod

type TLSMod struct {
	// contains filtered or unexported fields
}

TLSMod - TLS module object

func (*TLSMod) Close

func (t *TLSMod) Close()

Close - close module

func (*TLSMod) Reload

func (t *TLSMod) Reload()

Reload updates the configuration of TLSMod and restarts it.

func (*TLSMod) Start

func (t *TLSMod) Start()

Start updates the configuration of TLSMod and starts it.

func (*TLSMod) WriteDiskConfig

func (t *TLSMod) WriteDiskConfig(conf *tlsConfigSettings)

WriteDiskConfig - write config

type User

type User struct {
	Name         string `yaml:"name"`
	PasswordHash string `yaml:"password"` // bcrypt hash
}

User object

type Web

type Web struct {
	// contains filtered or unexported fields
}

Web - module object

func CreateWeb

func CreateWeb(conf *webConfig) *Web

CreateWeb - create module

func (*Web) Close

func (web *Web) Close(ctx context.Context)

Close gracefully shuts down the HTTP servers.

func (*Web) Start

func (web *Web) Start()

Start - start serving HTTP requests

func (*Web) TLSConfigChanged

func (web *Web) TLSConfigChanged(ctx context.Context, tlsConf tlsConfigSettings)

TLSConfigChanged updates the TLS configuration and restarts the HTTPS server if necessary.

type Whois

type Whois struct {
	// contains filtered or unexported fields
}

Whois - module context

func (*Whois) Begin

func (w *Whois) Begin(ip net.IP)

Begin - begin requesting WHOIS info

Jump to

Keyboard shortcuts

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