Write lastsent back to netconfig after sending list messages
[citadel.git] / citadel / ctdl_module.h
index 6d16624b584d93dcd9d45e6f8d2ce6f32a8b76cc..0ddfc6970a6341a0516d8b36fd54f5bab786bea3 100644 (file)
@@ -105,10 +105,8 @@ void CtdlUnregisterUserHook(void (*fcn_ptr)(struct ctdluser *), int EventType);
 void CtdlRegisterXmsgHook(int (*fcn_ptr)(char *, char *, char *, char *), int order);
 void CtdlUnregisterXmsgHook(int (*fcn_ptr)(char *, char *, char *, char *), int order);
 
-void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes*),
-                                                       int EventType);
-void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes *),
-                              int EventType);
+void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, struct recptypes *), int EventType);
+void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *, struct recptypes *), int EventType);
 
 void CtdlRegisterRoomHook(int (*fcn_ptr)(struct ctdlroom *) );
 void CtdlUnregisterRoomHook(int (*fnc_ptr)(struct ctdlroom *) );
@@ -138,13 +136,9 @@ void CtdlUnregisterServiceHook(int tcp_port,
                         void (*h_async_function) (void)
 );
 
-void CtdlRegisterFixedOutputHook(char *content_type,
-                       void (*output_function) (char *supplied_data, int len)
-);
+void CtdlRegisterFixedOutputHook(char *content_type, void (*output_function) (char *supplied_data, int len));
 void CtdlUnRegisterFixedOutputHook(char *content_type);
-
 void CtdlRegisterMaintenanceThread(char *name, void *(*thread_proc) (void *arg));
-
 void CtdlRegisterSearchFuncHook(void (*fcn_ptr)(int *, long **, const char *), char *name);
 
 /*
@@ -154,20 +148,6 @@ void CtdlRegisterSearchFuncHook(void (*fcn_ptr)(int *, long **, const char *), c
 void CtdlDisableHouseKeeping(void);
 void CtdlEnableHouseKeeping(void);
 
-/*
- * Directory services hooks for LDAP etc
- */
-
-#define DIRECTORY_USER_DEL 1   // Delete a user entry
-#define DIRECTORY_CREATE_HOST 2        // Create a host entry if not already there.
-#define DIRECTORY_CREATE_OBJECT 3      // Create a new object for directory entry
-#define DIRECTORY_ATTRIB_ADD 4 // Add an attribute to the directory entry object
-#define DIRECTORY_SAVE_OBJECT 5        // Save the object to the directory service
-#define DIRECTORY_FREE_OBJECT 6        // Free the object and its attributes
-
-int CtdlRegisterDirectoryServiceFunc(int (*func)(char *cn, char *ou, void **object), int cmd, char *module);
-int CtdlDoDirectoryServiceFunc(char *cn, char *ou, void **object, char *module, int cmd);
-
 /* TODODRW: This needs to be changed into a hook type interface
  * for now we have this horrible hack
  */
@@ -207,9 +187,6 @@ long CtdlGetCurrentMessageNumber(void);
 /*
  * Expose various room operation functions from room_ops.c to the modules API
  */
-typedef struct CfgLineType CfgLineType;
-typedef struct RoomNetCfgLine RoomNetCfgLine;
-typedef struct OneRoomNetCfg OneRoomNetCfg;
 
 unsigned CtdlCreateRoom(char *new_room_name,
                        int new_room_type,
@@ -225,10 +202,8 @@ void CtdlRoomAccess(struct ctdlroom *roombuf, struct ctdluser *userbuf, int *res
 void CtdlPutRoomLock(struct ctdlroom *qrbuf);
 typedef void (*ForEachRoomCallBack)(struct ctdlroom *EachRoom, void *out_data);
 void CtdlForEachRoom(ForEachRoomCallBack CB, void *in_data);
-typedef void (*ForEachRoomNetCfgCallBack)(struct ctdlroom *EachRoom, void *out_data, OneRoomNetCfg *OneRNCFG);
 char *LoadRoomNetConfigFile(long roomnum);
-void CtdlForEachNetCfgRoom(ForEachRoomNetCfgCallBack CB, void *in_data);
-void SaveChangedConfigs(void);
+void SaveRoomNetConfigFile(long roomnum, const char *raw_netconfig);
 void CtdlDeleteRoom(struct ctdlroom *qrbuf);
 int CtdlRenameRoom(char *old_name, char *new_name, int new_floor);
 void CtdlUserGoto (char *where, int display_result, int transiently, int *msgs, int *new, long *oldest, long *newest);
@@ -288,73 +263,7 @@ void CtdlModuleDoSearch(int *num_msgs, long **search_msgs, const char *search_st
 #define TWITROOM               CtdlGetConfigStr("c_twitroom")
 #define RESTRICT_INTERNET      CtdlGetConfigInt("c_restrict")
 
-typedef void (*CfgLineParser)(const CfgLineType *ThisOne, StrBuf *Line, const char *LinePos, OneRoomNetCfg *rncfg);
-typedef void (*CfgLineSerializer)(const CfgLineType *ThisOne, StrBuf *OuptputBuffer, OneRoomNetCfg *rncfg, RoomNetCfgLine *data);
-typedef void (*CfgLineDeAllocator)(const CfgLineType *ThisOne, RoomNetCfgLine **data);
-
-struct CfgLineType {
-       RoomNetCfg C;
-       CfgLineParser Parser;
-       CfgLineSerializer Serializer;
-       CfgLineDeAllocator DeAllocator;
-       ConstStr Str;
-       int IsSingleLine;
-       int nSegments;
-};
-
-struct RoomNetCfgLine {
-       RoomNetCfgLine *next;
-       int nValues;
-       StrBuf **Value;
-};
-
-struct OneRoomNetCfg {
-       long lastsent;
-       // long changed;
-       StrBuf *Sender;
-       StrBuf *RoomInfo;
-       RoomNetCfgLine *NetConfigs[maxRoomNetCfg];
-       StrBuf *misc;
-};
-
-
 #define CtdlREGISTERRoomCfgType(a, p, uniq, nSegs, s, d) RegisterRoomCfgType(#a, sizeof(#a) - 1, a, p, uniq, nSegs, s, d);
-void RegisterRoomCfgType(const char* Name, long len, RoomNetCfg eCfg, CfgLineParser p, int uniq, int nSegments, CfgLineSerializer s, CfgLineDeAllocator d);
-void ParseGeneric(const CfgLineType *ThisOne, StrBuf *Line, const char *LinePos, OneRoomNetCfg *sc);
-void SerializeGeneric(const CfgLineType *ThisOne, StrBuf *OutputBuffer, OneRoomNetCfg *sc, RoomNetCfgLine *data);
-void DeleteGenericCfgLine(const CfgLineType *ThisOne, RoomNetCfgLine **data);
-RoomNetCfgLine *DuplicateOneGenericCfgLine(const RoomNetCfgLine *data);
-void AddRoomCfgLine(OneRoomNetCfg *OneRNCfg, struct ctdlroom *qrbuf, RoomNetCfg LineType, RoomNetCfgLine *Line);
-
-OneRoomNetCfg *CtdlGetNetCfgForRoom(long QRNumber);
-void SaveRoomNetConfigFile(OneRoomNetCfg *, long);
-void FreeRoomNetworkStruct(OneRoomNetCfg **);
-
-typedef struct _nodeconf {
-       int DeleteMe;
-       StrBuf *NodeName;
-       StrBuf *Secret;
-       StrBuf *Host;
-       StrBuf *Port;
-}CtdlNodeConf;
-
-HashList* CtdlLoadIgNetCfg(void);
-
-
-int CtdlNetconfigCheckRoomaccess(char *errmsgbuf, 
-                                size_t n,
-                                const char* RemoteIdentifier);
-
-
-typedef struct __NetMap {
-       StrBuf *NodeName;
-       time_t lastcontact;
-       StrBuf *NextHop;
-}CtdlNetMap;
-
-HashList* CtdlReadNetworkMap(void);
-StrBuf *CtdlSerializeNetworkMap(HashList *Map);
-