indimail-mta 3.0.0
Date: Wednesday 18 May 2022 01:41:34 PM IST
DNF / YUM / APT / Arch Binary Downloads
Open Build Service Binary Download
Docker / Podman Containers
Release Highlights
indimail-mta
- dynamic queue using POSIX message queue, shared memory
- New daemon qscheduler which replaced qmail-daemon
- Ability to group deliveries in chunks to improve delivery speed
- added qmonitor manage queues.
- added qtop program to monitor queue loads without using disk IO
- Made SPLIT, big todo configurable using env variables.
- added ability to disable a queue temporarily.
- openssl 3.0.0 port
daemontools
- softlimit.c: added -q option for setting message queue size
- svps: added -h option to send HUP to svscan
- svscan: added AUTOSCAN feature (which was actually part of the original svscan)
ucspi-tcp
- replaced deprecated function SSL_CTX_use_RSAPrivateKey_file with SSL_CTX_use_PrivateKey_file for openssl 3.0.0
ChangeLog
indimail-mta
Release 3.0.0 Start 21/09/2021 End 17/05/2022
- 21/09/2021
- batv.c: refactored code. Return error type during validation
- added man pages for batv
- Fixed typos
- 04/10/2021
- svctool.in: removed not-needed QUERY_CACHE env variable from defaultqueue
- 20/10/2021
- qmail-send.c, qmail-todo.c, qmta-send: display program 'qmail-send' in
logs for identification - qmail-start.c, qmta-send.c, slowq-start.c: added queue directory as
argument for identification in ps list - smtpd.c: allow SMTP code to be configured when setting SHUTDOWN env
variable - qmail-cat.c: added SIGTERM handler to flush io
- 21/10/2021
- qmail-qread.c process_queue.c qmail-rm.c qmulti.c: eliminated extra
variables - qmail-daemon.c: made qstart, qcount variables global
- qmail-daemon.c: replaced execv with execvp
- 22/10/2021
- qmta-send.c: removed loglock code (not required for signle queue)
- qmail-send.c: change for ident argument to loglock_open()
- qsutil.[c,h]: added ident argument to loglock_open for identification in
logs - mini-smtpd.c: removed extra arguments passed to err_size()
- Makefile: added target rt.lib for qscheduler
- mini-smtpd.c: removed extra arguments passed to err_size()
- Makefile: added target for qscheduler
- added qscheduler for running dynamic queues
- conf-queue: added definition for QUEUE_MAX, QUEUE_LOAD
- 25/10/2021
- eliminated mktmpfd() function
- 02/11/2021
- qmail-send.c, slowq-send.c, qmail-todo.c: use argv0 for program name
- qmail-todo.c: optimize by writting to comm_buf all files found in todo
using TODO_CHUNK_SIZE variable
in chunks before doing comm_do
- 27/11/2021
- qmail-daemon.c: use sig_block(), sig_unblock() to prevent interruptions
- queue-fix.c: return exit status for queue-creation
- 05/12/2021
- rrt.c: fixed command line args for return-path, receipient
- qmail-send.c, qmail-todo.c, slowq-send.c: fixed argv0
- 13/12/2021
- added man page for multi-queue.7
- removed qmail-daemon
- 20/12/2021
- qlocal_upgrade.in: added command to fix qmail-send run script
- 31/12/2021
- qmail-todo.c, qmail-send.c, qmail-start.c: added compat mode option to
scan on lock/trigger in addition to message queue - qmail-qread.c: added -s option to display only counts with -c option
- 01/01/2022
- qmail-multi: Make queue directory as second argument to qmail-queue
- qscheduler.c: use control files msgqueuelen, msgqueuesize for configuring
POSIX message queue - qmail-queue.c: Minor formatting changes to Received lines
- 02/01/2022
- qmail-local.c, qmail-queue.c, qmail-todo.c, qmta-send.c, slowq-send.c
USE_FSYNC, USE_SYNCDIR consistent
- 04/01/2022
- qmail-inject.c, smtpd.c - configurable DATABYTES
- qmail-clean.c, qmail-qread.c, qmail-queue.c, qmail-rm.c, qmail-send.c,
qmail-todo.c, qmail-showctl.c, qmail-start.c, qmta-send.c, slowq-send.c
qscheduler.c, queue-fix.c, readsubdir.c, readsubdir.h configurable bigtodo
- 05/01/2022
- smtpd.c, ofmipd.c, etrn.c, atrn.c, qmail-showctl,c ldap-checkpwd.c,
sys-checkpwd.c, qmail-rspawn.c, qmail-poppass.c: replace execvp with execv
- 19/01/2022
- qscheduler.c: use log_out functions instead of strerr_warn for logging
messages - qmail-send.c: display pid when exiting
- qmail-todo.c, trigger.c, trigger.h: remove/add lock/trigger based on
dynamic/compat mode
- 24/01/2022
- autorepsonder.c: use prefix for qmail-inject
- qmail-showctl.c: use previx for svctool
- qmta-send.c: Replaced execv with execvp
- svctool: prevent overwriting servercert.cnf
- 06/02/2022
- svctool: create local queue variables if different from global variable
value
- 07/02/2022
- svctool: create CONFSPLIT, QUEUE_COUNT, QUEUE_BASE, QUEUE_START as global
vars
- 11/02/2022
- qmail-queue.c: New function read_control() to read extraqueue, quarantine,
removeheaders, envheaders, logheaders, mailarchive control files.
- 26/02/2022
- qmail-smtpd.c: fix ehlo greating for local connections
- 01/03/2022
- qmail-todo.c: renamed compat_mode variable to compat_mode_flag
- 02/03/2022
- qscheduler.c: continue to let current deliveries happen instead of exit
on error
- 05/03/2022
- use auto_prefix/bin or auto_prefix/sbin for binary paths
- qscheduler.c: Fix for mq_open. shm_open on FreeBSD
- qmail-send.c: shm_open with O_RDWR on FreeBSD
- 06/03/2022
- qmail-send.c, qscheduler.c: Use ftruncate on shared mem on FreeBSD
- qmail-send.c, qscheduler.c: unlink shared memory on exit
- qmail-smtpd.c: fix ehlo greating for local connections
- 06/03/2022
- create_services.in: fix for FreeBSD (date usage)
- dknewkey.sh: fix for FreeBSD (getopt usage)
- svctool.in: fix for FreeBSD (ln -sr)
- svctool.in: mount mqueuefs directory in qmail-send run script
- 08/03/2022
- qmail-dk.c, qmail-dkim.c, qmail-qfilter.c, qmulti.c: use custom_error()
from custom_error.c - qmail-queue.c, maildir_deliver.c: do not treat error_noent as an error
- 09/03/2022
- get_uid.c: use qendpwent(), qendgrent() when using functions from
qgetpwgr.c
- 10/03/2022
- matchup.c: update for qmail-send, qmail-todo, slowq-send, qmta-send,
qscheduler logs (qmailanalog)
- 12/03/2022
- qmail-qread.c: added -i option to display /qscheduler queue information:
dynamic queue information - qmail-multi.c: use static queue if /qscheduler shared memory doesn't exist
- qmail-clean.c, qmail-queue.c, qmail-showctl.c, qmail-todo.c, qmta-send.c,
qscheduler.c, queue-fix.c, slowq-send.c: Use default for BIGTODO as 1. - slowq-send.c, qmta-send.c, qmail-todo.c: display bigtodo value in logs on
startup
- 16/03/2022
- qmail-send.c: added queue ident in logs for matchup (qmailanalog to handle
multi-queue) - matchup.c: handle multi-queue format
- qmail-lspawn.c: made copy_pwstruct return type void
- qmail-queue.c: added FASTQUEUE to bypass features for speeding delivery
- 20/03/2022
- qmail-todo.c: use mq_timedreceive() for TODO_CHUNK_SIZE to work
- qmail-lspawn.c: bypass indimail if AUTHSELF is not set
- qmail-showctl.c: -E option for displaying client env variables
- 24/03/2022
- qmta-send.c: added missing loading of concurrencylocal, concurrencyremote
- qmta-send.c: added holdjobs functionality
- 25/03/2022
- qmail-queue.c: handle multi-queue without qmail-multi helper
env variable is defined - qmail-inject.c: Display system error when qmail_open() fails
- qmail-qread.c: updated usage string
- 31/03/2022
- qmail-todo.c: use chunk_wait seconds to wait for message chunks
- malidir_deliver.c, qmail-local.c, qmail-send.c, qmta-send.c,
slowq-send.c: replace fsync() with fdatasync() - qmail.c: include error.h for errno. Save and restore errno
- getqueue.c, qmulti.c: removed starttime argument to queueNo_from_env(),
queueNo_from_shm() - getqueue.c: use arc4random() to randomly select queues
- added man pages for dnscname, dnsfq, dnsmxip, dnsptr
- maildir_deliver.c, qmail-local.c, qmail-queue.c, qmail-todo.c,
slowq-send.c, syncdir.c: replaced fsync() with fdatasync() - zoverall.sh: display time span in seconds if < 86400
- 03/04/2022
- qmail.c, qmail-dk.c, qmail-dkim.c, qmail-spamfilter.c, qmail-queue.c,
qmail-direct.c: refactored return codes for qmail_open() - pidopen: use 70 as return code for pidopen() failure
- qmail-direct.c, qmail-queue.c: use custom_error() for error messages
- qmail-queue.c: bypass getpeername() if fastqueue is set
- slowq-start.c, qmta-send.c: Use QUEUE_BASE,
queue_base control for setting base directory of queue
- 04/04/2022
- condtomaildir.c, maildir_deliver.c, maildirdeliver.c: use USE_FSYNC,
USE_FDATASYNC, USE_SYNCDIR to set sync to disk feature - qmail-direct.c, qmail-queue.c: refactored fastqueue and added setting of
fdatasync() - qmail-local.c, qmail-send.c, qmail-todo.c, slowq-send.c, qmta-send.c:
added setting of fdatasync() instead of fsync() - syncdir.c: added use_fdatasync to turn on fdatasync() instead of fsync()
- svctool: added option to set fdatasync
- syncdir.c: fix for missing fdatasync on OSX
- 06/04/2022
- create_services.in, indimail-mta.spec.in, debian/postinst.in,
PKGBUILD.in: set fsync, syncdir as global variables instead of local
variables - svctool.in: added setting of USE_FSYNC, USE_FDATASYNC, USE_SYNCDIR as
global variables - renamed qlocal_upgrade.sh to qlocal_upgrade, qupgrade.sh to qupgrade
- 07/04/2022
- indimail-mta.spec.in: added glibc-static in BuildRequires for non RHEL,
non-suse, non-sles distributions - Makefile: link resolv library dynamically
- 12/04/2022
- qmail-todo.c, slowq-send.c, qmta-send.c, qmail-send.c: display queuedir
in logs on startup
- 13/04/2022
- do_rate.c: return 2 if rate definition is missing or is invalid
- delivery_rate.c: set do_ratelimit only if rate definition existss
- slowq-send.c: set delayed flag = 0 for new jobs
- process_queue.c: flush subfdout to fix out of band err messages
- qmail-qread.c: display queues configured
- getqueue.c, qmail-send.c, qmail-qread.c: added feature to disable a queue
and skip disabled queues - matchup.c: skip qscheduler load messages in logs
- 16/04/2022
- added qmonitor
- 17/04/2022
- qmonitor.c: use getEnvConfigDouble() to set threshold from QUEUE_LOAD env
variable
- 20/04/2022
- control.c, control.h: added control_writefile(), control_readint()
functions
- 21/04/2022
- qscheduler.c: added ability to decrease queue count
- qscheduler.c: added -n option to keep queue count static
- 23/04/2022
- qscheduler.c: do not restart qmail-send when terminated due to empty queue
- qmail-send.c, slowq-send.c, qmail-todo.c: display pid in logs on exit
- 24/04/2022
- qscheduler.c: added function to update queue counts in shared memory
- qscheduler.c: display local+remote load on receipt of message queue by
send_qload() - matchup.c: fixed field postion of 'exiting' for slowq-send, qmta-send
logs
- 05/05/2022
- svctool: added /usr/local/bin/bash as a valid shell
- 10/05/2022
- use tcpopen, udpopen from libqmail
- whois.c: replaced strstr.c with str_str from libqmail
- udplcient.c: use headers from standard include path
- 18/05/2022
- batv.c, smtpd.c, sslerator.c, qmail-remote.c, starttls.c: openssl 3.0.0
port - svctool: use realpath to resolve full path of /etc/resolv.conf
- update_tmprsadh: added --mxbits argument to specify max bits
- smtpd.c: fixed reading of dh parameters.
- smtpd.c: added SSL_BITS to set RSA, DH pem file to be read
daemontools
Release 1.1 Start 27/02/2021
- 27/02/2021
- minisvc: added options to set, unset, remove env variables for supervised services
- minisvc: added --dumpconfig option
- updated minisvc man page
- 28/02/2021
- minisvc: use common functions dump_run_header, dump_log_header for generating run, log/run
- post install: save variables to .variables
- 07/04/2021
- svscan: run log supervise process with parent directory as argv2
- supervise: allow supervise for log process to run with three arguments
- 15/04/2021
- minisvc: take into account /run filesystem when enabling, disabling service
- 16/04/2021
- svscan: disable service in /run filesystem when service is disabled in /service
- minisvc: added checks when enabling, disabling service
- updated svscan man page
- 20/04/2021
- minisvc - make output less verbose with --silent parameter
- minisvc - honour --silent in export variables
- 27/04/2021
- supervise: do not treat error_exist as error for mkdir
- 28/04/2021
- systemd.override.conf: added systemd override unit file for systems without battery backed RTC
- minisvc - allow --force to override norefreshsvc flag for a service
- 30/04/2021
- remove zero bytes package_name-stat.override file
- 03/05/2021
- do systemctl daemon-reload after installing/removing svscan service
- timestamp.h: fix function prototype for timestamp()
- 06/05/2021
- minisvc: removed mixed use of space and tab
- 12/05/2021
- moved pathexec_run, pathexec_env to libqmail
- 16/05/2021
- minisvc: fixed TMPDIR creation
- 17/05/2021
- systemd.override.conf: added systemd-time-wait-sync.service in After=
- 06/06/2021
- supervise.c: indicate service name in logs, instead of just the pid when supervised service exits/crashes
- 22/06/2021
- added RestartSec & PrivateTmp to main unit file and override.conf
- 30/05/2021
- svscan_rc: implemented addtional rc commands
- envdir: handle new error code for recursive loops
- envdir: -c option to clear existing environment variables
- 03/07/2021
- moved prot.c, prot.h to libqmail
- 07/07/2021
- minisvc: added --print-variable option
- 12/07/2021
- envdir: added feature to process .envfile and .envdir as a file containing list of directories
- 13/07/2021
- daemontools.spec: removed /sbin/chkconfig from Requires
- 14/07/2021
- envdir.c: added options i, w to ignore read errors and warn instead of exit on error
- Makefile: use openreadclose from libqmail.
- removed openreadclose.[c,h]
- 16/07/2021
- minisvc: added --print-all-variables option
- svscan: set SERVICEDIR, PWD environment variable to service directory
- 28/07/2021
- minisvc: renamed rc script boot/svscan to boot/openrc for alpine
- qmailctl: fixed systemctl hang when stopping svscan using service command
- 29/07/2021
- daemontools.spec.in: added back /sbin/chkconfig in Requires
- 30/07/2021
- hier.c: added inotify.c
- 02/08/2021
- installer.c: added check (-c) and fix (-f) options to check, fix permissions after installation
- Makefile: create directories using installer instead of Makefile
- PKGBUILD: fix permissions of installed files in destdir
- debian/postrm: remove log directory on package removal
- PKGBUILD: replaced DESTDIR with pkgdir
- installer.c: set default permissions when mode=-1
- daemontools.spec, PKGBUILD, debian.preinst: create qmaill user with logdir as home directory
- tai64n2tai.c: code correction
- 03/08/2021
- installer.c: added -m option to ignore missing files
- daemontools.spec.in: added permission files for indimail-mta
- replaced instcheck, hier.c with installer
- 05/08/2021
- installer.c: added -p option to create directories as needed
- installer.c: allow installation for missing source if -m is specified
- 11/08/2021
- supervise.c: fix for using of uninitialized value of signal in error log
- svscan.c: run as PID1 and reap dead processes
- docker-entrypoint: use getopt to get options to set domain, timezone
- 17/08/2021
- minisvc: added config=cert (create_cert function)
- minisvc: added --check-certs
state of certificate - docker-entrypoint: added hotfix for podman named pipe bug
- 18/08/2021
- docker-entrypoint: removed timedatectl as it doesn't work without systemd
- 20/08/2021
- docker-entrypoint: removed host compoment from default domain
- 22/08/2021
- docker-entrypoint: added -r, --repair option to drop to shell
- svctool: use /usr/local/etc/indimail/sv for servicedir on OSX/Darwin
- 30/08/2021
- include noreturn.h from libqmail defining macro no_return use no_return macro to declare funtions that do not return back to caller
- 05/09/2021
- changed permissions for dirs with 555 to 755
- 11/09/2021
- setuidgid.c: Feature to set additional groups using -g option
- 12/09/2021 - indimail-mta-2.14.0
- 20/10/2021
- svscan.c: enable scan on SIGCHLD
- 02/01/2022
- softlimit.c: added -q option for setting message queue size
- 30/01/2022
- inotify.c: added missing '/' in display
- 25/02/2022
- softlimit.c: Use -1 to set resource limit as unlimited
- added missing '/' in display
- 06/03/2022
- svps.in: fix for FreeBSD (stat command usage)
- 17/03/2022
- qmailctl.sh: Fix restart on FreeBSD
- 18/03/2022
- svps.in: added -h,--HUP option to send HUP to svscan
- 20/03/2022
- multilog.c: Added NOFSYNC env variable to turn off fsync
- 06/05/2022
- svscan.c: Enable automatic scan of /service if AUTOSCAN environment
variable is set.
- 08/04/2022
- svscan.c: added few INFO messages (scanning, starting service)
- 18/05/2022 - indimail-mta-3.0.0
ucspi-tcp
Release 1.1 Start 14/02/2021
- 02/03/2021
- tcpserver.c renamed SSL_CIPHER to TLS_CIPHER_LIST
- 03/03/2021
- tcpclient.c: added SSL/TLS support
- tcpclient.c: added client mode feature making prog optional
- 04/03/2021
- tls.c: added option to match host with common name
- tcpclient.c, tcpserver.c: Use CERTDIR env variable to specify custom certificate location
- tcpclient.c: added -m option to match host with common name
- 06/03/2021
- dotls.c: SSL/TLS client / server wrapper for SSL/TLS and opportunistic TLS
- tcpclient.c: added opportunistic TLS (STARTLS) capability.
- 07/03/2021
- tcpclient.c: added starttls for pop3
- 09/03/2021
- tls.c: check for SSL_ERROR_WANT_READ to retry SSL_read() when using non-blocking io
- tls.c, tcpclient.c: retry read. write on errno == EAGAIN to fix blocking IO problem with SSL_read()
- tls.c: made translate() generic. Replaced SSL with fd parameter
- doit.c, tcpclient.c: use new translate() from tls.c
- 10/03/2021
- tls.c, tcpclient.c: use set_essential_fd() to avoid deadlock
- 30/04/2021
- remove zero bytes package_name-stat.override file
- 12/05/2021
- define arguments as array subscripts to fix gcc 11 warnings
- renamed pathexec functions as upathexec to avoid clash with libqmail
- 03/05/2021
- moved prot.c, prot.h to libqmail
- dlnamespace.[c,h], tcpserver_plugin.c, load_shared.c use Lmid_t data type for id instead of unsigned long
- 18/07/2021 - indimail-mta-2.13
- 18/07/2021
- installer.c: fixed setting setuid/setgid bits by calling chmod after chown
- 19/07/2021
- fixed compiler warning on alpine linux
- 02/08/2021
- installer.c: added check (-c) and fix (-f) options to check, fix permissions after installation
- Makefile: create directories using installer instead of Makefile
- PKGBUILD: fix permissions of installed files in destdir
- PKGBUILD: replaced DESTDIR with pkgdir
- installer.c: set default permissions when mode=-1
- 05/08/2021
- installer.c: added -p option to create directories as needed
- installer.c: allow installation for missing source if -m is specified
- 30/08/2021
- include noreturn.h from libqmail defining macro no_return use no_return macro to declare funtions that do not return back to caller
- 12/09/2021 - indimail-mta-2.14.0
- 17/05/2022
- replaced deprecated function SSL_CTX_use_RSAPrivateKey_file with
SSL_CTX_use_PrivateKey_file for openssl 3.0
- 18/05/2022 - indimail-mta-3.0.0
libdkim
Release 1.5 Start 19/03/2009
- 19/03/2009
- Added libdkim-1.0 - DKIM signing/verification library by ALT-N technologies. New program dkim for testing dkim signatures
- Fixed bugs with DKIM/DK verification
- 28/03/2009
- Released libdkim-1.1
- Added ADSP/SSP to qmail-dkim, libdkim
- Added Return-Path to use as domain in dkimsign.cpp
- 11/06/2009
- configure for libdkim detects EVP_sha256 or EVP_sha1. Fix for Mac. Fixed version available as libdkim-1.3
- Added dkim man page
- updates from libdkim-1.0.21
- dkim.c - do not skip X-Mailer headers
- dkimsign.cpp - address parsing to fix signing of email generated by cron daemon
- dkimsign.cpp - replace % in selector with domain name
- dkim.c - Use basename of private key as the selector in absense of -y option
- dkimverify.cpp - replace strtok() with strtok_r() for thread safe
- refactored dns_text() function
- use packetsize > 512 to avoid dkim failures for sites having long txt records (hotmail.com)
- libdkim - removed compiler warnings
- libdkim - added CXXFLAGS -Wno-delete-non-virtual-dtor -Wno-reorder to configure.ac
- libdkim - dns.cpp. fixed double free of dnresult causing SIGSEGV
- 12/08/2018
- dkim.c - fix for multiple DKIM-Signature header
- 27/08/2018
- Fixed dkimsign issue with round parenthesis.
- 13/01/2019
- dkim.c - Added missing usage string for allowing unsigned subject
- 17/02/2019
- dkimverify.cpp - made scope of sFromDomain static
- 21/05/2019
- dkimverify.cpp - Increased buffer length for dns result
- dns.cpp - fixed pointer after realloc
- configure.ac, dkimverify.cpp, dkimverify.h - fix for 32 bit systems where time_t is 4 bytes & encounters year 2038 issue
- 24/06/2019
- dkim.c - fixed return value interpretation of DKIMVERIFY
- 14/06/2019
- libdkim - dkim.c, dkimverify.h, dkimbase.cpp, dkimverify.cpp - BUG verfication was not honoring body length tag
- 24/06/2019
- use DKIMDOMAIN only if Return-Path, From, Sender header are empty
- 26/06/2019
- dkimsign.cpp - use X-Bounced-Address domain for DKIM signing for bounces
- 09/04/2020
- check for null domain after DKIMDOMAIN replacement
- 10/04/2020
- fixed BUG with domain assignment
- 11/04/2020
- renamed DKKIMDOMAIN to BOUNCEDOMAIN
- 06/10/2020
- configure.ac: changes for FreeBSD, Darwin
- 13/10/2020 - indimail-mta-2.12
- added debuginfo package
- 18/07/2021 - indimail-mta-2.13
- 20/07/2021
- updated configure.ac by doing autoupdate
- 28/08/2021
- dkimsign.cpp: added ReplaceSelector to replace selector
- dkimfuncs.cpp - added DKIMSignReplaceSelector to replace selector
- dkim.h: Added prototype for DKIMSignReplaceSelector
- 12/09/2021 - indimail-mta-2.14.0
- 18/05/2022 - indimail-mta-3.0.0
libsrs2
Release 1.0.18 Start 05/06/2004
- 05/06/2004
- First Release
- 01/10/2020
- FreeBSD, Darwin Port
- 13/10/2020 - indimail-mta-2.12
- added debuginfo package
- 18/07/2021 - indimail-mta-2.13
- 20/07/2021
- updated configure.ac
- 12/09/2021 - indimail-mta-2.14.0
- 18/05/2022 - indimail-mta-3.0.0