summaryrefslogtreecommitdiff
path: root/sys/src/cmd/upas/smtp/smtp.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-03-12 17:15:03 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2017-03-12 17:15:03 +0100
commit963cfc9a6f6e721f52aa949e6d1af0c3e8dc2ecc (patch)
tree749b74875dbc49bcf6ed0776648b8f0ef9417407 /sys/src/cmd/upas/smtp/smtp.h
parent8177d20fb2709ba9290dfd41308b8e5bee4e00f8 (diff)
merging erik quanstros nupas
Diffstat (limited to 'sys/src/cmd/upas/smtp/smtp.h')
-rw-r--r--sys/src/cmd/upas/smtp/smtp.h33
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)