+void CtdlRegisterDeleteHook(int (*handler)(char *, long) )
+{
+ struct DeleteFunctionHook *newfcn;
+
+ newfcn = (struct DeleteFunctionHook *)
+ mallok(sizeof(struct DeleteFunctionHook));
+ newfcn->next = DeleteHookTable;
+ newfcn->h_function_pointer = handler;
+ DeleteHookTable = newfcn;
+
+ lprintf(5, "Registered a new netproc function\n");
+}
+
+
+void CtdlUnregisterDeleteHook(int (*handler)(char *, long) )
+{
+ struct DeleteFunctionHook *cur, *p;
+
+ for (cur = DeleteHookTable; cur != NULL; cur = cur->next) {
+ /* This will also remove duplicates if any */
+ while (cur != NULL &&
+ handler == cur->h_function_pointer ) {
+ lprintf(5, "Unregistered netproc function\n");
+ p = cur->next;
+ if (cur == DeleteHookTable) {
+ DeleteHookTable = p;
+ }
+ phree(cur);
+ cur = p;
+ }
+ }
+}
+
+