Move back to single threaded structure for rss feed puller
[citadel.git] / citadel / include / ctdl_module.h
index 744e64fd3d19f75512f25af9a93361d4460933ad..5fae2e0c89d3480711a7e62c59a754c22d7fceb9 100644 (file)
@@ -168,6 +168,12 @@ void CtdlRegisterMaintenanceThread(char *name, void *(*thread_proc) (void *arg))
 
 void CtdlRegisterSearchFuncHook(void (*fcn_ptr)(int *, long **, const char *), char *name);
 
+/*
+ * if you say a) (which may take a while)
+ * don't forget to say b)
+ */
+void CtdlDisableHouseKeeping(void);
+void CtdlEnableHouseKeeping(void);
 
 /*
  * Directory services hooks for LDAP etc
@@ -234,14 +240,15 @@ unsigned CtdlCreateRoom(char *new_room_name,
                        int avoid_access,
                        int new_room_view);
 int CtdlGetRoom(struct ctdlroom *qrbuf, const char *room_name);
-int CtdlGetRoomLock(struct ctdlroom *qrbuf, char *room_name);
+int CtdlGetRoomLock(struct ctdlroom *qrbuf, const char *room_name);
 int CtdlDoIHavePermissionToDeleteThisRoom(struct ctdlroom *qr);
 void CtdlRoomAccess(struct ctdlroom *roombuf, struct ctdluser *userbuf, int *result, int *view);
 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);
-void CtdlForEachNetCfgRoom(ForEachRoomNetCfgCallBack CB, void *in_data, RoomNetCfg filter);
+char *LoadRoomNetConfigFile(long roomnum);
+void CtdlForEachNetCfgRoom(ForEachRoomNetCfgCallBack CB, void *in_data);
 void SaveChangedConfigs(void);
 void CtdlDeleteRoom(struct ctdlroom *qrbuf);
 int CtdlRenameRoom(char *old_name, char *new_name, int new_floor);
@@ -293,23 +300,14 @@ enum {
  */
 void CtdlModuleDoSearch(int *num_msgs, long **search_msgs, const char *search_string, const char *func_name);
 
-
-#define SET_CFGSTRBUF(which, buffer) safestrncpy(config.which, ChrPtr(buffer), sizeof(config.which))
-#define SET_CFGSTR(which, buffer) safestrncpy(config.which, buffer, sizeof(config.which))
-
-extern struct config config;
-
-
-#define NODENAME               config.c_nodename
-#define FQDN                   config.c_fqdn
+#define NODENAME               CtdlGetConfigStr("c_nodename")
+#define FQDN                   CtdlGetConfigStr("c_fqdn")
 #define CTDLUID                        ctdluid
-#define CREATAIDE              config.c_creataide
-#define REGISCALL              config.c_regiscall
-#define TWITDETECT             config.c_twitdetect
-#define TWITROOM               config.c_twitroom
-#define RESTRICT_INTERNET      config.c_restrict
-
-#define CFG_KEY(which) config.which, strlen(config.which)
+#define CREATAIDE              CtdlGetConfigInt("c_creataide")
+#define REGISCALL              CtdlGetConfigInt("c_regiscall")
+#define TWITDETECT             CtdlGetConfigInt("c_twitdetect")
+#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);
@@ -333,7 +331,7 @@ struct RoomNetCfgLine {
 
 struct OneRoomNetCfg {
        long lastsent;
-       long changed;
+       // long changed;
        StrBuf *Sender;
        StrBuf *RoomInfo;
        RoomNetCfgLine *NetConfigs[maxRoomNetCfg];
@@ -349,7 +347,9 @@ 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);
+OneRoomNetCfg *CtdlGetNetCfgForRoom(long QRNumber);
+void SaveRoomNetConfigFile(OneRoomNetCfg *, long);
+void FreeRoomNetworkStruct(OneRoomNetCfg **);
 
 typedef struct _nodeconf {
        int DeleteMe;