This commit was generated by cvs2svn to compensate for changes in r2,
[ircu2.10.12-pk.git] / include / list.h
diff --git a/include/list.h b/include/list.h
new file mode 100644 (file)
index 0000000..ef61f3a
--- /dev/null
@@ -0,0 +1,70 @@
+#ifndef LIST_H
+#define LIST_H
+
+/*=============================================================================
+ * General defines
+ */
+
+/*=============================================================================
+ * Macro's
+ */
+
+/* ============================================================================
+ * Structures
+ */
+
+struct SLink {
+  struct SLink *next;
+  union {
+    aClient *cptr;
+    struct Channel *chptr;
+    struct ConfItem *aconf;
+    char *cp;
+    struct {
+      char *banstr;
+      char *who;
+      time_t when;
+    } ban;
+  } value;
+  unsigned int flags;
+};
+
+struct DSlink {
+  struct DSlink *next;
+  struct DSlink *prev;
+  union {
+    aClient *cptr;
+    struct Channel *chptr;
+    struct ConfItem *aconf;
+    char *cp;
+  } value;
+};
+
+/*=============================================================================
+ * Proto types
+ */
+
+extern void free_link(Link *lp);
+extern Link *make_link(void);
+extern Link *find_user_link(Link *lp, aClient *ptr);
+extern void initlists(void);
+extern void outofmemory(void);
+extern aClient *make_client(aClient *from, int status);
+extern void free_client(aClient *cptr);
+extern struct User *make_user(aClient *cptr);
+extern struct Server *make_server(aClient *cptr);
+extern void free_user(struct User *user, aClient *cptr);
+extern void remove_client_from_list(aClient *cptr);
+extern void add_client_to_list(aClient *cptr);
+extern Dlink *add_dlink(Dlink **lpp, aClient *cp);
+extern void remove_dlink(Dlink **lpp, Dlink *lp);
+extern struct ConfItem *make_conf(void);
+extern void delist_conf(struct ConfItem *aconf);
+extern void free_conf(struct ConfItem *aconf);
+extern aGline *make_gline(int is_ipmask, char *host, char *reason, char *name,
+    time_t expire);
+extern aGline *find_gline(aClient *cptr, aGline **pgline);
+extern void free_gline(aGline *agline, aGline *pgline);
+extern void send_listinfo(aClient *cptr, char *name);
+
+#endif /* LIST_H */