diff options
Diffstat (limited to 'src/irc/bot/botnet.h')
-rw-r--r-- | src/irc/bot/botnet.h | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/src/irc/bot/botnet.h b/src/irc/bot/botnet.h deleted file mode 100644 index 0372de22..00000000 --- a/src/irc/bot/botnet.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef __BOT_BOTNET_H -#define __BOT_BOTNET_H - -#include "nicklist.h" - -#define DEFAULT_BOTNET_PORT 2255 -#define DEFAULT_BOTNET_PRIORITY 5 - -typedef struct _botnet_rec BOTNET_REC; - -typedef struct { - char *name; - GSList *nicks; /* NICK_RECs */ - unsigned int chanop:1; - - GSList *banlist; - GSList *ebanlist; - GSList *invitelist; - - char *mode; - int limit; - char *key; -} BOT_CHANNEL_REC; - -typedef struct { - char *tag; /* same as server->tag */ - char *ircnet; - char *server; - char *nick; - - GSList *channels; -} BOT_IRCNET_REC; - -typedef struct { - BOTNET_REC *botnet; - void *link; /* NULL, BOT_UPLINK_REC or BOT_DOWNLINK_REC */ - - unsigned int uplink:1; /* this is our uplink */ - unsigned int pass_ok:1; /* downlink's password was ok */ - unsigned int connected:1; /* bot is in this botnet now */ - unsigned int disconnect:1; /* just disconnecting this bot.. */ - unsigned int master:1; /* this bot is the bot network's current master */ - - char *nick; /* bot's unique nick in botnet */ - int priority; - - GIOChannel *handle; - int read_tag; - LINEBUF_REC *buffer; - - int file_handle; /* if bot is sending a file to us */ - - GSList *ircnets; -} BOT_REC; - -typedef struct { - BOTNET_REC *botnet; - - char *host; - int port; - char *password; - - time_t last_connect; -} BOT_UPLINK_REC; - -typedef struct { - BOTNET_REC *botnet; - - GSList *valid_addrs; /* IP/host masks where this bot is allowed to connect */ - char *password; -} BOT_DOWNLINK_REC; - -struct _botnet_rec { - unsigned int connected:1; - unsigned int autoconnect:1; - unsigned int reconnect:1; - - char *name; /* botnet name */ - char *nick; /* our nick in botnet */ - int priority; /* our priority in botnet */ - - char *addr; /* in what address we should listen, NULL = all */ - int port; /* what port we should listen, 0 = default, -1 = don't listen */ - - GIOChannel *listen_handle; - int listen_tag; - - GSList *uplinks; - GSList *downlinks; - - GNode *bots; - BOT_REC *uplink; /* our current uplink */ - BOT_REC *master; /* link to current master */ -}; - -extern GSList *botnets; - -void bot_send_cmd(BOT_REC *bot, const char *data); -void bot_send_cmdv(BOT_REC *bot, const char *format, ...); - -/* broadcast a message to everyone in bot network, except for `except_bot' - if it's not NULL. If botnet is NULL, the message is sent to all botnets. */ -void botnet_broadcast(BOTNET_REC *botnet, BOT_REC *except_bot, - const char *source, const char *data); - -void botnet_send_cmd(BOTNET_REC *botnet, const char *source, - const char *target, const char *data); - -int botnet_send_file(BOTNET_REC *botnet, const char *target, const char *fname); - -BOT_REC *botnet_find_master(BOTNET_REC *botnet, BOT_REC *old_master); -void botnet_set_master(BOTNET_REC *botnet, BOT_REC *bot); - -BOTNET_REC *botnet_find(const char *name); -GNode *bot_find_nick(BOTNET_REC *botnet, const char *nick); -/* Return the bot who we should send the message if we wanted `nick' to get it. */ -GNode *bot_find_path(BOTNET_REC *botnet, const char *nick); - -BOT_DOWNLINK_REC *bot_downlink_find(BOTNET_REC *botnet, IPADDR *ip, const char *host); - -void bot_nick_destroy(BOT_CHANNEL_REC *rec, NICK_REC *nick); -void bot_channel_destroy(BOT_IRCNET_REC *ircnet, BOT_CHANNEL_REC *rec); -void bot_ircnet_destroy(BOT_REC *bot, BOT_IRCNET_REC *rec); - -void bot_disconnect(BOT_REC *bot); -void bot_destroy(BOT_REC *bot); - -void bot_downlink_destroy(BOT_DOWNLINK_REC *rec); -void bot_uplink_destroy(BOT_UPLINK_REC *rec); - -void botnet_connect(BOTNET_REC *botnet); -void botnet_disconnect(BOTNET_REC *botnet); - -#endif |