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/include/channel.h (file contents), Revision 33 by knight, Sun Oct 2 20:50:00 2005 UTC vs.
ircd-hybrid/trunk/include/channel.h (file contents), Revision 7668 by michael, Wed Jul 20 17:09:49 2016 UTC

# Line 1 | Line 1
1   /*
2 < *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
2 > *  ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd)
3   *
4 < *  Copyright (C) 2002 by the past and present ircd coders, and others.
4 > *  Copyright (c) 1997-2016 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 28 | Line 28
28   #define INCLUDED_channel_h
29  
30   #include "ircd_defs.h"        /* KEYLEN, CHANNELLEN */
31 < #include "tools.h"
31 >
32 > /* channel visible */
33 > #define ShowChannel(v,c)        (PubChannel(c) || IsMember((v),(c)))
34 >
35 > #define IsMember(who, chan) ((find_channel_link(who, chan)) ? 1 : 0)
36 > #define AddMemberFlag(x, y) ((x)->flags |=  (y))
37 > #define DelMemberFlag(x, y) ((x)->flags &= ~(y))
38 >
39 > enum
40 > {
41 >  MSG_FLOOD_NOTICED  = 0x00000001U,
42 >  JOIN_FLOOD_NOTICED = 0x00000002U
43 > };
44 >
45 > #define SetFloodNoticed(x)   ((x)->flags |= MSG_FLOOD_NOTICED)
46 > #define IsSetFloodNoticed(x) ((x)->flags & MSG_FLOOD_NOTICED)
47 > #define ClearFloodNoticed(x) ((x)->flags &= ~MSG_FLOOD_NOTICED)
48 >
49 > #define SetJoinFloodNoticed(x)   ((x)->flags |= JOIN_FLOOD_NOTICED)
50 > #define IsSetJoinFloodNoticed(x) ((x)->flags & JOIN_FLOOD_NOTICED)
51 > #define ClearJoinFloodNoticed(x) ((x)->flags &= ~JOIN_FLOOD_NOTICED)
52  
53   struct Client;
54  
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];    /*!< +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 46 | Line 66 | struct Channel
66    dlink_node node;
67  
68    struct Channel *hnextch;
49
69    struct Mode mode;
51  char *topic;
52  char *topic_info;
53  time_t topic_time;
54  unsigned long lazyLinkChannelExists;
55  time_t last_knock; /*!< don't allow knock to flood */
70  
71 <  dlink_list members;
71 >  char topic[TOPICLEN + 1];
72 >  char topic_info[NICKLEN + USERLEN + HOSTLEN + 3];
73 >
74 >  uintmax_t creationtime;
75 >  uintmax_t topic_time;
76 >  uintmax_t last_knock;  /**< Don't allow knock to flood */
77 >  uintmax_t last_invite;
78 >  uintmax_t last_join_time;
79 >  uintmax_t first_received_message_time; /*!< channel flood control */
80 >  unsigned int flags;
81 >  int received_number_of_privmsgs;
82 >
83    dlink_list locmembers;  /*!< local members are here too */
84 +  dlink_list members;
85    dlink_list invites;
86    dlink_list banlist;
87    dlink_list exceptlist;
88    dlink_list invexlist;
89  
64  time_t first_received_message_time; /*!< channel flood control */
65  int received_number_of_privmsgs;
66  int flags;
90    float number_joined;
68  time_t last_join_time;
91  
92 <  time_t channelts;
93 <  char chname[CHANNELLEN + 1];
92 >  char name[CHANNELLEN + 1];
93 >  size_t name_len;
94   };
95  
96   /*! \brief Membership structure */
97   struct Membership
98   {
99 <  dlink_node channode;     /*!< link to chptr->members    */
100 <  dlink_node locchannode;  /*!< link to chptr->locmembers */
101 <  dlink_node usernode;     /*!< link to source_p->channel */
102 <  struct Channel *chptr;   /*!< Channel pointer */
103 <  struct Client *client_p; /*!< Client pointer */
104 <  unsigned int flags;      /*!< user/channel flags, e.g. CHFL_CHANOP */
99 >  dlink_node locchannode;  /**< link to chptr->locmembers */
100 >  dlink_node channode;     /**< link to chptr->members    */
101 >  dlink_node usernode;     /**< link to source_p->channel */
102 >  struct Channel *chptr;   /**< Channel pointer */
103 >  struct Client *client_p; /**< Client pointer */
104 >  unsigned int flags;      /**< user/channel flags, e.g. CHFL_CHANOP */
105   };
106  
107 < /*! \brief Ban structure.  Used for b/e/I n!u\@h masks */
107 > /*! \brief Ban structure. Used for b/e/I n!u\@h masks */
108   struct Ban
109   {
110    dlink_node node;
111 +  char name[NICKLEN + 1];
112 +  char user[USERLEN + 1];
113 +  char host[HOSTLEN + 1];
114 +  char who[NICKLEN + USERLEN + HOSTLEN + 3];
115    size_t len;
116 <  char *name;
117 <  char *username;
118 <  char *host;
119 <  char *who;
120 <  time_t when;
116 >  uintmax_t when;
117 >  struct irc_ssaddr addr;
118 >  int bits;
119 >  int type;
120 > };
121 >
122 > /*! \brief Invite structure */
123 > struct Invite
124 > {
125 >  dlink_node user_node;  /**< link to client_p->connection->invited */
126 >  dlink_node chan_node;  /**< link to chptr->invites */
127 >  struct Channel *chptr;  /**< Channel pointer */
128 >  struct Client *client_p;  /**< Client pointer */
129 >  uintmax_t when;  /**< Time the invite has been created */
130   };
131  
132 < extern dlink_list global_channel_list;
98 <
99 < extern int check_channel_name(const char *);
100 < extern int can_send(struct Channel *, struct Client *);
101 < extern int can_send_part(struct Membership *, struct Channel *, struct Client *);
102 < extern int is_banned(struct Channel *, struct Client *);
103 < extern int can_join(struct Client *, struct Channel *, const char *);
104 < extern int has_member_flags(struct Membership *, unsigned int);
132 > extern dlink_list channel_list;
133  
134 + extern int channel_check_name(const char *, const int);
135 + extern int can_send(struct Channel *, struct Client *, struct Membership *, const char *, int);
136 + extern int is_banned(const struct Channel *, const struct Client *);
137 + extern int has_member_flags(const struct Membership *, const unsigned int);
138 +
139 + extern void channel_do_join(struct Client *, char *, char *);
140 + extern void channel_do_join_0(struct Client *);
141 + extern void channel_do_part(struct Client *, char *, const char *);
142   extern void remove_ban(struct Ban *, dlink_list *);
143 < extern void init_channels(void);
144 < extern void add_user_to_channel(struct Channel *, struct Client *,
109 <                                unsigned int, int);
143 > extern void channel_init(void);
144 > extern void add_user_to_channel(struct Channel *, struct Client *, unsigned int, int);
145   extern void remove_user_from_channel(struct Membership *);
146   extern void channel_member_names(struct Client *, struct Channel *, int);
147   extern void add_invite(struct Channel *, struct Client *);
148 < extern void del_invite(struct Channel *, struct Client *);
149 < extern void send_channel_modes(struct Client *, struct Channel *);
148 > extern void del_invite(struct Invite *);
149 > extern void clear_invites_channel(struct Channel *);
150 > extern void clear_invites_client(struct Client *);
151 > extern void channel_send_modes(struct Client *, struct Channel *);
152   extern void channel_modes(struct Channel *, struct Client *, char *, char *);
153   extern void check_spambot_warning(struct Client *, const char *);
154 < extern void check_splitmode(void *);
155 < extern void free_channel_list(dlink_list *);
119 < extern void free_topic(struct Channel *);
120 < extern void destroy_channel(struct Channel *);
121 < extern void set_channel_topic(struct Channel *, const char *, const char *, time_t);
154 > extern void channel_free(struct Channel *);
155 > extern void channel_set_topic(struct Channel *, const char *, const char *, uintmax_t, int);
156  
157 < extern const char *get_member_status(const struct Membership *, int);
157 > extern const char *get_member_status(const struct Membership *, const int);
158  
159 < extern struct Channel *get_or_create_channel(struct Client *, const char *, int *);
159 > extern struct Channel *channel_make(const char *);
160   extern struct Membership *find_channel_link(struct Client *, struct Channel *);
161 <
128 < /* channel visible */
129 < #define ShowChannel(v,c)        (PubChannel(c) || IsMember((v),(c)))
130 <
131 < #define IsMember(who, chan) ((find_channel_link(who, chan)) ? 1 : 0)
132 < #define AddMemberFlag(x, y) ((x)->flags |=  (y))
133 < #define DelMemberFlag(x, y) ((x)->flags &= ~(y))
134 <
135 < #define FLOOD_NOTICED           1
136 < #define JOIN_FLOOD_NOTICED      2
137 <
138 < #define SetFloodNoticed(x)   ((x)->flags |= FLOOD_NOTICED)
139 < #define IsSetFloodNoticed(x) ((x)->flags & FLOOD_NOTICED)
140 < #define ClearFloodNoticed(x) ((x)->flags &= ~FLOOD_NOTICED)
141 <
142 < #define SetJoinFloodNoticed(x)   ((x)->flags |= JOIN_FLOOD_NOTICED)
143 < #define IsSetJoinFloodNoticed(x) ((x)->flags & JOIN_FLOOD_NOTICED)
144 < #define ClearJoinFloodNoticed(x) ((x)->flags &= ~JOIN_FLOOD_NOTICED)
145 <
146 < #endif  /* INCLUDED_channel_h */
161 > #endif

Comparing:
ircd-hybrid/include/channel.h (property svn:keywords), Revision 33 by knight, Sun Oct 2 20:50:00 2005 UTC vs.
ircd-hybrid/trunk/include/channel.h (property svn:keywords), Revision 7668 by michael, Wed Jul 20 17:09:49 2016 UTC

# Line 1 | Line 1
1 < Id Revision
1 > Id

Diff Legend

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