![]() |
s/qmail 4.3.20
Next generation secure email transport
|
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <unistd.h>
#include <utime.h>
#include "error.h"
#include "sig.h"
#include "direntry.h"
#include "control.h"
#include "select.h"
#include "open.h"
#include "seek.h"
#include "exit.h"
#include "lock.h"
#include "ndelay.h"
#include "now.h"
#include "getln.h"
#include "buffer.h"
#include "alloc.h"
#include "genalloc.h"
#include "stralloc.h"
#include "logmsg.h"
#include "str.h"
#include "byte.h"
#include "fmt.h"
#include "scan.h"
#include "case.h"
#include "auto_qmail.h"
#include "auto_queue.h"
#include "trigger.h"
#include "newfield.h"
#include "quote.h"
#include "qmail.h"
#include "qsutil.h"
#include "prioq.h"
#include "constmap.h"
#include "fmtqfn.h"
#include "readsubdir.h"
#include "sendtodo.h"
Go to the source code of this file.
Data Structures | |
struct | job |
struct | del |
Macros | |
#define | CHANNELS 2 |
#define | REPORTMAX 10000 |
#define | CHECKSTAT if (errno != ENOENT) goto FAIL; |
Functions | |
void | sigterm () |
void | sigalrm () |
void | sighup () |
void | cleandied () |
void | spawndied (int c) |
void | fnmake_init () |
void | fnmake_info (unsigned long id) |
void | fnmake_todo (unsigned long id) |
void | fnmake_mess (unsigned long id) |
void | fnmake_foop (unsigned long id) |
void | fnmake_split (unsigned long id) |
void | fnmake2_bounce (unsigned long id) |
void | fnmake_chanaddr (unsigned long id, int c) |
void | senderadd (stralloc *sa, char *sender, char *recip) |
int | getinfo (stralloc *sa, datetime_sec *dt, unsigned long id) |
void | comm_init () |
int | comm_canwrite (int c) |
void | comm_write (int c, int delnum, unsigned long id, char *sender, char *recip) |
void | comm_selprep (int *nfds, fd_set *wfds) |
void | comm_do (fd_set *wfds) |
void | cleanup_init () |
void | cleanup_selprep (datetime_sec *wakeup) |
void | cleanup_do () |
void | pqadd (unsigned long id) |
void | pqstart () |
void | pqfinish () |
void | pqrun () |
void | job_init () |
int | job_avail () |
int | job_open (unsigned long id, int channel) |
void | job_close (int j) |
char * | stripvdomprepend (char *recip) |
void | addbounce (unsigned long id, char *recip, char *report) |
int | injectbounce (unsigned long id) |
void | del_status () |
void | del_init () |
int | del_canexit () |
int | del_avail (int c) |
void | del_start (int j, seek_pos mpos, char *recip) |
void | markdone (int c, unsigned long id, seek_pos pos) |
void | del_dochan (int c) |
void | del_selprep (int *nfds, fd_set *rfds) |
void | del_do (fd_set *rfds) |
void | pass_init () |
void | pass_selprep (datetime_sec *wakeup) |
datetime_sec | nextretry (datetime_sec birth, int c) |
void | pass_dochan (int c) |
void | messdone (unsigned long id) |
void | pass_do () |
void | tododied () |
void | todo_init () |
void | todo_selprep (int *nfds, fd_set *rfds, datetime_sec *wakeup) |
void | todo_del (char *s) |
void | todo_do (fd_set *rfds) |
int | getcontrols () |
void | regetcontrols () |
void | reread () |
int | main () |
Variables | |
long | lifetime = 604800 |
long | bouncemaxbytes = 0 |
stralloc | queuedir = {0} |
stralloc | percenthack = {0} |
struct constmap | mappercenthack |
stralloc | locals = {0} |
struct constmap | maplocals |
stralloc | vdoms = {0} |
struct constmap | mapvdoms |
stralloc | envnoathost = {0} |
stralloc | bouncefrom = {0} |
stralloc | bouncehost = {0} |
stralloc | doublebounceto = {0} |
stralloc | doublebouncehost = {0} |
char | strnum2 [FMT_ULONG] |
char | strnum3 [FMT_ULONG] |
char * | chanaddr [CHANNELS] = { "local/", "remote/" } |
char * | chanstatusmsg [CHANNELS] = { " local ", " remote " } |
char * | tochan [CHANNELS] = { " to local ", " to remote " } |
int | chanfdout [CHANNELS] = { 1, 3 } |
int | chanfdin [CHANNELS] = { 2, 4 } |
int | chanskip [CHANNELS] = { 10, 20 } |
int | flagexitasap = 0 |
int | flagrunasap = 0 |
int | flagreadasap = 0 |
int | flagspawnalive [CHANNELS] |
datetime_sec | recent |
stralloc | fn = {0} |
stralloc | fn2 = {0} |
char | fnmake_strnum [FMT_ULONG] |
buffer | toqc |
char | toqcbuf [BUFSIZE_LINE] |
buffer | fromqc |
char | fromqcbuf [BUFSIZE_LINE] |
stralloc | comm_buf [CHANNELS] = { {0}, {0} } |
int | comm_pos [CHANNELS] |
int | flagcleanup |
readsubdir | cleanupdir |
datetime_sec | cleanuptime |
prioq | pqdone = {0} |
prioq | pqchan [CHANNELS] = { {0}, {0} } |
prioq | pqfail = {0} |
int | numjobs |
struct job * | jo |
stralloc | bouncetext = {0} |
unsigned long | masterdelid = 1 |
unsigned long | concurrency [CHANNELS] = { 10, 20 } |
unsigned long | concurrencyused [CHANNELS] = { 0, 0 } |
struct del * | d [CHANNELS] |
stralloc | dline [CHANNELS] |
char | delbuf [2048] |
struct { | |
unsigned long id | |
int j | |
int fd | |
seek_pos mpos | |
buffer b | |
char buf [BUFSIZE_SMALL] | |
} | pass [CHANNELS] |
stralloc | todoline = {0} |
char | todobuf [2048] |
int | todofdin |
int | todofdout |
int | flagtodoalive |
stralloc | newlocals = {0} |
stralloc | newvdoms = {0} |
#define CHANNELS 2 |
Definition at line 61 of file qmail-send.c.
#define CHECKSTAT if (errno != ENOENT) goto FAIL; |
#define REPORTMAX 10000 |
Definition at line 88 of file qmail-send.c.
void addbounce | ( | unsigned long | id, |
char * | recip, | ||
char * | report | ||
) |
Definition at line 524 of file qmail-send.c.
void cleandied | ( | ) |
Definition at line 73 of file qmail-send.c.
void cleanup_do | ( | ) |
Definition at line 274 of file qmail-send.c.
void cleanup_init | ( | ) |
Definition at line 262 of file qmail-send.c.
void cleanup_selprep | ( | datetime_sec * | wakeup | ) |
void comm_do | ( | fd_set * | wfds | ) |
Definition at line 229 of file qmail-send.c.
void comm_init | ( | void | ) |
Definition at line 179 of file qmail-send.c.
void comm_selprep | ( | int * | nfds, |
fd_set * | wfds | ||
) |
Definition at line 216 of file qmail-send.c.
Definition at line 198 of file qmail-send.c.
Definition at line 773 of file qmail-send.c.
int del_canexit | ( | ) |
Definition at line 763 of file qmail-send.c.
void del_do | ( | fd_set * | rfds | ) |
Definition at line 910 of file qmail-send.c.
void del_dochan | ( | int | c | ) |
Definition at line 829 of file qmail-send.c.
void del_init | ( | ) |
Definition at line 745 of file qmail-send.c.
void del_selprep | ( | int * | nfds, |
fd_set * | rfds | ||
) |
Definition at line 898 of file qmail-send.c.
void del_start | ( | int | j, |
seek_pos | mpos, | ||
char * | recip | ||
) |
Definition at line 778 of file qmail-send.c.
void del_status | ( | ) |
Definition at line 730 of file qmail-send.c.
void fnmake2_bounce | ( | unsigned long | id | ) |
Definition at line 110 of file qmail-send.c.
void fnmake_chanaddr | ( | unsigned long | id, |
int | c | ||
) |
Definition at line 111 of file qmail-send.c.
void fnmake_foop | ( | unsigned long | id | ) |
Definition at line 108 of file qmail-send.c.
void fnmake_info | ( | unsigned long | id | ) |
Definition at line 105 of file qmail-send.c.
void fnmake_init | ( | void | ) |
Definition at line 99 of file qmail-send.c.
void fnmake_mess | ( | unsigned long | id | ) |
Definition at line 107 of file qmail-send.c.
void fnmake_split | ( | unsigned long | id | ) |
Definition at line 109 of file qmail-send.c.
void fnmake_todo | ( | unsigned long | id | ) |
Definition at line 106 of file qmail-send.c.
int getcontrols | ( | void | ) |
Definition at line 1282 of file qmail-send.c.
int getinfo | ( | stralloc * | sa, |
datetime_sec * | dt, | ||
unsigned long | id | ||
) |
Definition at line 144 of file qmail-send.c.
int injectbounce | ( | unsigned long | id | ) |
Definition at line 573 of file qmail-send.c.
int job_avail | ( | ) |
void job_close | ( | int | j | ) |
Definition at line 460 of file qmail-send.c.
void job_init | ( | ) |
Definition at line 425 of file qmail-send.c.
int main | ( | void | ) |
void markdone | ( | int | c, |
unsigned long | id, | ||
seek_pos | pos | ||
) |
Definition at line 809 of file qmail-send.c.
void messdone | ( | unsigned long | id | ) |
Definition at line 1064 of file qmail-send.c.
datetime_sec nextretry | ( | datetime_sec | birth, |
int | c | ||
) |
Definition at line 981 of file qmail-send.c.
void pass_do | ( | ) |
Definition at line 1121 of file qmail-send.c.
void pass_dochan | ( | int | c | ) |
Definition at line 992 of file qmail-send.c.
void pass_init | ( | ) |
Definition at line 934 of file qmail-send.c.
void pass_selprep | ( | datetime_sec * | wakeup | ) |
Definition at line 941 of file qmail-send.c.
void pqadd | ( | unsigned long | id | ) |
Definition at line 320 of file qmail-send.c.
void pqfinish | ( | ) |
Definition at line 378 of file qmail-send.c.
void pqrun | ( | ) |
Definition at line 395 of file qmail-send.c.
void pqstart | ( | ) |
Definition at line 366 of file qmail-send.c.
void regetcontrols | ( | void | ) |
Definition at line 1315 of file qmail-send.c.
void reread | ( | void | ) |
Definition at line 1344 of file qmail-send.c.
void senderadd | ( | stralloc * | sa, |
char * | sender, | ||
char * | recip | ||
) |
Definition at line 116 of file qmail-send.c.
void sigalrm | ( | ) |
void sighup | ( | void | ) |
void sigterm | ( | void | ) |
void spawndied | ( | int | c | ) |
Definition at line 81 of file qmail-send.c.
char * stripvdomprepend | ( | char * | recip | ) |
void todo_del | ( | char * | s | ) |
Definition at line 1182 of file qmail-send.c.
void todo_do | ( | fd_set * | rfds | ) |
Definition at line 1231 of file qmail-send.c.
void todo_init | ( | void | ) |
Definition at line 1157 of file qmail-send.c.
void todo_selprep | ( | int * | nfds, |
fd_set * | rfds, | ||
datetime_sec * | wakeup | ||
) |
Definition at line 1168 of file qmail-send.c.
void tododied | ( | ) |
Definition at line 1151 of file qmail-send.c.
buffer b |
Definition at line 929 of file qmail-send.c.
stralloc bouncefrom = {0} |
Definition at line 53 of file qmail-send.c.
stralloc bouncehost = {0} |
Definition at line 54 of file qmail-send.c.
long bouncemaxbytes = 0 |
Definition at line 42 of file qmail-send.c.
stralloc bouncetext = {0} |
Definition at line 522 of file qmail-send.c.
char buf[BUFSIZE_SMALL] |
Definition at line 930 of file qmail-send.c.
Definition at line 62 of file qmail-send.c.
Definition at line 66 of file qmail-send.c.
Definition at line 65 of file qmail-send.c.
Definition at line 67 of file qmail-send.c.
Definition at line 63 of file qmail-send.c.
readsubdir cleanupdir |
Definition at line 259 of file qmail-send.c.
datetime_sec cleanuptime |
Definition at line 260 of file qmail-send.c.
stralloc comm_buf[CHANNELS] = { {0}, {0} } |
Definition at line 176 of file qmail-send.c.
Definition at line 177 of file qmail-send.c.
unsigned long concurrency[CHANNELS] = { 10, 20 } |
Definition at line 724 of file qmail-send.c.
unsigned long concurrencyused[CHANNELS] = { 0, 0 } |
Definition at line 725 of file qmail-send.c.
Definition at line 726 of file qmail-send.c.
char delbuf[2048] |
Definition at line 728 of file qmail-send.c.
stralloc dline[CHANNELS] |
Definition at line 727 of file qmail-send.c.
stralloc doublebouncehost = {0} |
Definition at line 56 of file qmail-send.c.
stralloc doublebounceto = {0} |
Definition at line 55 of file qmail-send.c.
stralloc envnoathost = {0} |
Definition at line 52 of file qmail-send.c.
int fd |
Definition at line 927 of file qmail-send.c.
int flagcleanup |
Definition at line 258 of file qmail-send.c.
int flagexitasap = 0 |
Definition at line 69 of file qmail-send.c.
int flagreadasap = 0 |
Definition at line 71 of file qmail-send.c.
int flagrunasap = 0 |
Definition at line 70 of file qmail-send.c.
Definition at line 79 of file qmail-send.c.
int flagtodoalive |
Definition at line 1149 of file qmail-send.c.
stralloc fn = {0} |
Definition at line 95 of file qmail-send.c.
stralloc fn2 = {0} |
Definition at line 96 of file qmail-send.c.
char fnmake_strnum[FMT_ULONG] |
Definition at line 97 of file qmail-send.c.
buffer fromqc |
Definition at line 174 of file qmail-send.c.
char fromqcbuf[BUFSIZE_LINE] |
Definition at line 175 of file qmail-send.c.
unsigned long id |
Definition at line 925 of file qmail-send.c.
int j |
Definition at line 926 of file qmail-send.c.
struct job* jo |
Definition at line 423 of file qmail-send.c.
long lifetime = 604800 |
Definition at line 41 of file qmail-send.c.
stralloc locals = {0} |
Definition at line 48 of file qmail-send.c.
struct constmap maplocals |
Definition at line 49 of file qmail-send.c.
struct constmap mappercenthack |
Definition at line 47 of file qmail-send.c.
struct constmap mapvdoms |
Definition at line 51 of file qmail-send.c.
unsigned long masterdelid = 1 |
Definition at line 723 of file qmail-send.c.
seek_pos mpos |
Definition at line 928 of file qmail-send.c.
stralloc newlocals = {0} |
Definition at line 1312 of file qmail-send.c.
stralloc newvdoms = {0} |
Definition at line 1313 of file qmail-send.c.
int numjobs |
Definition at line 422 of file qmail-send.c.
struct { ... } pass[CHANNELS] |
stralloc percenthack = {0} |
Definition at line 46 of file qmail-send.c.
prioq pqchan[CHANNELS] = { {0}, {0} } |
Definition at line 315 of file qmail-send.c.
prioq pqdone = {0} |
Definition at line 314 of file qmail-send.c.
prioq pqfail = {0} |
Definition at line 318 of file qmail-send.c.
stralloc queuedir = {0} |
Definition at line 44 of file qmail-send.c.
datetime_sec recent |
Definition at line 90 of file qmail-send.c.
char strnum2[FMT_ULONG] |
Definition at line 58 of file qmail-send.c.
char strnum3[FMT_ULONG] |
Definition at line 59 of file qmail-send.c.
Definition at line 64 of file qmail-send.c.
char todobuf[2048] |
Definition at line 1146 of file qmail-send.c.
int todofdin |
Definition at line 1147 of file qmail-send.c.
int todofdout |
Definition at line 1148 of file qmail-send.c.
stralloc todoline = {0} |
Definition at line 1145 of file qmail-send.c.
buffer toqc |
Definition at line 172 of file qmail-send.c.
char toqcbuf[BUFSIZE_LINE] |
Definition at line 173 of file qmail-send.c.
stralloc vdoms = {0} |
Definition at line 50 of file qmail-send.c.