449 lines
15 KiB
Go
449 lines
15 KiB
Go
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc v3.19.6
|
|
// source: config.proto
|
|
|
|
package config
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
unsafe "unsafe"
|
|
)
|
|
|
|
const (
|
|
// Verify that this generated code is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
)
|
|
|
|
type Config struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Default hostname to use when saying hello.
|
|
// This is used:
|
|
// 1. To say hello to clients, for aesthetic purposes.
|
|
// 2. As the HELO/EHLO domain on outgoing SMTP connections, so ideally
|
|
// it would resolve back to the server. In practice, it's not a big
|
|
// deal if it isn't, but it makes troubleshooting easier.
|
|
//
|
|
// Default: the system's hostname.
|
|
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
|
|
// Maximum email size, in megabytes.
|
|
// Default: 50.
|
|
MaxDataSizeMb int64 `protobuf:"varint,2,opt,name=max_data_size_mb,json=maxDataSizeMb,proto3" 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,proto3" 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,proto3" 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,proto3" 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,proto3" 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,proto3" 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,proto3" 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,proto3" 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,proto3,oneof" 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,proto3,oneof" json:"drop_characters,omitempty"`
|
|
// Path where to write the mail log to.
|
|
// If "<syslog>", log using the syslog (at MAIL|INFO priority).
|
|
// If "<stdout>", log to stdout; if "<stderr>", log to stderr.
|
|
// Default: <syslog>
|
|
MailLogPath string `protobuf:"bytes,12,opt,name=mail_log_path,json=mailLogPath,proto3" json:"mail_log_path,omitempty"`
|
|
// 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,proto3" json:"dovecot_auth,omitempty"`
|
|
// Dovecot userdb path. If dovecot_auth is set and this
|
|
// is not, we will try to autodetect it.
|
|
// Example: unix:/var/run/dovecot/auth-userdb
|
|
DovecotUserdbPath string `protobuf:"bytes,14,opt,name=dovecot_userdb_path,json=dovecotUserdbPath,proto3" json:"dovecot_userdb_path,omitempty"`
|
|
// Dovecot client path. If dovecot_auth is set and this
|
|
// is not, we will try to autodetect it.
|
|
// Example: unix:/var/run/dovecot/auth-client
|
|
// Example: tcp:dovecot:12345
|
|
DovecotClientPath string `protobuf:"bytes,15,opt,name=dovecot_client_path,json=dovecotClientPath,proto3" json:"dovecot_client_path,omitempty"`
|
|
// Expect incoming SMTP connections to use the HAProxy protocol.
|
|
// This allows deploying chasquid behind a HAProxy server, as the
|
|
// address information is preserved.
|
|
HaproxyIncoming bool `protobuf:"varint,16,opt,name=haproxy_incoming,json=haproxyIncoming,proto3" json:"haproxy_incoming,omitempty"`
|
|
SmtpRelay string `protobuf:"bytes,17,opt,name=smtp_relay,json=smtpRelay,proto3" json:"smtp_relay,omitempty"`
|
|
Auth map[string]*Config_Auth `protobuf:"bytes,21,rep,name=auth,proto3" json:"auth,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
// Maximum number of items in the queue.
|
|
// If we have this many items in the queue, we reject new incoming
|
|
// email. Be careful when increasing this, as we keep all items in
|
|
// memory.
|
|
// Default: 200 (but may change in the future).
|
|
MaxQueueItems uint32 `protobuf:"varint,22,opt,name=max_queue_items,json=maxQueueItems,proto3" json:"max_queue_items,omitempty"`
|
|
// How long do we keep retrying sending an email before we give up.
|
|
// Once we give up, a DSN will be sent back to the sender.
|
|
// The format is a Go duration string (e.g. "48h" or "360m"; note days
|
|
// are not a supported unit).
|
|
// Default: "20h" (but may change in the future).
|
|
GiveUpSendAfter string `protobuf:"bytes,23,opt,name=give_up_send_after,json=giveUpSendAfter,proto3" json:"give_up_send_after,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Config) Reset() {
|
|
*x = Config{}
|
|
mi := &file_config_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Config) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Config) ProtoMessage() {}
|
|
|
|
func (x *Config) ProtoReflect() protoreflect.Message {
|
|
mi := &file_config_proto_msgTypes[0]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Config.ProtoReflect.Descriptor instead.
|
|
func (*Config) Descriptor() ([]byte, []int) {
|
|
return file_config_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *Config) GetHostname() string {
|
|
if x != nil {
|
|
return x.Hostname
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetMaxDataSizeMb() int64 {
|
|
if x != nil {
|
|
return x.MaxDataSizeMb
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Config) GetSmtpAddress() []string {
|
|
if x != nil {
|
|
return x.SmtpAddress
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetSubmissionAddress() []string {
|
|
if x != nil {
|
|
return x.SubmissionAddress
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetSubmissionOverTlsAddress() []string {
|
|
if x != nil {
|
|
return x.SubmissionOverTlsAddress
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetMonitoringAddress() string {
|
|
if x != nil {
|
|
return x.MonitoringAddress
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetMailDeliveryAgentBin() string {
|
|
if x != nil {
|
|
return x.MailDeliveryAgentBin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetMailDeliveryAgentArgs() []string {
|
|
if x != nil {
|
|
return x.MailDeliveryAgentArgs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetDataDir() string {
|
|
if x != nil {
|
|
return x.DataDir
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetSuffixSeparators() string {
|
|
if x != nil && x.SuffixSeparators != nil {
|
|
return *x.SuffixSeparators
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetDropCharacters() string {
|
|
if x != nil && x.DropCharacters != nil {
|
|
return *x.DropCharacters
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetMailLogPath() string {
|
|
if x != nil {
|
|
return x.MailLogPath
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetDovecotAuth() bool {
|
|
if x != nil {
|
|
return x.DovecotAuth
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Config) GetDovecotUserdbPath() string {
|
|
if x != nil {
|
|
return x.DovecotUserdbPath
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetDovecotClientPath() string {
|
|
if x != nil {
|
|
return x.DovecotClientPath
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetHaproxyIncoming() bool {
|
|
if x != nil {
|
|
return x.HaproxyIncoming
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Config) GetSmtpRelay() string {
|
|
if x != nil {
|
|
return x.SmtpRelay
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetAuth() map[string]*Config_Auth {
|
|
if x != nil {
|
|
return x.Auth
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetMaxQueueItems() uint32 {
|
|
if x != nil {
|
|
return x.MaxQueueItems
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Config) GetGiveUpSendAfter() string {
|
|
if x != nil {
|
|
return x.GiveUpSendAfter
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Config_Auth struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Username string `protobuf:"bytes,18,opt,name=username,proto3" json:"username,omitempty"`
|
|
Password string `protobuf:"bytes,19,opt,name=password,proto3" json:"password,omitempty"`
|
|
Domain string `protobuf:"bytes,20,opt,name=domain,proto3" json:"domain,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Config_Auth) Reset() {
|
|
*x = Config_Auth{}
|
|
mi := &file_config_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Config_Auth) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Config_Auth) ProtoMessage() {}
|
|
|
|
func (x *Config_Auth) ProtoReflect() protoreflect.Message {
|
|
mi := &file_config_proto_msgTypes[1]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Config_Auth.ProtoReflect.Descriptor instead.
|
|
func (*Config_Auth) Descriptor() ([]byte, []int) {
|
|
return file_config_proto_rawDescGZIP(), []int{0, 0}
|
|
}
|
|
|
|
func (x *Config_Auth) GetUsername() string {
|
|
if x != nil {
|
|
return x.Username
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config_Auth) GetPassword() string {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config_Auth) GetDomain() string {
|
|
if x != nil {
|
|
return x.Domain
|
|
}
|
|
return ""
|
|
}
|
|
|
|
var File_config_proto protoreflect.FileDescriptor
|
|
|
|
const file_config_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\fconfig.proto\"\xae\b\n" +
|
|
"\x06Config\x12\x1a\n" +
|
|
"\bhostname\x18\x01 \x01(\tR\bhostname\x12'\n" +
|
|
"\x10max_data_size_mb\x18\x02 \x01(\x03R\rmaxDataSizeMb\x12!\n" +
|
|
"\fsmtp_address\x18\x03 \x03(\tR\vsmtpAddress\x12-\n" +
|
|
"\x12submission_address\x18\x04 \x03(\tR\x11submissionAddress\x12=\n" +
|
|
"\x1bsubmission_over_tls_address\x18\x05 \x03(\tR\x18submissionOverTlsAddress\x12-\n" +
|
|
"\x12monitoring_address\x18\x06 \x01(\tR\x11monitoringAddress\x125\n" +
|
|
"\x17mail_delivery_agent_bin\x18\a \x01(\tR\x14mailDeliveryAgentBin\x127\n" +
|
|
"\x18mail_delivery_agent_args\x18\b \x03(\tR\x15mailDeliveryAgentArgs\x12\x19\n" +
|
|
"\bdata_dir\x18\t \x01(\tR\adataDir\x120\n" +
|
|
"\x11suffix_separators\x18\n" +
|
|
" \x01(\tH\x00R\x10suffixSeparators\x88\x01\x01\x12,\n" +
|
|
"\x0fdrop_characters\x18\v \x01(\tH\x01R\x0edropCharacters\x88\x01\x01\x12\"\n" +
|
|
"\rmail_log_path\x18\f \x01(\tR\vmailLogPath\x12!\n" +
|
|
"\fdovecot_auth\x18\r \x01(\bR\vdovecotAuth\x12.\n" +
|
|
"\x13dovecot_userdb_path\x18\x0e \x01(\tR\x11dovecotUserdbPath\x12.\n" +
|
|
"\x13dovecot_client_path\x18\x0f \x01(\tR\x11dovecotClientPath\x12)\n" +
|
|
"\x10haproxy_incoming\x18\x10 \x01(\bR\x0fhaproxyIncoming\x12\x1d\n" +
|
|
"\n" +
|
|
"smtp_relay\x18\x11 \x01(\tR\tsmtpRelay\x12%\n" +
|
|
"\x04auth\x18\x15 \x03(\v2\x11.Config.AuthEntryR\x04auth\x12&\n" +
|
|
"\x0fmax_queue_items\x18\x16 \x01(\rR\rmaxQueueItems\x12+\n" +
|
|
"\x12give_up_send_after\x18\x17 \x01(\tR\x0fgiveUpSendAfter\x1aV\n" +
|
|
"\x04Auth\x12\x1a\n" +
|
|
"\busername\x18\x12 \x01(\tR\busername\x12\x1a\n" +
|
|
"\bpassword\x18\x13 \x01(\tR\bpassword\x12\x16\n" +
|
|
"\x06domain\x18\x14 \x01(\tR\x06domain\x1aE\n" +
|
|
"\tAuthEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\"\n" +
|
|
"\x05value\x18\x02 \x01(\v2\f.Config.AuthR\x05value:\x028\x01B\x14\n" +
|
|
"\x12_suffix_separatorsB\x12\n" +
|
|
"\x10_drop_charactersB,Z*blitiri.com.ar/go/chasquid/internal/configb\x06proto3"
|
|
|
|
var (
|
|
file_config_proto_rawDescOnce sync.Once
|
|
file_config_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_config_proto_rawDescGZIP() []byte {
|
|
file_config_proto_rawDescOnce.Do(func() {
|
|
file_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_config_proto_rawDesc), len(file_config_proto_rawDesc)))
|
|
})
|
|
return file_config_proto_rawDescData
|
|
}
|
|
|
|
var file_config_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
|
var file_config_proto_goTypes = []any{
|
|
(*Config)(nil), // 0: Config
|
|
(*Config_Auth)(nil), // 1: Config.Auth
|
|
nil, // 2: Config.AuthEntry
|
|
}
|
|
var file_config_proto_depIdxs = []int32{
|
|
2, // 0: Config.auth:type_name -> Config.AuthEntry
|
|
1, // 1: Config.AuthEntry.value:type_name -> Config.Auth
|
|
2, // [2:2] is the sub-list for method output_type
|
|
2, // [2:2] is the sub-list for method input_type
|
|
2, // [2:2] is the sub-list for extension type_name
|
|
2, // [2:2] is the sub-list for extension extendee
|
|
0, // [0:2] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_config_proto_init() }
|
|
func file_config_proto_init() {
|
|
if File_config_proto != nil {
|
|
return
|
|
}
|
|
file_config_proto_msgTypes[0].OneofWrappers = []any{}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_config_proto_rawDesc), len(file_config_proto_rawDesc)),
|
|
NumEnums: 0,
|
|
NumMessages: 3,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_config_proto_goTypes,
|
|
DependencyIndexes: file_config_proto_depIdxs,
|
|
MessageInfos: file_config_proto_msgTypes,
|
|
}.Build()
|
|
File_config_proto = out.File
|
|
file_config_proto_goTypes = nil
|
|
file_config_proto_depIdxs = nil
|
|
}
|