]> code.citadel.org Git - citadel.git/blobdiff - citadel/msgbase.h
Keep track of thread references, in the server and in the text client. This required...
[citadel.git] / citadel / msgbase.h
index 6a6f5e109b831c0228376d364355f47f9356d03a..1c02bd68630d93220a2ffb4728d629c97fba136b 100644 (file)
@@ -1,5 +1,8 @@
 /* $Id$ */
 
+#ifndef MSGBASE_H
+#define MSGBASE_H
+
 #define aide_message(text, subject)      quickie_message("Citadel",NULL,NULL,AIDEROOM,text,0,subject)
 
 enum {
@@ -121,12 +124,13 @@ void CtdlWriteObject(char *, char *, char *, struct ctdluser *,
 struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body);
 void CtdlFreeMessage(struct CtdlMessage *msg);
 void serialize_message(struct ser_ret *, struct CtdlMessage *);
+void dump_message(struct CtdlMessage *msg, long Siz);
 int is_valid_message(struct CtdlMessage *);
 void ReplicationChecks(struct CtdlMessage *);
 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 */
@@ -144,7 +148,17 @@ int CtdlOutputPreLoadedMsg(struct CtdlMessage *,
 );
 int CtdlCopyMsgsToRoom(long *msgnum, int num_msgs, char *dest);
 int CtdlDoIHavePermissionToDeleteMessagesFromThisRoom(void);
-int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, size_t n);
+
+enum {
+       POST_LOGGED_IN,
+       POST_EXTERNAL,
+       CHECK_EXISTANCE,
+       POST_LMTP
+};
+int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, 
+                                         size_t n, 
+                                         const char* RemoteIdentifier,
+                                         int PostPublic);
 
 
 /* values for which_set */
@@ -157,7 +171,10 @@ void CtdlSetSeen(long *target_msgnums, int num_target_msgnums,
                struct ctdluser *which_user, struct ctdlroom *which_room);
 void CtdlGetSeen(char *buf, int which_set);
 
-struct recptypes *validate_recipients(char *recipients);
+struct recptypes *validate_recipients(char *recipients,
+                                     const char *RemoteIdentifier, 
+                                     int Flags);
+
 void free_recipients(struct recptypes *);
 
 struct CtdlMessage *CtdlMakeMessage(
@@ -171,7 +188,10 @@ struct CtdlMessage *CtdlMakeMessage(
        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 */
+        char *preformatted_text,        /* ...or NULL to read text from client */
+       char *references                /* Thread references */
 );
 int CtdlCheckInternetMailPermission(struct ctdluser *who);
 int CtdlIsMe(char *addr, int addr_buf_len);
+
+#endif /* MSGBASE_H */