mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
This patch adds dovecot support to the chasquid daemon, using the internal dovecot library added in previous patches. Dovecot support is still considered EXPERIMENTAL and may be reverted, or changed in backwards-incompatible ways. The patch also adds the corresponding integration test, which brings up a dovecot server with a custom configuration, and tests chasquid's authentication against it. If dovecot is not installed, the test is skipped.
147 lines
8.3 KiB
Go
147 lines
8.3 KiB
Go
// Code generated by protoc-gen-go.
|
|
// source: config.proto
|
|
// DO NOT EDIT!
|
|
|
|
/*
|
|
Package config is a generated protocol buffer package.
|
|
|
|
It is generated from these files:
|
|
config.proto
|
|
|
|
It has these top-level messages:
|
|
Config
|
|
*/
|
|
package config
|
|
|
|
import proto "github.com/golang/protobuf/proto"
|
|
import fmt "fmt"
|
|
import math "math"
|
|
|
|
// Reference imports to suppress errors if they are not otherwise used.
|
|
var _ = proto.Marshal
|
|
var _ = fmt.Errorf
|
|
var _ = math.Inf
|
|
|
|
// This is a compile-time assertion to ensure that this generated file
|
|
// is compatible with the proto package it is being compiled against.
|
|
// A compilation error at this line likely means your copy of the
|
|
// proto package needs to be updated.
|
|
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
|
|
|
type Config struct {
|
|
// Default hostname to use when saying hello.
|
|
// This is used to say hello to clients, for aesthetic purposes.
|
|
// Default: the system's hostname.
|
|
Hostname string `protobuf:"bytes,1,opt,name=hostname" json:"hostname,omitempty"`
|
|
// Maximum email size, in megabytes.
|
|
// Default: 50.
|
|
MaxDataSizeMb int64 `protobuf:"varint,2,opt,name=max_data_size_mb,json=maxDataSizeMb" json:"max_data_size_mb,omitempty"`
|
|
// Addresses to listen on for SMTP (usually port 25).
|
|
// Default: "systemd", which means systemd passes sockets to us.
|
|
// systemd sockets must be named with "FileDescriptorName=smtp".
|
|
SmtpAddress []string `protobuf:"bytes,3,rep,name=smtp_address,json=smtpAddress" json:"smtp_address,omitempty"`
|
|
// Addresses to listen on for submission (usually port 587).
|
|
// Default: "systemd", which means systemd passes sockets to us.
|
|
// systemd sockets must be named with "FileDescriptorName=submission".
|
|
SubmissionAddress []string `protobuf:"bytes,4,rep,name=submission_address,json=submissionAddress" json:"submission_address,omitempty"`
|
|
// Addresses to listen on for submission-over-TLS (usually port 465).
|
|
// Default: "systemd", which means systemd passes sockets to us.
|
|
// systemd sockets must be named with "FileDescriptorName=submission_tls".
|
|
SubmissionOverTlsAddress []string `protobuf:"bytes,5,rep,name=submission_over_tls_address,json=submissionOverTlsAddress" json:"submission_over_tls_address,omitempty"`
|
|
// Address for the monitoring http server.
|
|
// Do NOT expose this to the public internet.
|
|
// Default: no monitoring http server.
|
|
MonitoringAddress string `protobuf:"bytes,6,opt,name=monitoring_address,json=monitoringAddress" json:"monitoring_address,omitempty"`
|
|
// Mail delivery agent (MDA, also known as LDA) to use.
|
|
// This should point to the binary to use to deliver email to local users.
|
|
// The content of the email will be passed via stdin.
|
|
// If it exits unsuccessfully, we assume the mail was not delivered.
|
|
// Default: "maildrop".
|
|
MailDeliveryAgentBin string `protobuf:"bytes,7,opt,name=mail_delivery_agent_bin,json=mailDeliveryAgentBin" json:"mail_delivery_agent_bin,omitempty"`
|
|
// Command line arguments for the mail delivery agent. One per argument.
|
|
// Some replacements will be done.
|
|
// On an email sent from marsnik@mars to venera@venus:
|
|
// - %from% -> from address (marsnik@mars)
|
|
// - %from_user% -> from user (marsnik)
|
|
// - %from_domain% -> from domain (mars)
|
|
// - %to% -> to address (venera@venus)
|
|
// - %to_user% -> to user (venera)
|
|
// - %to_domain% -> to domain (venus)
|
|
//
|
|
// Default: "-f", "%from%", "-d", "%to_user%" (adequate for procmail
|
|
// and maildrop).
|
|
MailDeliveryAgentArgs []string `protobuf:"bytes,8,rep,name=mail_delivery_agent_args,json=mailDeliveryAgentArgs" json:"mail_delivery_agent_args,omitempty"`
|
|
// Directory where we store our persistent data.
|
|
// Default: "/var/lib/chasquid"
|
|
DataDir string `protobuf:"bytes,9,opt,name=data_dir,json=dataDir" json:"data_dir,omitempty"`
|
|
// Suffix separator, to perform suffix removal of local users.
|
|
// For example, if you set this to "-+", email to local user
|
|
// "user-blah" and "user+blah" will be delivered to "user".
|
|
// Including "+" is strongly encouraged, as it is assumed for email
|
|
// forwarding.
|
|
// Default: "+".
|
|
SuffixSeparators string `protobuf:"bytes,10,opt,name=suffix_separators,json=suffixSeparators" json:"suffix_separators,omitempty"`
|
|
// Characters to drop from the user part on local emails.
|
|
// For example, if you set this to "._", email to local user
|
|
// "u.se_r" will be delivered to "user".
|
|
// Default: ".".
|
|
DropCharacters string `protobuf:"bytes,11,opt,name=drop_characters,json=dropCharacters" json:"drop_characters,omitempty"`
|
|
// Path where to write the mail log to.
|
|
// If "<syslog>", log using the syslog (at MAIL|INFO priority).
|
|
// Default: <syslog>
|
|
MailLogPath string `protobuf:"bytes,12,opt,name=mail_log_path,json=mailLogPath" json:"mail_log_path,omitempty"`
|
|
// EXPERIMENTAL - Enable dovecot authentication.
|
|
// Domains that don't have an user database will be authenticated via
|
|
// dovecot.
|
|
DovecotAuth bool `protobuf:"varint,13,opt,name=dovecot_auth,json=dovecotAuth" json:"dovecot_auth,omitempty"`
|
|
// EXPERIMENTAL - Dovecot userdb path. If dovecot_auth is set and this
|
|
// is not, we will try to autodetect it.
|
|
// Example: /var/run/dovecot/auth-userdb
|
|
DovecotUserdbPath string `protobuf:"bytes,14,opt,name=dovecot_userdb_path,json=dovecotUserdbPath" json:"dovecot_userdb_path,omitempty"`
|
|
// EXPERIMENTAL - Dovecot client path. If dovecot_auth is set and this
|
|
// is not, we will try to autodetect it.
|
|
// Example: /var/run/dovecot/auth-client
|
|
DovecotClientPath string `protobuf:"bytes,15,opt,name=dovecot_client_path,json=dovecotClientPath" json:"dovecot_client_path,omitempty"`
|
|
}
|
|
|
|
func (m *Config) Reset() { *m = Config{} }
|
|
func (m *Config) String() string { return proto.CompactTextString(m) }
|
|
func (*Config) ProtoMessage() {}
|
|
func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
|
|
|
|
func init() {
|
|
proto.RegisterType((*Config)(nil), "Config")
|
|
}
|
|
|
|
func init() { proto.RegisterFile("config.proto", fileDescriptor0) }
|
|
|
|
var fileDescriptor0 = []byte{
|
|
// 409 bytes of a gzipped FileDescriptorProto
|
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x8f, 0x12, 0x31,
|
|
0x14, 0xc7, 0x83, 0xb8, 0x2c, 0x14, 0xd8, 0x5d, 0xaa, 0xc6, 0xaa, 0x17, 0xdc, 0xcb, 0x92, 0x18,
|
|
0xf7, 0x62, 0x8c, 0x27, 0x0f, 0x08, 0x47, 0x8d, 0x86, 0xd5, 0x73, 0xf3, 0x66, 0xa6, 0xcc, 0x34,
|
|
0x99, 0x69, 0x27, 0xef, 0x75, 0x08, 0xf2, 0x3d, 0xfc, 0xbe, 0xa6, 0x0f, 0x18, 0x30, 0xee, 0xb1,
|
|
0xff, 0xdf, 0xef, 0xdf, 0x76, 0xde, 0x54, 0x8c, 0x52, 0xef, 0xd6, 0x36, 0xbf, 0xaf, 0xd1, 0x07,
|
|
0x7f, 0xfb, 0xe7, 0x42, 0xf4, 0x16, 0x1c, 0xc8, 0xd7, 0xa2, 0x5f, 0x78, 0x0a, 0x0e, 0x2a, 0xa3,
|
|
0x3a, 0xd3, 0xce, 0x6c, 0xb0, 0x6a, 0xd7, 0xf2, 0x4e, 0xdc, 0x54, 0xb0, 0xd5, 0x19, 0x04, 0xd0,
|
|
0x64, 0x77, 0x46, 0x57, 0x89, 0x7a, 0x32, 0xed, 0xcc, 0xba, 0xab, 0x71, 0x05, 0xdb, 0x25, 0x04,
|
|
0x78, 0xb0, 0x3b, 0xf3, 0x2d, 0x91, 0x6f, 0xc5, 0x88, 0xaa, 0x50, 0x6b, 0xc8, 0x32, 0x34, 0x44,
|
|
0xaa, 0x3b, 0xed, 0xce, 0x06, 0xab, 0x61, 0xcc, 0xe6, 0xfb, 0x48, 0xbe, 0x17, 0x92, 0x9a, 0xa4,
|
|
0xb2, 0x44, 0xd6, 0xbb, 0x56, 0x7c, 0xca, 0xe2, 0xe4, 0x44, 0x8e, 0xfa, 0x67, 0xf1, 0xe6, 0x4c,
|
|
0xf7, 0x1b, 0x83, 0x3a, 0x94, 0xd4, 0xf6, 0x2e, 0xb8, 0xa7, 0x4e, 0xca, 0xf7, 0x8d, 0xc1, 0x9f,
|
|
0x25, 0x9d, 0x9d, 0x56, 0x79, 0x67, 0x83, 0x47, 0xeb, 0xf2, 0xb6, 0xd5, 0xe3, 0xef, 0x9b, 0x9c,
|
|
0xc8, 0x51, 0xff, 0x28, 0x5e, 0x56, 0x60, 0x4b, 0x9d, 0x99, 0xd2, 0x6e, 0x0c, 0xfe, 0xd6, 0x90,
|
|
0x1b, 0x17, 0x74, 0x62, 0x9d, 0xba, 0xe4, 0xce, 0xf3, 0x88, 0x97, 0x07, 0x3a, 0x8f, 0xf0, 0x8b,
|
|
0x75, 0xf2, 0x93, 0x50, 0x8f, 0xd5, 0x00, 0x73, 0x52, 0x7d, 0xbe, 0xe1, 0x8b, 0xff, 0x7a, 0x73,
|
|
0xcc, 0x49, 0xbe, 0x12, 0x7d, 0x1e, 0x6a, 0x66, 0x51, 0x0d, 0xf8, 0x80, 0xcb, 0xb8, 0x5e, 0x5a,
|
|
0x94, 0xef, 0xc4, 0x84, 0x9a, 0xf5, 0xda, 0x6e, 0x35, 0x99, 0x1a, 0x10, 0x82, 0x47, 0x52, 0x82,
|
|
0x9d, 0x9b, 0x3d, 0x78, 0x68, 0x73, 0x79, 0x27, 0xae, 0x33, 0xf4, 0xb5, 0x4e, 0x0b, 0x40, 0x48,
|
|
0x83, 0x41, 0x52, 0x43, 0x56, 0xaf, 0x62, 0xbc, 0x68, 0x53, 0x79, 0x2b, 0xc6, 0x7c, 0xd3, 0xd2,
|
|
0xe7, 0xba, 0x86, 0x50, 0xa8, 0x11, 0x6b, 0xc3, 0x18, 0x7e, 0xf5, 0xf9, 0x0f, 0x08, 0x45, 0xfc,
|
|
0x89, 0x99, 0xdf, 0x98, 0xd4, 0x07, 0x0d, 0x4d, 0x28, 0xd4, 0x78, 0xda, 0x99, 0xf5, 0x57, 0xc3,
|
|
0x43, 0x36, 0x6f, 0x42, 0x21, 0xef, 0xc5, 0xb3, 0xa3, 0xd2, 0x90, 0xc1, 0x2c, 0xd9, 0x6f, 0x76,
|
|
0xb5, 0x9f, 0xeb, 0x01, 0xfd, 0x62, 0xc2, 0x5b, 0x9e, 0xf9, 0x69, 0x69, 0xe3, 0x6c, 0xd8, 0xbf,
|
|
0xfe, 0xc7, 0x5f, 0x30, 0x89, 0x7e, 0xd2, 0xe3, 0xe7, 0xf9, 0xe1, 0x6f, 0x00, 0x00, 0x00, 0xff,
|
|
0xff, 0x37, 0xa3, 0x19, 0x18, 0xae, 0x02, 0x00, 0x00,
|
|
}
|