split citadel protocol related functions from msgbase.c into ctdl_message.c; fix...
[citadel.git] / citadel / internet_addressing.h
1
2 #include "server.h"
3
4 struct internet_address_list {
5         struct internet_address_list *next;
6         char ial_user[SIZ];
7         char ial_node[SIZ];
8         char ial_name[SIZ];
9 };
10
11 /* Data structure returned by validate_recipients() */
12 struct recptypes {
13         int recptypes_magic;
14         int num_local;
15         int num_internet;
16         int num_ignet;
17         int num_room;
18         int num_error;
19         char *errormsg;
20         char *recp_local;
21         char *recp_internet;
22         char *recp_ignet;
23         char *recp_room;
24         char *recp_orgroom;
25         char *display_recp;
26         char *bounce_to;
27         char *envelope_from;
28         char *sending_room;
29 };
30
31 #define RECPTYPES_MAGIC 0xfeeb
32
33 struct recptypes *validate_recipients(const char *recipients,
34                                       const char *RemoteIdentifier, 
35                                       int Flags);
36
37 void free_recipients(struct recptypes *);
38
39
40 int fuzzy_match(struct ctdluser *us, char *matchstring);
41 void process_rfc822_addr(const char *rfc822, char *user, char *node, char *name);
42 char *rfc822_fetch_field(const char *rfc822, const char *fieldname);
43 void sanitize_truncated_recipient(char *str);
44 char *qp_encode_email_addrs(char *source);
45 int alias (char *name);
46
47
48 int IsDirectory(char *addr, int allow_masq_domains);
49 void CtdlDirectoryInit(void);
50 int CtdlDirectoryAddUser(char *internet_addr, char *citadel_addr);
51 int CtdlDirectoryDelUser(char *internet_addr, char *citadel_addr);
52 int CtdlDirectoryLookup(char *target, char *internet_addr, size_t targbuflen);
53 struct CtdlMessage *convert_internet_message(char *rfc822);
54 struct CtdlMessage *convert_internet_message_buf(StrBuf **rfc822);
55
56 int CtdlHostAlias(char *fqdn);
57 char *harvest_collected_addresses(struct CtdlMessage *msg);
58
59 /* 
60  * Values that can be returned by CtdlHostAlias()
61  */
62 enum {
63         hostalias_nomatch,
64         hostalias_localhost,
65         hostalias_gatewaydomain,
66         hostalias_directory,
67         hostalias_masq
68 };
69
70 extern char *inetcfg;
71
72
73 struct spamstrings_t {
74         struct spamstrings_t *next;
75         char *string;
76 };
77
78 extern struct spamstrings_t *spamstrings;
79