ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/include/channel.h
(Generate patch)

Comparing ircd-hybrid/trunk/include/channel.h (file contents):
Revision 3937 by michael, Tue Jun 10 19:01:12 2014 UTC vs.
Revision 6323 by michael, Sat Aug 8 17:47:58 2015 UTC

# Line 1 | Line 1
1   /*
2   *  ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd)
3   *
4 < *  Copyright (c) 1997-2014 ircd-hybrid development team
4 > *  Copyright (c) 1997-2015 ircd-hybrid development team
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 15 | Line 15
15   *
16   *  You should have received a copy of the GNU General Public License
17   *  along with this program; if not, write to the Free Software
18 < *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
18 > *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
19   *  USA
20   */
21  
# Line 36 | Line 36
36   #define AddMemberFlag(x, y) ((x)->flags |=  (y))
37   #define DelMemberFlag(x, y) ((x)->flags &= ~(y))
38  
39 < #define FLOOD_NOTICED           1
40 < #define JOIN_FLOOD_NOTICED      2
39 > enum
40 > {
41 >  FLOOD_NOTICED      = 0x00000001U,
42 >  JOIN_FLOOD_NOTICED = 0x00000002U
43 > };
44  
45   #define SetFloodNoticed(x)   ((x)->flags |= FLOOD_NOTICED)
46   #define IsSetFloodNoticed(x) ((x)->flags & FLOOD_NOTICED)
# Line 52 | Line 55 | struct Client;
55   /*! \brief Mode structure for channels */
56   struct Mode
57   {
58 <  unsigned int mode;   /*!< simple modes */
59 <  unsigned int limit;  /*!< +l userlimit */
60 <  char key[KEYLEN + 1];    /*!< +k key */
58 >  unsigned int mode;   /**< simple modes */
59 >  unsigned int limit;  /**< +l userlimit */
60 >  char key[KEYLEN + 1];    /**< +k key */
61   };
62  
63   /*! \brief Channel structure */
# Line 68 | Line 71 | struct Channel
71    char topic[TOPICLEN + 1];
72    char topic_info[USERHOST_REPLYLEN];
73  
74 <  time_t channelts;
74 >  time_t creationtime;
75    time_t topic_time;
76 <  time_t last_knock; /*!< don't allow knock to flood */
76 >  time_t last_knock;  /**< Don't allow knock to flood */
77    time_t last_join_time;
75  time_t last_invite; /*!< don't allow INVITE to flood */
78    time_t first_received_message_time; /*!< channel flood control */
79    unsigned int flags;
80    int received_number_of_privmsgs;
81  
82 +  dlink_list locmembers;  /*!< local members are here too */
83    dlink_list members;
84    dlink_list invites;
85    dlink_list banlist;
# Line 85 | Line 88 | struct Channel
88  
89    float number_joined;
90  
91 <  char chname[CHANNELLEN + 1];
91 >  char name[CHANNELLEN + 1];
92   };
93  
94   /*! \brief Membership structure */
95   struct Membership
96   {
97 <  dlink_node channode;     /*!< link to chptr->members    */
98 <  dlink_node usernode;     /*!< link to source_p->channel */
99 <  struct Channel *chptr;   /*!< Channel pointer */
100 <  struct Client *client_p; /*!< Client pointer */
101 <  unsigned int flags;      /*!< user/channel flags, e.g. CHFL_CHANOP */
97 >  dlink_node locchannode;  /**< link to chptr->locmembers */
98 >  dlink_node channode;     /**< link to chptr->members    */
99 >  dlink_node usernode;     /**< link to source_p->channel */
100 >  struct Channel *chptr;   /**< Channel pointer */
101 >  struct Client *client_p; /**< Client pointer */
102 >  unsigned int flags;      /**< user/channel flags, e.g. CHFL_CHANOP */
103   };
104  
105 < /*! \brief Ban structure.  Used for b/e/I n!u\@h masks */
105 > /*! \brief Ban structure. Used for b/e/I n!u\@h masks */
106   struct Ban
107   {
108    dlink_node node;
109 <  char *name;
110 <  char *user;
111 <  char *host;
112 <  char *who;
109 >  char name[NICKLEN + 1];
110 >  char user[USERLEN + 1];
111 >  char host[HOSTLEN + 1];
112 >  char who[NICKLEN + USERLEN + HOSTLEN + 3];
113    size_t len;
114    time_t when;
115    struct irc_ssaddr addr;
# Line 113 | Line 117 | struct Ban
117    int type;
118   };
119  
120 < extern dlink_list global_channel_list;
120 > extern dlink_list channel_list;
121 > extern struct event splitmode_event;
122  
123   extern int check_channel_name(const char *, const int);
124   extern int can_send(struct Channel *, struct Client *, struct Membership *, const char *);
125   extern int is_banned(const struct Channel *, const struct Client *);
126 < extern int can_join(struct Client *, struct Channel *, const char *);
126 > extern int can_join(struct Client *, const struct Channel *, const char *);
127   extern int has_member_flags(const struct Membership *, const unsigned int);
128  
129   extern void channel_do_join(struct Client *, char *, char *);
130   extern void channel_do_join_0(struct Client *);
131 < extern void channel_do_part(struct Client *, char *, char *);
131 > extern void channel_do_part(struct Client *, char *, const char *);
132   extern void remove_ban(struct Ban *, dlink_list *);
133   extern void channel_init(void);
134 < extern void add_user_to_channel(struct Channel *, struct Client *,
130 <                                unsigned int, int);
134 > extern void add_user_to_channel(struct Channel *, struct Client *, unsigned int, int);
135   extern void remove_user_from_channel(struct Membership *);
136   extern void channel_member_names(struct Client *, struct Channel *, int);
137   extern void add_invite(struct Channel *, struct Client *);
138   extern void del_invite(struct Channel *, struct Client *);
139 + extern void clear_invites_channel(struct Channel *);
140 + extern void clear_invites_client(struct Client *);
141   extern void send_channel_modes(struct Client *, struct Channel *);
142   extern void channel_modes(struct Channel *, struct Client *, char *, char *);
143   extern void check_spambot_warning(struct Client *, const char *);
144   extern void check_splitmode(void *);
145   extern void free_channel_list(dlink_list *);
146   extern void destroy_channel(struct Channel *);
147 < extern void set_channel_topic(struct Channel *, const char *, const char *, time_t, int);
147 > extern void channel_set_topic(struct Channel *, const char *, const char *, time_t, int);
148  
149   extern const char *get_member_status(const struct Membership *, const int);
150  
151   extern struct Channel *make_channel(const char *);
152   extern struct Membership *find_channel_link(struct Client *, struct Channel *);
153 < #endif  /* INCLUDED_channel_h */
153 > #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)