Home | History | Annotate | Line # | Download | only in global
      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   */
     56 typedef struct ANVIL_CLNT ANVIL_CLNT;
     57 
     58 extern ANVIL_CLNT *anvil_clnt_create(void);
     59 extern int anvil_clnt_connect(ANVIL_CLNT *, const char *, const char *, int *, int *);
     60 extern int anvil_clnt_mail(ANVIL_CLNT *, const char *, const char *, int *);
     61 extern int anvil_clnt_rcpt(ANVIL_CLNT *, const char *, const char *, int *);
     62 extern int anvil_clnt_newtls(ANVIL_CLNT *, const char *, const char *, int *);
     63 extern int anvil_clnt_newtls_stat(ANVIL_CLNT *, const char *, const char *, int *);
     64 extern int anvil_clnt_auth(ANVIL_CLNT *, const char *, const char *, int *);
     65 extern int anvil_clnt_lookup(ANVIL_CLNT *, const char *, const char *, int *, int *, int *, int *, int *, int *);
     66 extern int anvil_clnt_disconnect(ANVIL_CLNT *, const char *, const char *);
     67 extern 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