X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fctdl_module.h;h=0ddfc6970a6341a0516d8b36fd54f5bab786bea3;hb=53d8e6f8d1f18b0085dcfd46d1fc8640381513bc;hp=6d16624b584d93dcd9d45e6f8d2ce6f32a8b76cc;hpb=a520d904d0069654c57d2b69618bee1225ee3067;p=citadel.git diff --git a/citadel/ctdl_module.h b/citadel/ctdl_module.h index 6d16624b5..0ddfc6970 100644 --- a/citadel/ctdl_module.h +++ b/citadel/ctdl_module.h @@ -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); -