X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8e0f9bd3daae9d05dec58026d5a5924367e4e874..63621a81d16ab743de6b57d47578a9a2c670ad22:/mts/smtp/smtp.h?ds=sidebyside diff --git a/mts/smtp/smtp.h b/mts/smtp/smtp.h index 268de50a..6de4e514 100644 --- a/mts/smtp/smtp.h +++ b/mts/smtp/smtp.h @@ -1,6 +1,4 @@ - -/* - * smtp.h -- definitions for the nmh SMTP Interface +/* smtp.h -- definitions for the nmh SMTP Interface */ /* length is the length of the string in text[], which is also NUL @@ -16,9 +14,14 @@ struct smtp { * prototypes */ /* int client (); */ -int sm_init (char *, char *, char *, int, int, int, int, int, char *, char *, - const char *, int); -int sm_winit (char *); +/* TLS flags */ +#define S_STARTTLS 0x01 +#define S_INITTLS 0x02 +#define S_TLSENABLEMASK 0x03 +#define S_NOVERIFY 0x04 +int sm_init (char *, char *, char *, int, int, int, int, const char *, + const char *, const char *, int); +int sm_winit (char *, int, int); int sm_wadr (char *, char *, char *); int sm_waend (void); int sm_wtxt (char *, int); @@ -94,9 +97,6 @@ char *rp_string (int); /* FIELD 1: Basic degree of success (2-bits) */ -#define RP_BTYP '\200' /* good vs. bad; on => bad */ -#define RP_BVAL '\300' /* basic degree of success */ - #define RP_BOK '\000' /* went fine; all done */ #define RP_BPOK '\100' /* only the first part got done */ #define RP_BTNO '\200' /* temporary failure; try later */ @@ -104,19 +104,11 @@ char *rp_string (int); /* FIELD 2: Basic domain of discourse (3-bits) */ -#define RP_CVAL '\070' /* basic category (domain) of reply */ - #define RP_CSYN '\000' /* purely a matter of form */ #define RP_CGEN '\010' /* couldn't find anywhere else for it */ #define RP_CCON '\020' /* data-transfer-related issue */ #define RP_CUSR '\030' /* pertaining to the user */ #define RP_CMAI '\040' /* specific to mail semantics */ -#define RP_CFIL '\050' /* file system */ -#define RP_CLIO '\060' /* local i/o system */ - -/* FIELD 3: Specific value for this reply (3-bits) */ - -#define RP_SVAL '\007' /* specific value of reply */ /* @@ -127,9 +119,6 @@ char *rp_string (int); * Complete Success */ -/* done (e.g., w/transaction) */ -#define RP_DONE (RP_BOK | RP_CGEN | '\000') - /* general-purpose OK */ #define RP_OK (RP_BOK | RP_CGEN | '\001') @@ -141,89 +130,35 @@ char *rp_string (int); * Partial Success */ -/* you are the requestor */ -#define RP_MAST (RP_BPOK| RP_CGEN | '\000') - -/* you are the requestee */ -#define RP_SLAV (RP_BPOK| RP_CGEN | '\001') - /* message address is accepted */ #define RP_AOK (RP_BPOK| RP_CMAI | '\000') /* - * SPECIFIC FALURE VALUES + * SPECIFIC FAILURE VALUES */ /* * Partial Failure */ -/* not now; maybe later */ -#define RP_AGN (RP_BTNO | RP_CGEN | '\000') - -/* timeout */ -#define RP_TIME (RP_BTNO | RP_CGEN | '\001') - -/* no-op; nothing done, this time */ -#define RP_NOOP (RP_BTNO | RP_CGEN | '\002') - -/* encountered an end of file */ -#define RP_EOF (RP_BTNO | RP_CGEN | '\003') - -/* channel went bad */ -#define RP_NET (RP_BTNO | RP_CCON | '\000') - /* foreign host screwed up */ #define RP_BHST (RP_BTNO | RP_CCON | '\001') -/* host went away */ -#define RP_DHST (RP_BTNO | RP_CCON | '\002') - -/* general net i/o problem */ -#define RP_NIO (RP_BTNO | RP_CCON | '\004') - -/* error reading/writing file */ -#define RP_FIO (RP_BTNO | RP_CFIL | '\000') - -/* unable to create file */ -#define RP_FCRT (RP_BTNO | RP_CFIL | '\001') - -/* unable to open file */ -#define RP_FOPN (RP_BTNO | RP_CFIL | '\002') - -/* general local i/o problem */ -#define RP_LIO (RP_BTNO | RP_CLIO | '\000') - -/* resource currently locked */ -#define RP_LOCK (RP_BTNO | RP_CLIO | '\001') - /* * Complete Failure */ -/* bad mechanism/path; try alternate? */ -#define RP_MECH (RP_BNO | RP_CGEN | '\000') - /* general-purpose NO */ #define RP_NO (RP_BNO | RP_CGEN | '\001') -/* general prototocol error */ -#define RP_PROT (RP_BNO | RP_CCON | '\000') - /* bad reply code (PERMANENT ERROR) */ #define RP_RPLY (RP_BNO | RP_CCON | '\001') /* couldn't deliver */ #define RP_NDEL (RP_BNO | RP_CMAI | '\000') -/* couldn't parse the request */ -#define RP_HUH (RP_BNO | RP_CSYN | '\000') - -/* no such command defined */ -#define RP_NCMD (RP_BNO | RP_CSYN | '\001') - /* bad parameter */ #define RP_PARM (RP_BNO | RP_CSYN | '\002') @@ -234,42 +169,6 @@ char *rp_string (int); #define RP_USER (RP_BNO | RP_CUSR | '\000') -/* - * Macros to access reply info - */ - -/* get the entire return value */ -#define rp_gval(val) ((signed char) (val)) - - -/* - * The next three give the field's bits, within the whole value - */ - -/* get the basic part of return value */ -#define rp_gbval(val) (rp_gval (val) & RP_BVAL) - -/* get the domain part of value */ -#define rp_gcval(val) (rp_gval (val) & RP_CVAL) - -/* get the specific part of value */ -#define rp_gsval(val) (rp_gval (val) & RP_SVAL) - - -/* - * The next three give the numeric value withing the field - */ - -/* get the basic part right-shifted */ -#define rp_gbbit(val) ((rp_gval (val) >> 6) & 03) - -/* get the domain part right-shifted */ -#define rp_gcbit(val) ((rp_gval (val) >> 3) & 07) - -/* get the specific part right-shifted */ -#define rp_gsbit(val) (rp_gval (val) & 07) - - /* * MACHINE DEPENDENCY * @@ -278,9 +177,5 @@ char *rp_string (int); * negative. */ -/* is return value positive? */ -#define rp_isgood(val) (rp_gval (val) >= 0) - /* is return value negative? */ -#define rp_isbad(val) (rp_gval (val) < 0) - +#define rp_isbad(val) (((signed char)(val)) < 0)