-
- CleanupFunctionHook *newfcn;
-
- newfcn = (CleanupFunctionHook *)
- malloc(sizeof(CleanupFunctionHook));
- newfcn->next = CleanupHookTable;
- newfcn->h_function_pointer = fcn_ptr;
- CleanupHookTable = newfcn;
-
- syslog(LOG_INFO, "Registered a new cleanup function\n");
-}
-
-
-void CtdlUnregisterCleanupHook(void (*fcn_ptr) (void))
-{
- CleanupFunctionHook *cur, *p;
-
- for (cur = CleanupHookTable; cur != NULL; cur = cur->next) {
- /* This will also remove duplicates if any */
- while (cur != NULL &&
- fcn_ptr == cur->h_function_pointer) {
- syslog(LOG_INFO, "Unregistered cleanup function\n");
- p = cur->next;
- if (cur == CleanupHookTable) {
- CleanupHookTable = p;
- }
- free(cur);
- cur = p;
- }
- }
-}
-
-
-void CtdlDestroyCleanupHooks(void)
-{
- CleanupFunctionHook *cur, *p;
-
- cur = CleanupHookTable;
- while (cur != NULL)
- {
- syslog(LOG_INFO, "Destroyed cleanup function\n");
- p = cur->next;
- free(cur);
- cur = p;
- }
- CleanupHookTable = NULL;
-}
-
-void CtdlRegisterEVCleanupHook(void (*fcn_ptr) (void))
-{
-
- CleanupFunctionHook *newfcn;
-
- newfcn = (CleanupFunctionHook *)
- malloc(sizeof(CleanupFunctionHook));
- newfcn->next = EVCleanupHookTable;
- newfcn->h_function_pointer = fcn_ptr;
- EVCleanupHookTable = newfcn;
-
- syslog(LOG_INFO, "Registered a new cleanup function\n");
-}
-
-
-void CtdlUnregisterEVCleanupHook(void (*fcn_ptr) (void))
-{
- CleanupFunctionHook *cur, *p;
-
- for (cur = EVCleanupHookTable; cur != NULL; cur = cur->next) {
- /* This will also remove duplicates if any */
- while (cur != NULL &&
- fcn_ptr == cur->h_function_pointer) {
- syslog(LOG_INFO, "Unregistered cleanup function\n");
- p = cur->next;
- if (cur == EVCleanupHookTable) {
- EVCleanupHookTable = p;
- }
- free(cur);
- cur = p;
- }
- }
-}
-
-
-void CtdlDestroyEVCleanupHooks(void)
-{
- CleanupFunctionHook *cur, *p;
-
- cur = EVCleanupHookTable;
- while (cur != NULL)
- {
- syslog(LOG_INFO, "Destroyed cleanup function\n");
- p = cur->next;
- free(cur);
- cur = p;
- }
- EVCleanupHookTable = NULL;
-}
-
-
-void CtdlRegisterSessionHook(void (*fcn_ptr) (void), int EventType)
-{
-