-/*
- * $Id$
- *
- */
#include "server.h"
char ial_name[SIZ];
};
+/* Data structure returned by validate_recipients() */
+struct recptypes {
+ int recptypes_magic;
+ int num_local;
+ int num_internet;
+ int num_ignet;
+ int num_room;
+ int num_error;
+ char *errormsg;
+ char *recp_local;
+ char *recp_internet;
+ char *recp_ignet;
+ char *recp_room;
+ char *recp_orgroom;
+ char *display_recp;
+ char *bounce_to;
+ char *envelope_from;
+ char *sending_room;
+};
+
+#define RECPTYPES_MAGIC 0xfeeb
+
+struct recptypes *validate_recipients(const char *recipients,
+ const char *RemoteIdentifier,
+ int Flags);
+
+void free_recipients(struct recptypes *);
+
int fuzzy_match(struct ctdluser *us, char *matchstring);
void process_rfc822_addr(const char *rfc822, char *user, char *node, char *name);
-char *rfc822_fetch_field(char *rfc822, char *fieldname);
+char *rfc822_fetch_field(const char *rfc822, const char *fieldname);
+void sanitize_truncated_recipient(char *str);
+char *qp_encode_email_addrs(char *source);
+int alias (char *name);
-int IsDirectory(char *addr);
+
+int IsDirectory(char *addr, int allow_masq_domains);
void CtdlDirectoryInit(void);
-void CtdlDirectoryAddUser(char *internet_addr, char *citadel_addr);
-void CtdlDirectoryDelUser(char *internet_addr, char *citadel_addr);
-int CtdlDirectoryLookup(char *target, char *internet_addr);
+int CtdlDirectoryAddUser(char *internet_addr, char *citadel_addr);
+int CtdlDirectoryDelUser(char *internet_addr, char *citadel_addr);
+int CtdlDirectoryLookup(char *target, char *internet_addr, size_t targbuflen);
struct CtdlMessage *convert_internet_message(char *rfc822);
+struct CtdlMessage *convert_internet_message_buf(StrBuf **rfc822);
+
int CtdlHostAlias(char *fqdn);
+char *harvest_collected_addresses(struct CtdlMessage *msg);
/*
* Values that can be returned by CtdlHostAlias()
hostalias_nomatch,
hostalias_localhost,
hostalias_gatewaydomain,
- hostalias_directory
+ hostalias_directory,
+ hostalias_masq
};
extern char *inetcfg;