]> code.citadel.org Git - citadel.git/blobdiff - citadel/msgbase.h
CtdlRoomAccess() can now return a new value UA_REPLYALLOWED, which
[citadel.git] / citadel / msgbase.h
index 39e274630eb2380237101bce6868ae4b8351a73f..039a8a1bbd5da01ccb49050889a81a03eaa1c4c8 100644 (file)
@@ -1,4 +1,3 @@
-/* $Id$ */
 
 #ifndef MSGBASE_H
 #define MSGBASE_H
@@ -12,7 +11,14 @@ enum {
        MSGS_LAST,
        MSGS_GT,
        MSGS_EQ,
-       MSGS_SEARCH
+       MSGS_SEARCH,
+       MSGS_LT
+};
+
+enum {
+       MSG_HDRS_BRIEF = 0,
+       MSG_HDRS_ALL = 1,
+       MSG_HDRS_EUID = 4
 };
 
 /*
@@ -89,7 +95,7 @@ void cmd_msgs (char *cmdbuf);
 void cmd_isme (char *cmdbuf);
 void help_subst (char *strbuf, char *source, char *dest);
 void do_help_subst (char *buffer);
-void memfmout (char *mptr, char subst, char *nl);
+void memfmout (char *mptr, const char *nl);
 void output_mime_parts(char *);
 void cmd_msg0 (char *cmdbuf);
 void cmd_msg2 (char *cmdbuf);
@@ -112,12 +118,13 @@ void TDAP_AdjRefCount(long, int);
 int TDAP_ProcessAdjRefCountQueue(void);
 void simple_listing(long, void *);
 int CtdlMsgCmp(struct CtdlMessage *msg, struct CtdlMessage *template);
+typedef void (*ForEachMsgCallback)(long MsgNumber, void *UserData);
 int CtdlForEachMessage(int mode,
                        long ref,
                        char *searchstring,
                        char *content_type,
                        struct CtdlMessage *compare,
-                        void (*CallBack) (long, void *),
+                        ForEachMsgCallback CallBack,
                        void *userdata);
 int CtdlDeleteMessages(char *, long *, int, char *);
 void CtdlWriteObject(char *req_room,                   /* Room to stuff it in */
@@ -136,11 +143,18 @@ 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 do_repl_check, struct CtdlMessage *supplied_msg, int suppress_refcount_adj);
 int CtdlSaveMsgPointerInRoom(char *roomname, long msgid, int do_repl_check, struct CtdlMessage *msg);
-char *CtdlReadMessageBody(char *terminator, size_t maxlen, char *exist, int crlf, int sock);
-char *CtdlGetSysConfig(char *sysconfname);
-void CtdlPutSysConfig(char *sysconfname, char *sysconfdata);
+char *CtdlReadMessageBody(char *terminator, long tlen, size_t maxlen, char *exist, int crlf, int *sock);
+StrBuf *CtdlReadMessageBodyBuf(char *terminator,       /* token signalling EOT */
+                              long tlen,
+                              size_t maxlen,           /* maximum message length */
+                              char *exist,             /* if non-null, append to it;
+                                                          exist is ALWAYS freed  */
+                              int crlf,                /* CRLF newlines instead of LF */
+                              int *sock                /* socket handle or 0 for this session's client socket */
+       );
+
 int CtdlOutputMsg(long msg_num,                /* message number (local) to fetch */
                  int mode,             /* how would you like that message? */
                  int headers_only,     /* eschew the message body? */
@@ -172,10 +186,13 @@ enum {
        CHECK_EXISTANCE,
        POST_LMTP
 };
+
 int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, 
-                                         size_t n, 
-                                         const char* RemoteIdentifier,
-                                         int PostPublic);
+       size_t n, 
+       const char* RemoteIdentifier,
+       int PostPublic,
+       int is_reply
+);
 
 
 /* values for which_set */
@@ -188,7 +205,7 @@ 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(const char *recipients,
                                      const char *RemoteIdentifier, 
                                      int Flags);