domaininfo

package
v1.13.0 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package domaininfo implements a domain information database, to keep track of things we know about a particular domain.

Index

Constants

This section is empty.

Variables

View Source
var (
	SecLevel_name = map[int32]string{
		0: "PLAIN",
		1: "TLS_CLIENT",
		2: "TLS_INSECURE",
		3: "TLS_SECURE",
	}
	SecLevel_value = map[string]int32{
		"PLAIN":        0,
		"TLS_CLIENT":   1,
		"TLS_INSECURE": 2,
		"TLS_SECURE":   3,
	}
)

Enum value maps for SecLevel.

View Source
var File_domaininfo_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type DB

type DB struct {
	sync.Mutex
	// contains filtered or unexported fields
}

DB represents the persistent domain information database.

func New

func New(dir string) (*DB, error)

New opens a domain information database on the given dir, creating it if necessary. The returned database will not be loaded.

func (*DB) Clear added in v1.13.0

func (db *DB) Clear(tr *trace.Trace, domain string) bool

Clear sets the security level for the given domain to plain. This can be used for manual overrides in case there's an operational need to do so.

func (*DB) IncomingSecLevel

func (db *DB) IncomingSecLevel(tr *trace.Trace, domain string, level SecLevel) bool

IncomingSecLevel checks an incoming security level for the domain. Returns true if allowed, false otherwise.

func (*DB) OutgoingSecLevel

func (db *DB) OutgoingSecLevel(tr *trace.Trace, domain string, level SecLevel) bool

OutgoingSecLevel checks an incoming security level for the domain. Returns true if allowed, false otherwise.

func (*DB) Reload

func (db *DB) Reload() error

Reload the database from disk.

type Domain

type Domain struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Security level for mail coming from this domain (they send to us).
	IncomingSecLevel SecLevel `` /* 137-byte string literal not displayed */
	// Security level for mail going to this domain (we send to them).
	OutgoingSecLevel SecLevel `` /* 137-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Domain) Descriptor deprecated

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

Deprecated: Use Domain.ProtoReflect.Descriptor instead.

func (*Domain) GetIncomingSecLevel

func (x *Domain) GetIncomingSecLevel() SecLevel

func (*Domain) GetName

func (x *Domain) GetName() string

func (*Domain) GetOutgoingSecLevel

func (x *Domain) GetOutgoingSecLevel() SecLevel

func (*Domain) ProtoMessage

func (*Domain) ProtoMessage()

func (*Domain) ProtoReflect

func (x *Domain) ProtoReflect() protoreflect.Message

func (*Domain) Reset

func (x *Domain) Reset()

func (*Domain) String

func (x *Domain) String() string

type SecLevel

type SecLevel int32
const (
	// Does not do TLS.
	SecLevel_PLAIN SecLevel = 0
	// TLS client connection (no certificate validation).
	SecLevel_TLS_CLIENT SecLevel = 1
	// TLS, but with invalid certificates.
	SecLevel_TLS_INSECURE SecLevel = 2
	// TLS, with valid certificates.
	SecLevel_TLS_SECURE SecLevel = 3
)

func (SecLevel) Descriptor

func (SecLevel) Descriptor() protoreflect.EnumDescriptor

func (SecLevel) Enum

func (x SecLevel) Enum() *SecLevel

func (SecLevel) EnumDescriptor deprecated

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

Deprecated: Use SecLevel.Descriptor instead.

func (SecLevel) Number

func (x SecLevel) Number() protoreflect.EnumNumber

func (SecLevel) String

func (x SecLevel) String() string

func (SecLevel) Type

Jump to

Keyboard shortcuts

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