summaryrefslogtreecommitdiff
path: root/src/irc/bot/bot-users.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/irc/bot/bot-users.h')
-rw-r--r--src/irc/bot/bot-users.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/irc/bot/bot-users.h b/src/irc/bot/bot-users.h
new file mode 100644
index 00000000..c463f09e
--- /dev/null
+++ b/src/irc/bot/bot-users.h
@@ -0,0 +1,47 @@
+#ifndef __BOT_USERS_H
+#define __BOT_USERS_H
+
+#define USER_OP 0x0001
+#define USER_AUTO_OP 0x0002
+#define USER_AUTO_VOICE 0x0004
+#define USER_MASTER 0x0008
+
+#define USER_FLAG_COUNT 4
+
+/* Channel specific flags */
+typedef struct {
+ char *channel;
+ int flags;
+ NICK_REC *nickrec; /* Nick record in channel,
+ FIXME: User can be in channel with multiple nicks too! */
+} USER_CHAN_REC;
+
+typedef struct {
+ char *mask;
+ int not_flags; /* do not let this mask use these flags.. */
+} USER_MASK_REC;
+
+/* User specific flags */
+typedef struct {
+ char *nick;
+ int flags;
+ char *password;
+
+ GSList *masks;
+ GHashTable *channels;
+
+ int not_flags; /* active not_flags based on current host mask,
+ botuser_find() updates this */
+} USER_REC;
+
+int botuser_flags2value(const char *flags);
+char *botuser_value2flags(int value);
+
+USER_REC *botuser_find(const char *nick, const char *host);
+USER_REC *botuser_find_rec(CHANNEL_REC *channel, NICK_REC *nick);
+USER_MASK_REC *botuser_add_mask(USER_REC *user, const char *mask);
+
+void botuser_set_password(USER_REC *user, const char *password);
+int botuser_verify_password(USER_REC *user, const char *password);
+
+#endif