domaininfo

package
v1.11.1 Latest Latest
Warning

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

Go to latest
Published: Dec 26, 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) 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