-*- text -*- Exit with proper status on errors so that sendmail will queue the mail instead of bouncing. Follow Majordomo's lead on this. Optimize for space. Some large arrays can be freed immediately after they're used to sort or whatever. Use IO::Select to manage multiple outbound connections simultaneously. Fix all XXX'ed open issues. Daemon mode: Run TLB as a daemon; bury list-specific config stuff under another level of namespace; only reread a config if it's changed; only batch addresss lists if they've changed or the config has changed. This eliminates all startup costs; we can make address parsing/handling as expensive as we want. Client is a small C program that sends a bit of intro then a raw message. Very little protocol here. Need to timeout down hosts somehow (alarm) or just reset them back after every message? Need to make sure no list state leaks out of list-specific namespace.