# Global constants for Mailfromd.
# Copyright (C) 2005-2025 Sergey Poznyakoff
#
# Mailfromd is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# Mailfromd is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Mailfromd.  If not, see <http://www.gnu.org/licenses/>.

# Notes on format:
# 1. Comments start with #.
# 2. Comments and empty lines are ignored.
# 3. A line starting with @ is reproduced verbatim in texinfo output
#    and is suppressed in C output.
# 4. A definition consists of at least two words: a keyword and its value.
#    Definitions are converted to @set statements in texinfo output and
#    to #define statements in C output.
# 5. A value starting with @ is a reference to a C header file.  The definition
#    of the keyword is then looked up in that file and is output only in
#    texinfo format.
# 6. Any part of a value can be enclosed in grave accents.  Such a part is
#    executed as a shell command, and its output is pasted back to the
#    resulting string.  If the command produces multiple lines, they are
#    concatenated and separated by a single space character.

@c DEFAULT_USER is set in configure.
@set DEFAULT_USER mail

@c Default code for the reject action
DEFAULT_REJECT_CODE "550"

@c Default code for the tempfail action
DEFAULT_TEMPFAIL_CODE "451"

@c See stack_size, stack_max_size in src/prog.c (in words)
STACK_SIZE 4096
STACK_INCR 4096

GACOPYZ_TIMEOUT @gacopyz/gacopyz_priv.h
GACOPYZ_WRITE_TIMEOUT   @gacopyz/gacopyz.h
GACOPYZ_READ_TIMEOUT    @gacopyz/gacopyz.h
GACOPYZ_EOM_TIMEOUT     @gacopyz/gacopyz.h
GACOPYZ_CONNECT_TIMEOUT @gacopyz/gacopyz.h

@c Number of built-in exceptions
MAX_E_EXCEPTIONS `grep -c 'dclex e_' mflib/status.mfl`

@c See nstreams variable in src/builtin/io.bi
MAX_IOSTREAMS 1024

@c See nmboxes variable in src/builtin/mbox.bi
MAX_MBOXES  64

@c See nmsgs in src/builtin/msg.bi
MAX_MSGS 1024

@c See max_a and max_ptr in src/builtin/dns.bi
MAX_DNS_A 64
MAX_DNS_PTR 64
@c See max_mx ibid. See also MAXMXCOUNT in lib/dns.h
MAX_DNS_MX 32

@c Number of dynamically loaded modules.
MAX_MFMODS 16
