/* $Id$ */
+#ifndef MSGBASE_H
+#define MSGBASE_H
+
#define aide_message(text, subject) quickie_message("Citadel",NULL,NULL,AIDEROOM,text,0,subject)
enum {
/* 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[SIZ];
- char recp_local[SIZ];
- char recp_internet[SIZ];
- char recp_ignet[SIZ];
- char recp_room[SIZ];
- char display_recp[SIZ];
+ char *errormsg;
+ char *recp_local;
+ char *recp_internet;
+ char *recp_ignet;
+ char *recp_room;
+ char *display_recp;
};
+#define RECPTYPES_MAGIC 0xfeeb
+
/*
* This is a list of "harvested" email addresses that we might want to
* stick into someone's address book. But we defer this operaiton so
extern struct addresses_to_be_filed *atbf;
int alias (char *name);
-void get_mm (void);
void cmd_msgs (char *cmdbuf);
void cmd_isme (char *cmdbuf);
void help_subst (char *strbuf, char *source, char *dest);
void GetMetaData(struct MetaData *, long);
void PutMetaData(struct MetaData *);
void AdjRefCount(long, int);
+void TDAP_AdjRefCount(long, int);
+int TDAP_ProcessAdjRefCountQueue(void);
void simple_listing(long, void *);
int CtdlMsgCmp(struct CtdlMessage *msg, struct CtdlMessage *template);
int CtdlForEachMessage(int mode,
struct CtdlMessage *compare,
void (*CallBack) (long, void *),
void *userdata);
-int CtdlDeleteMessages(char *, long *, int, char *, int);
+int CtdlDeleteMessages(char *, long *, int, char *);
void CtdlWriteObject(char *, char *, char *, struct ctdluser *,
int, int, unsigned int);
struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body);
int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newmsgs,
int do_repl_check, struct CtdlMessage *supplied_msg);
int CtdlSaveMsgPointerInRoom(char *roomname, long msgid, int do_repl_check, struct CtdlMessage *msg);
-char *CtdlReadMessageBody(char *terminator, size_t maxlen, char *exist, int crlf);
+char *CtdlReadMessageBody(char *terminator, size_t maxlen, char *exist, int crlf, int sock);
char *CtdlGetSysConfig(char *sysconfname);
void CtdlPutSysConfig(char *sysconfname, char *sysconfdata);
int CtdlOutputMsg(long msg_num, /* message number (local) to fetch */
void CtdlGetSeen(char *buf, int which_set);
struct recptypes *validate_recipients(char *recipients);
+void free_recipients(struct recptypes *);
+
struct CtdlMessage *CtdlMakeMessage(
struct ctdluser *author, /* author's user structure */
char *recipient, /* NULL if it's not mail */
int type, /* see MES_ types in header file */
int format_type, /* variformat, plain text, MIME... */
char *fake_name, /* who we're masquerading as */
+ char *my_email, /* which of my email addresses to use (empty is ok) */
char *subject, /* Subject (optional) */
char *supplied_euid, /* ...or NULL if this is irrelevant */
char *preformatted_text /* ...or NULL to read text from client */
);
int CtdlCheckInternetMailPermission(struct ctdluser *who);
int CtdlIsMe(char *addr, int addr_buf_len);
+
+#endif /* MSGBASE_H */