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