--- /dev/null
+#include "../irc/irc.h"
+
+#include "../trusts/trusts.h"
+#include "glines.h"
+
+void glinebynick(nick *np, int duration, char *reason) {
+ irc_send("%s GL * +%s@%s %d %jd :%s", mynumeric->content, istrusted(np)?np->ident:"*", IPtostr(np->p_ipaddr), duration, (intmax_t)getnettime(), reason);
+}
+
+void glinebyhost(char *ident, char *hostname, int duration, char *reason) {
+ /* TODO: resolve trustgroup and trustgline */
+
+ irc_send("%s GL * +%s@%s %d %jd :%s", mynumeric->content, ident, hostname, duration, (intmax_t)getnettime(), reason);
+}
+
+void unglinebyhost(char *ident, char *hostname, int duration, char *reason) {
+ /* TODO: trustungline */
+
+ irc_send("%s GL * -%s@%s %d %jd :%s", mynumeric->content, ident, hostname, duration, (intmax_t)getnettime(), reason);
+}
--- /dev/null
+#ifndef __GLINES_H
+#define __GLINES_H
+
+void glinebynick(nick *, int, char *);
+void glinebyhost(char *, char *, int, char *);
+void unglinebyhost(char *, char *, int, char *);
+
+#endif
.PHONY: all dirs $(TRUSTSDIRS) clean distclean
-all: trusts.so trusts_commands.so trusts_policy.so trusts_migration.so trusts_db.so trusts_management.so trusts_master.so trusts_slave.so dirs
+all: trusts.so trusts_commands.so trusts_policy.so trusts_migration.so trusts_db.so trusts_management.so trusts_master.so trusts_slave.so trusts_api.so dirs
trusts.so: trusts.o data.o formats.o events.o
trusts_slave.so: trusts_slave.o db-slave.o
+trusts_api.so: trusts_api.o
+
dirs: $(TRUSTSDIRS)
ln -sf */*.so .