activated new fakehost protocol
[srvx.git] / src / chanserv.h
index d6470e2455c653a4d32a0eaa151204932c7d3008..22fb7173c86ee88d90c5c77a4c7b19d3ccb62e9e 100644 (file)
@@ -45,6 +45,7 @@ enum levelOption {
     lvlUserInfo,
     lvlInviteMe,
     lvlTopicSnarf,
+    lvlVote,
     NUM_LEVEL_OPTIONS
 };
 
@@ -91,6 +92,10 @@ struct chanData
     char    *registrar;
     char    *topic_mask;
 
+    char          *vote;
+    unsigned int  vote_start;
+    dict_t        vote_options;
+
     unsigned int        flags : 30;
     unsigned int        may_opchan : 1;
     unsigned int        max;
@@ -129,6 +134,9 @@ struct userData
     unsigned int        present : 1;
     unsigned int        flags : USER_FLAGS_SIZE;
 
+    unsigned short      voted;
+    unsigned int        votefor;
+
     /* linked list of userDatas for a chanData */
     struct userData     *prev;
     struct userData     *next;
@@ -164,6 +172,14 @@ struct suspended
     struct suspended    *previous;
 };
 
+struct vote_option
+{
+    char                *name;
+    unsigned int        option_id;
+    char                *option_str;
+    unsigned int        voted;
+};
+
 struct do_not_register
 {
     char   chan_name[CHANNELLEN+1];
@@ -182,5 +198,7 @@ struct channelList *chanserv_support_channels(void);
 unsigned short user_level_from_name(const char *name, unsigned short clamp_level);
 struct do_not_register *chanserv_is_dnr(const char *chan_name, struct handle_info *handle);
 int check_user_level(struct chanNode *channel, struct userNode *user, enum levelOption opt, int allow_override, int exempt_owner);
+struct mod_chanmode *find_matching_bans(struct banList *bans, struct userNode *actee, const char *mask);
+void handle_new_channel_created(char *chan, struct userNode *user);
 
 #endif