#ifndef _DELIVER_REQUEST_H_INCLUDED_ #define _DELIVER_REQUEST_H_INCLUDED_ /*++ /* NAME /* deliver_request 3h /* SUMMARY /* mail delivery request protocol, server side /* SYNOPSIS /* #include <deliver_request.h> /* DESCRIPTION /* .nf /* * Utility library. */ #include <vstring.h> #include <vstream.h> /* * Global library. */ #include <recipient_list.h> /* * Structure of a server mail delivery request. */ typedef struct DELIVER_REQUEST { VSTREAM *fp; /* stream, shared lock */ int flags; /* see below */ char *queue_name; /* message queue name */ char *queue_id; /* message queue id */ long data_offset; /* offset to message */ long data_size; /* message size */ char *nexthop; /* next hop name */ char *encoding; /* content encoding */ char *sender; /* envelope sender */ char *errors_to; /* error report address */ char *return_receipt; /* confirm receipt address */ long arrival_time; /* arrival time */ RECIPIENT_LIST rcpt_list; /* envelope recipients */ char *hop_status; /* reason if unavailable */ } DELIVER_REQUEST; #define DEL_REQ_FLAG_DEFLT (DEL_REQ_FLAG_SUCCESS | DEL_REQ_FLAG_BOUNCE) #define DEL_REQ_FLAG_SUCCESS (1<<0) /* delete successful recipients */ #define DEL_REQ_FLAG_BOUNCE (1<<1) /* unimplemented */ /* * Delivery status. Note that there are only FINAL and DEFER. This is * because delivery status information can be lost when a delivery agent or * queue manager process terminates prematurely. The only distinctions we * can rely on are "final delivery completed" and "everything else". In the * absence of a definitive statement the queue manager will always have to * be prepared for all possibilities. */ #define DEL_STAT_FINAL 0 /* delivered or bounced */ #define DEL_STAT_DEFER (-1) /* not delivered or bounced */ typedef struct VSTREAM _deliver_vstream_; extern DELIVER_REQUEST *deliver_request_read(_deliver_vstream_ *); extern int deliver_request_done(_deliver_vstream_ *, DELIVER_REQUEST *, int); extern int deliver_pass(const char *, const char *, DELIVER_REQUEST *, const char *, const char *, long); /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA /*--*/ #endif