146686Sbrian/* $NetBSD$ */ 246686Sbrian 346686Sbrian/*++ 446686Sbrian/* NAME 546686Sbrian/* qmqpd 3h 646686Sbrian/* SUMMARY 746686Sbrian/* Postfix QMQP server 846686Sbrian/* SYNOPSIS 946686Sbrian/* include "qmqpd.h" 1046686Sbrian/* DESCRIPTION 1146686Sbrian/* .nf 1246686Sbrian 1346686Sbrian /* 1446686Sbrian * System library. 1546686Sbrian */ 1646686Sbrian#include <sys/time.h> 1746686Sbrian 1846686Sbrian /* 1946686Sbrian * Utility library. 2046686Sbrian */ 2146686Sbrian#include <vstream.h> 2246686Sbrian#include <vstring.h> 2346686Sbrian 2446686Sbrian /* 2546686Sbrian * Global library. 2650479Speter */ 2746686Sbrian#include <mail_stream.h> 2846686Sbrian 2946686Sbrian /* 3046686Sbrian * Per-session state. 3146686Sbrian */ 3246686Sbriantypedef struct { 3346686Sbrian int err; /* error flags */ 3446686Sbrian VSTREAM *client; /* client connection */ 3546686Sbrian VSTRING *message; /* message buffer */ 3646686Sbrian VSTRING *buf; /* line buffer */ 3746686Sbrian struct timeval arrival_time; /* start of session */ 3846686Sbrian char *name; /* client name */ 3946686Sbrian char *addr; /* client IP address */ 4046686Sbrian char *port; /* client TCP port */ 4146686Sbrian char *namaddr; /* name[addr]:port */ 4246686Sbrian char *rfc_addr; /* RFC 2821 client IP address */ 4346686Sbrian int addr_family; /* address family */ 4446686Sbrian char *queue_id; /* queue file ID */ 4546686Sbrian VSTREAM *cleanup; /* cleanup server */ 4646686Sbrian MAIL_STREAM *dest; /* cleanup server */ 4746686Sbrian int rcpt_count; /* recipient count */ 4846686Sbrian char *reason; /* exception name */ 4946686Sbrian char *sender; /* sender address */ 5046686Sbrian char *recipient; /* recipient address */ 5146686Sbrian char *protocol; /* protocol name */ 52134789Sbrian char *where; /* protocol state */ 53134789Sbrian VSTRING *why_rejected; /* REJECT reason */ 5447061Sbrian} QMQPD_STATE; 5547061Sbrian 5654912Sbrian /* 57131327Sbrian * Representation of unknown upstream client or message information within 5847061Sbrian * qmqpd processes. This is not the representation that Postfix uses in 5947061Sbrian * queue files, in queue manager delivery requests, or in XCLIENT/XFORWARD 6047061Sbrian * commands! 6147061Sbrian */ 62134789Sbrian#define CLIENT_ATTR_UNKNOWN "unknown" 63134789Sbrian 6446686Sbrian#define CLIENT_NAME_UNKNOWN CLIENT_ATTR_UNKNOWN 6546686Sbrian#define CLIENT_ADDR_UNKNOWN CLIENT_ATTR_UNKNOWN 66131327Sbrian#define CLIENT_PORT_UNKNOWN CLIENT_ATTR_UNKNOWN 6746686Sbrian#define CLIENT_NAMADDR_UNKNOWN CLIENT_ATTR_UNKNOWN 6846686Sbrian 6946686Sbrian /* 7046686Sbrian * QMQP protocol status codes. 7147061Sbrian */ 7247061Sbrian#define QMQPD_STAT_OK 'K' 7347061Sbrian#define QMQPD_STAT_RETRY 'Z' 74131327Sbrian#define QMQPD_STAT_HARD 'D' 75131327Sbrian 76131327Sbrian /* 77131327Sbrian * qmqpd_state.c 7854912Sbrian */ 7946686SbrianQMQPD_STATE *qmqpd_state_alloc(VSTREAM *); 8046686Sbrianvoid qmqpd_state_free(QMQPD_STATE *); 8146686Sbrian 8246686Sbrian /* 8346686Sbrian * qmqpd_peer.c 8447062Sbrian */ 85void qmqpd_peer_init(QMQPD_STATE *); 86void qmqpd_peer_reset(QMQPD_STATE *); 87 88/* LICENSE 89/* .ad 90/* .fi 91/* The Secure Mailer license must be distributed with this software. 92/* AUTHOR(S) 93/* Wietse Venema 94/* IBM T.J. Watson Research 95/* P.O. Box 704 96/* Yorktown Heights, NY 10598, USA 97/*--*/ 98