]> code.citadel.org Git - citadel.git/blobdiff - citadel/citadel_ipc.h
*** empty log message ***
[citadel.git] / citadel / citadel_ipc.h
index aec31b59387a5c446e60d71223a4fed45fd58ac7..d1083f604797d80c8b1a416c16c34a6ed57b9caf 100644 (file)
@@ -43,6 +43,8 @@ typedef struct _CtdlIPC {
        int uploading;
        /* Time the last command was sent to the server */
        time_t last_command_sent;
+       /* Callback for update on whether the IPC is locked */
+       void (*network_status_cb)(int state);
 } CtdlIPC;
 
 /* C constructor */
@@ -104,6 +106,17 @@ struct ctdlipcmessage {
 };
 
 
+struct ctdlipcfile {
+       char remote_name[PATH_MAX];     /* Filename on server */
+       char local_name[PATH_MAX];      /* Filename on client */
+       char description[80];           /* Description on server */
+       FILE *local_fd;                 /* Open file on client */
+       size_t size;                    /* Size of file in octets */
+       int upload:1;                   /* uploading? 0 if downloading */
+       int complete:1;                 /* Transfer has finished? */
+};
+
+
 struct ctdlipcmisc {
        long newmail;                   /* Number of new Mail messages */
        char needregis;                 /* Nonzero if user needs to register */
@@ -118,7 +131,21 @@ enum RoomList {
        AllAccessibleRooms,
        AllPublicRooms,
 };
-       
+#define AllFloors -1
+enum MessageList {
+       AllMessages,
+       OldMessages,
+       NewMessages,
+       LastMessages,
+       FirstMessages,
+       MessagesGreaterThan,
+       MessagesLessThan,
+};
+enum MessageDirection {
+       ReadReverse = -1,
+       ReadForward = 1,
+};
+
 /* Shared Diffie-Hellman parameters */
 #define DH_P           "1A74527AEE4EE2568E85D4FB2E65E18C9394B9C80C42507D7A6A0DBE9A9A54B05A9A96800C34C7AA5297095B69C88901EEFD127F969DCA26A54C0E0B5C5473EBAEB00957D2633ECAE3835775425DE66C0DE6D024DBB17445E06E6B0C78415E589B8814F08531D02FD43778451E7685541079CFFB79EF0D26EFEEBBB69D1E80383"
 #define DH_G           "2"
@@ -137,23 +164,23 @@ int CtdlIPCCreateUser(CtdlIPC *ipc, const char *username, int selfservice,
 int CtdlIPCChangePassword(CtdlIPC *ipc, const char *passwd, char *cret);
 int CtdlIPCKnownRooms(CtdlIPC *ipc, enum RoomList which, int floor,
                struct march **listing, char *cret);
-int CtdlIPCGetConfig(CtdlIPC *ipc, struct usersupp **uret, char *cret);
-int CtdlIPCSetConfig(CtdlIPC *ipc, struct usersupp *uret, char *cret);
+int CtdlIPCGetConfig(CtdlIPC *ipc, struct user **uret, char *cret);
+int CtdlIPCSetConfig(CtdlIPC *ipc, struct user *uret, char *cret);
 int CtdlIPCGotoRoom(CtdlIPC *ipc, const char *room, const char *passwd,
                struct ctdlipcroom **rret, char *cret);
-int CtdlIPCGetMessages(CtdlIPC *ipc, int which, int whicharg,
-               const char *mtemplate,
-               long **mret, char *cret);
+int CtdlIPCGetMessages(CtdlIPC *ipc, enum MessageList which, int whicharg,
+               const char *mtemplate, unsigned long **mret, char *cret);
 int CtdlIPCGetSingleMessage(CtdlIPC *ipc, long msgnum, int headers, int as_mime,
                struct ctdlipcmessage **mret, char *cret);
 int CtdlIPCWhoKnowsRoom(CtdlIPC *ipc, char **listing, char *cret);
 int CtdlIPCServerInfo(CtdlIPC *ipc, struct CtdlServInfo *ServInfo, char *cret);
+/* int CtdlIPCReadDirectory(CtdlIPC *ipc, struct ctdlipcfile **files, char *cret); */
 int CtdlIPCReadDirectory(CtdlIPC *ipc, char **listing, char *cret);
 int CtdlIPCSetLastRead(CtdlIPC *ipc, long msgnum, char *cret);
 int CtdlIPCInviteUserToRoom(CtdlIPC *ipc, const char *username, char *cret);
 int CtdlIPCKickoutUserFromRoom(CtdlIPC *ipc, const char *username, char *cret);
-int CtdlIPCGetRoomAttributes(CtdlIPC *ipc, struct quickroom **qret, char *cret);
-int CtdlIPCSetRoomAttributes(CtdlIPC *ipc, int forget, struct quickroom *qret,
+int CtdlIPCGetRoomAttributes(CtdlIPC *ipc, struct room **qret, char *cret);
+int CtdlIPCSetRoomAttributes(CtdlIPC *ipc, int forget, struct room *qret,
                char *cret);
 int CtdlIPCGetRoomAide(CtdlIPC *ipc, char *cret);
 int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret);
@@ -233,25 +260,25 @@ int CtdlIPCChangeRoomname(CtdlIPC *ipc, const char *roomname, char *cret);
 int CtdlIPCChangeUsername(CtdlIPC *ipc, const char *username, char *cret);
 time_t CtdlIPCServerTime(CtdlIPC *ipc, char *crert);
 int CtdlIPCAideGetUserParameters(CtdlIPC *ipc, const char *who,
-                                struct usersupp **uret, char *cret);
-int CtdlIPCAideSetUserParameters(CtdlIPC *ipc, const struct usersupp *uret, char *cret);
+                                struct user **uret, char *cret);
+int CtdlIPCAideSetUserParameters(CtdlIPC *ipc, const struct user *uret, char *cret);
 int CtdlIPCGetMessageExpirationPolicy(CtdlIPC *ipc, int which,
                struct ExpirePolicy **policy, char *cret);
 int CtdlIPCSetMessageExpirationPolicy(CtdlIPC *ipc, int which,
                struct ExpirePolicy *policy, char *cret);
-int CtdlGetSystemConfig(CtdlIPC *ipc, char **listing, char *cret);
-int CtdlSetSystemConfig(CtdlIPC *ipc, const char *listing, char *cret);
-int CtdlGetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
+int CtdlIPCGetSystemConfig(CtdlIPC *ipc, char **listing, char *cret);
+int CtdlIPCSetSystemConfig(CtdlIPC *ipc, const char *listing, char *cret);
+int CtdlIPCGetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
                char **listing, char *cret);
-int CtdlSetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
+int CtdlIPCSetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
               const char *listing, char *cret);
-int CtdlIPCModerateMessage(CtdlIPC *ipc, long msgnum, int level, char *cret);
 int CtdlIPCRequestClientLogout(CtdlIPC *ipc, int session, char *cret);
 int CtdlIPCSetMessageSeen(CtdlIPC *ipc, long msgnum, int seen, char *cret);
 int CtdlIPCStartEncryption(CtdlIPC *ipc, char *cret);
 int CtdlIPCDirectoryLookup(CtdlIPC *ipc, const char *address, char *cret);
 int CtdlIPCSpecifyPreferredFormats(CtdlIPC *ipc, char *cret, char *formats);
 int CtdlIPCInternalProgram(CtdlIPC *ipc, int secret, char *cret);
+int CtdlIPCMessageBaseCheck(CtdlIPC *ipc, char **mret, char *cret);
 
 /* ************************************************************************** */
 /*             Stuff below this line is not for public consumption            */
@@ -282,7 +309,7 @@ int CtdlIPCGenericCommand(CtdlIPC *ipc, const char *command,
 /* Internals */
 int starttls(CtdlIPC *ipc);
 void setCryptoStatusHook(void (*hook)(char *s));
-void setLockHook(void (*hook)(int onoff));
+void CtdlIPC_SetNetworkStatusCallback(CtdlIPC *ipc, void (*hook)(int state));
 /* This is all Ford's doing.  FIXME: figure out what it's doing */
 extern int (*error_printf)(char *s, ...);
 void setIPCDeathHook(void (*hook)(void));