1/* $NetBSD: anvil_clnt.h,v 1.3 2020/03/18 19:05:16 christos Exp $ */ 2 3#ifndef _ANVIL_CLNT_H_INCLUDED_ 4#define _ANVIL_CLNT_H_INCLUDED_ 5 6/*++ 7/* NAME 8/* anvil_clnt 3h 9/* SUMMARY 10/* connection count and rate management client interface 11/* SYNOPSIS 12/* #include <anvil_clnt.h> 13/* DESCRIPTION 14/* .nf 15 16 /* 17 * System library. 18 */ 19#include <stdarg.h> 20 21 /* 22 * Utility library. 23 */ 24#include <attr_clnt.h> 25 26 /* 27 * Protocol interface: requests and endpoints. 28 */ 29#define ANVIL_SERVICE "anvil" 30#define ANVIL_CLASS "private" 31 32#define ANVIL_ATTR_REQ "request" 33#define ANVIL_REQ_CONN "connect" 34#define ANVIL_REQ_DISC "disconnect" 35#define ANVIL_REQ_MAIL "message" 36#define ANVIL_REQ_RCPT "recipient" 37#define ANVIL_REQ_NTLS "newtls" 38#define ANVIL_REQ_NTLS_STAT "newtls_status" 39#define ANVIL_REQ_AUTH "auth" 40#define ANVIL_REQ_LOOKUP "lookup" 41#define ANVIL_ATTR_IDENT "ident" 42#define ANVIL_ATTR_COUNT "count" 43#define ANVIL_ATTR_RATE "rate" 44#define ANVIL_ATTR_MAIL "mail" 45#define ANVIL_ATTR_RCPT "rcpt" 46#define ANVIL_ATTR_NTLS "newtls" 47#define ANVIL_ATTR_AUTH "auth" 48#define ANVIL_ATTR_STATUS "status" 49 50#define ANVIL_STAT_OK 0 51#define ANVIL_STAT_FAIL (-1) 52 53 /* 54 * Functional interface. 55 */ 56typedef struct ANVIL_CLNT ANVIL_CLNT; 57 58extern ANVIL_CLNT *anvil_clnt_create(void); 59extern int anvil_clnt_connect(ANVIL_CLNT *, const char *, const char *, int *, int *); 60extern int anvil_clnt_mail(ANVIL_CLNT *, const char *, const char *, int *); 61extern int anvil_clnt_rcpt(ANVIL_CLNT *, const char *, const char *, int *); 62extern int anvil_clnt_newtls(ANVIL_CLNT *, const char *, const char *, int *); 63extern int anvil_clnt_newtls_stat(ANVIL_CLNT *, const char *, const char *, int *); 64extern int anvil_clnt_auth(ANVIL_CLNT *, const char *, const char *, int *); 65extern int anvil_clnt_lookup(ANVIL_CLNT *, const char *, const char *, int *, int *, int *, int *, int *, int *); 66extern int anvil_clnt_disconnect(ANVIL_CLNT *, const char *, const char *); 67extern void anvil_clnt_free(ANVIL_CLNT *); 68 69/* LICENSE 70/* .ad 71/* .fi 72/* The Secure Mailer license must be distributed with this software. 73/* AUTHOR(S) 74/* Wietse Venema 75/* IBM T.J. Watson Research 76/* P.O. Box 704 77/* Yorktown Heights, NY 10598, USA 78/* 79/* Wietse Venema 80/* Google, Inc. 81/* 111 8th Avenue 82/* New York, NY 10011, USA 83/*--*/ 84 85#endif 86