NetBSD/gnu/dist/postfix/global/mail_proto.h

108 lines
2.8 KiB
C

#ifndef _MAIL_PROTO_H_INCLUDED_
#define _MAIL_PROTO_H_INCLUDED_
/*++
/* NAME
/* mail_proto 3h
/* SUMMARY
/* mail internal IPC support
/* SYNOPSIS
/* #include <mail_proto.h>
/* DESCRIPTION
/* .nf
/*
* System library.
*/
#include <stdarg.h>
/*
* Utility library.
*/
#include <vstream.h>
#include <iostuff.h>
/*
* Names of services: these are the names if INET ports, UNIX-domain sockets
* or FIFOs that a service listens on.
*/
#define MAIL_SERVICE_BOUNCE "bounce"
#define MAIL_SERVICE_CLEANUP "cleanup"
#define MAIL_SERVICE_DEFER "defer"
#define MAIL_SERVICE_FORWARD "forward"
#define MAIL_SERVICE_LOCAL "local"
#define MAIL_SERVICE_PICKUP "pickup"
#define MAIL_SERVICE_QUEUE "qmgr"
#define MAIL_SERVICE_RESOLVE "resolve"
#define MAIL_SERVICE_REWRITE "rewrite"
#define MAIL_SERVICE_VIRTUAL "virtual"
#define MAIL_SERVICE_SMTP "smtp"
#define MAIL_SERVICE_SMTPD "smtpd"
#define MAIL_SERVICE_SHOWQ "showq"
#define MAIL_SERVICE_ERROR "error"
/*
* Well-known socket or FIFO directories. The main difference is in file
* access permissions.
*/
#define MAIL_CLASS_PUBLIC "public"
#define MAIL_CLASS_PRIVATE "private"
/*
* When sending across a list of objects, this is how we signal the list
* end.
*/
#define MAIL_EOF "@"
/*
* Generic triggers.
*/
#define TRIGGER_REQ_WAKEUP 'W' /* wakeup */
/*
* Queue manager requests.
*/
#define QMGR_REQ_SCAN_DEFERRED 'D' /* scan deferred queue */
#define QMGR_REQ_SCAN_INCOMING 'I' /* scan incoming queue */
#define QMGR_REQ_FLUSH_DEAD 'F' /* flush dead xport/site */
#define QMGR_REQ_SCAN_ALL 'A' /* ignore time stamps */
/*
* Functional interface.
*/
#define MAIL_SCAN_MORE 0
#define MAIL_SCAN_DONE 1
#define MAIL_SCAN_ERROR -1
typedef int (*MAIL_SCAN_FN) (const char *, char *);
typedef void (*MAIL_PRINT_FN) (VSTREAM *, const char *);
extern VSTREAM *mail_connect(const char *, const char *, int);
extern VSTREAM *mail_connect_wait(const char *, const char *);
extern int mail_scan(VSTREAM *, const char *,...);
extern void mail_scan_register(int, const char *, MAIL_SCAN_FN);
extern void mail_print_register(int, const char *, MAIL_PRINT_FN);
extern int mail_print(VSTREAM *, const char *,...);
extern int mail_command_write(const char *, const char *, const char *,...);
extern int mail_command_read(VSTREAM *, char *,...);
extern int mail_trigger(const char *, const char *, const char *, int);
extern char *mail_pathname(const char *, const char *);
/*
* Stuff that needs <stdarg.h>
*/
extern int mail_vprint(VSTREAM *, const char *, va_list);
extern int mail_vscan(VSTREAM *, const char *, va_list);
/* 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