diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-03-12 17:15:03 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-03-12 17:15:03 +0100 |
commit | 963cfc9a6f6e721f52aa949e6d1af0c3e8dc2ecc (patch) | |
tree | 749b74875dbc49bcf6ed0776648b8f0ef9417407 /sys/src/cmd/upas/smtp/smtp.h | |
parent | 8177d20fb2709ba9290dfd41308b8e5bee4e00f8 (diff) |
merging erik quanstros nupas
Diffstat (limited to 'sys/src/cmd/upas/smtp/smtp.h')
-rw-r--r-- | sys/src/cmd/upas/smtp/smtp.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/sys/src/cmd/upas/smtp/smtp.h b/sys/src/cmd/upas/smtp/smtp.h index bfac33ed9..d420d1dc3 100644 --- a/sys/src/cmd/upas/smtp/smtp.h +++ b/sys/src/cmd/upas/smtp/smtp.h @@ -24,8 +24,11 @@ struct Field { }; typedef struct DS DS; +typedef struct Mx Mx; +typedef struct Mxtab Mxtab; + struct DS { - /* dist string */ + /* dial string */ char buf[128]; char expand[128]; char *netdir; @@ -34,6 +37,25 @@ struct DS { char *service; }; +struct Mx +{ + char *netdir; + char host[256]; + char ip[24]; + int pref; + int valid; +}; + +struct Mxtab +{ + DS ds[2]; + int nmx; + int amx; + int pmx; + int fd; + Mx *mx; +}; + extern Field *firstfield; extern Field *lastfield; extern Node *usender; @@ -51,7 +73,6 @@ Node* address(Node*); int badfieldname(Node*); Node* bang(Node*, Node*); Node* colon(Node*, Node*); -int cistrcmp(char*, char*); Node* link2(Node*, Node*); Node* link3(Node*, Node*, Node*); void freenode(Node*); @@ -63,5 +84,9 @@ int yylex(void); String* yywhite(void); Node* whiten(Node*); void yycleanup(void); -int mxdial(char*, char*, char*); -void dial_string_parse(char*, DS*); +int mxdial0(char*, char*, char*, Mxtab*); +int mxdial(char*, char*, char*, Mx*); +void mxtabfree(Mxtab*); +void dialstringparse(char*, DS*); + +#define dprint(...) do if(debug)print(__VA_ARGS__); while(0) |