Next:
Sendmail X: Requirements
Up:
Sendmail X
Previous:
Sendmail X
Contents
Sendmail X: Requirements
Requirements
Basic Requirements
Other Requirements
Explanation of Buzzwords
Restrictions
Configuration
Configuration File
Configuration Options
Documentation
Documentation Format
Sendmail X: Architecture
General Architecture of sendmail X
Overview
Remarks about Performance
Remarks about Configuration
Security Considerations
Control and Data Flow
Configuration
General
Syntax
Alternative Configuration Formats
Configurability
Configuration File Structure
Dynamic Configuration
Default Configuration
Displaying Current Configuration
Dynamically Changing Configuration
Configuration Example for PreAlpha Version
Security Considerations
Supervisor
Security Considerations
Queue Manager
Queues
Queue Formats
Data Flow: Moving Envelopes between Queues
Scheduling
Triggering Deliveries
DSNs
Load Control
Misc
Security Considerations
SMTP Server Daemon
Internet Server Application
SMTP Server Design Alternatives
Control Flow
Anti-Spam Checks
Valid User Checks
Address Rewriting
Security Considerations
Address Resolver
Address Resolver Operation
Generic Comment about Map Lookups
Mail Routing
Address Rewriting
Proposal for Routing and Rewriting
Valid Recipients
Aliases
Expansion to Multiple Addresses
Virtual Hosting
Fallback
Security Considerations
Initial Mail Submission
Initial Mail Submission Alternatives
Security Considerations
Mail Delivery Agents
Delivery Agent Modules
Specifying Delivery Agents
Local Delivery Agent
Security Considerations
SMTP Client
Control Flow
Security Considerations
Milter
Possible Enhancements
Security Considerations
Miscellaneous Programs
Access to the Queue Manager
Security Considerations
Maps
Modules
Security Considerations
Security Hints
Privileged Access
Misc
Misc Misc
Configuration
Configuration Changes
Performance Measurements: Profiling
Logging
Debugging
Robust Programming
Schedule
Glossary
Sendmail X: Functional Specification
Functional Specification of sendmail X
Asynchronous APIs
Configuration
Naming Conventions
Specification of Classes (Lists, Sets)
Supervisor
External Interfaces
Operation
Shutdown
Configuration
Internal Interfaces
Queue Manager
External Interfaces
Shutdown
Internal Interfaces
Indices for Accessing the EDBs
Interface to SMTP DAs
Transferring Data between EDBs
Reconstructing Data from IBDB
Deferred Envelope Database: Recipient Addresses
Scheduler Algorithms
Data Structures
Database and Cache APIs
QMGR - SMTPS API
QMGR - First Level Scheduler API
QMGR - Delivery Scheduler API
Interface to AR
Updating Data in Queues after a Delivery Attempt
Load Control Functionality
SMTP Server Daemon
External Interfaces
Control Flow
Internal Interfaces
Address Resolver
External Interfaces
Valid Recipients
Internal Interfaces
Initial Mail Submission
External Interfaces
Internal Interfaces
Mail Delivery Agents
External Interfaces
Configuration
Configuring Multiple DAs
Internal Interfaces
SMTP Client
External Interfaces
Internal Interfaces
Milter
External Interfaces
Internal Interfaces
Security Hints
Owners and Permissions
Databases and Caches for Envelopes, Contents, and Connections
DBs with Multiple Access Keys
DBs with Non-unique Access Keys
Envelope Database Access Methods
Incoming Envelope Database API
Active Envelope Database API
Deferred Envelope Database API
Content Database
Connection Database (Cache)
Available Database Implementation
Restricted Size Caches
Atomic Updates
Data Structures for Queues on Disk and for Communication
Misc
Maps
Results of Map Lookups
Lookup Functionality
Replacing Patterns in RHS
Error Handling
Returning Errors
Error Classification
Converting Error Codes into Textual Descriptions
Misc
Libraries
Naming Conventions
Include Files
I/O
Event Driven Loop
Resource Pools
Memory Handling
String Abstraction
Timed Events
Shared Memory
Address Parsing
Internal Communication
Common API for Storage Libraries (Maps)
DNS
Timeouts
Misc
Logging
Modules
Building sendmail X
autotools
Operating System Calls
General Hints
Operating System Specific Hints
Worker Threads
SMTP Server and Worker Threads
Worker Thread Library
Thread Libraries
Worker Threads with Semaphores
Event Thread Library
Sendmail X: Implementation
Schedule
Introduction to the Sendmail X Source Code
Identifiers
Asynchronous Functions
Transaction Based Processing
Libraries
Queues, Lists, etc
Hash Tables
Classes
Trees
RSC
DBs with Multiple Access Keys
DBs with Non-unique Access Keys
Event Thread Library
RCB Communication
DNS
Logging
SMTP Server Daemon
First Prototype
Communication between SMTPS and QMGR
Mail Delivery Agents
Maintaining Delivery Classes and Agents
SMTP Client
First Prototype
SMTP Client Implementation
Queue Manager
Queue Manager Implementation
Locking
Data Structures
Data Flow
Functions
Address Resolver Implementation
Resolving Recipient Addresses
Alias Expansion
Aliases: Owner- Handling
Milter
SMTPS - Milter Protocol
Implementation of Databases and Caches for Envelopes, Contents, and Connections
Incoming Envelope Database
Incoming Envelope Database Disk Backup
Active Envelope Database
Deferred Envelope Database Implementation
Misc
IBDB Cleanup
Testing
Sendmail X: Performance Tests and Results
SMTP Server Daemon
SMTP Sink
SMTP Relaying Using a Sendmail X Prototype
Implementation of Queues and Caches
Filesystem Performance
Harddisk Performance
Performance of Berkeley DB
Miscellaneous about Performance
Performance of Various Programs
TCP/IP Performance
DB Lookup Performance
snprintf Performance
Bibliography
Claus Assmann