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 2865 by michael, Sun Jan 19 14:35:22 2014 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-2014 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 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 > #define FLOOD_NOTICED           1
40 > #define JOIN_FLOOD_NOTICED      2
41 >
42 > #define SetFloodNoticed(x)   ((x)->flags |= FLOOD_NOTICED)
43 > #define IsSetFloodNoticed(x) ((x)->flags & FLOOD_NOTICED)
44 > #define ClearFloodNoticed(x) ((x)->flags &= ~FLOOD_NOTICED)
45 >
46 > #define SetJoinFloodNoticed(x)   ((x)->flags |= JOIN_FLOOD_NOTICED)
47 > #define IsSetJoinFloodNoticed(x) ((x)->flags & JOIN_FLOOD_NOTICED)
48 > #define ClearJoinFloodNoticed(x) ((x)->flags &= ~JOIN_FLOOD_NOTICED)
49  
50   struct Client;
51  
# Line 37 | Line 54 | struct Mode
54   {
55    unsigned int mode;   /*!< simple modes */
56    unsigned int limit;  /*!< +l userlimit */
57 <  char key[KEYLEN];    /*!< +k key */
57 >  char key[KEYLEN + 1];    /*!< +k key */
58   };
59  
60   /*! \brief Channel structure */
# Line 46 | Line 63 | struct Channel
63    dlink_node node;
64  
65    struct Channel *hnextch;
49
66    struct Mode mode;
67 <  char *topic;
68 <  char *topic_info;
67 >
68 >  char topic[TOPICLEN + 1];
69 >  char topic_info[USERHOST_REPLYLEN];
70 >
71 >  time_t channelts;
72    time_t topic_time;
54  unsigned long lazyLinkChannelExists;
73    time_t last_knock; /*!< don't allow knock to flood */
74 +  time_t last_join_time;
75 +  time_t first_received_message_time; /*!< channel flood control */
76 +  unsigned int flags;
77 +  int received_number_of_privmsgs;
78  
79    dlink_list members;
58  dlink_list locmembers;  /*!< local members are here too */
80    dlink_list invites;
81    dlink_list banlist;
82    dlink_list exceptlist;
83    dlink_list invexlist;
84  
64  time_t first_received_message_time; /*!< channel flood control */
65  int received_number_of_privmsgs;
66  int flags;
85    float number_joined;
68  time_t last_join_time;
86  
70  time_t channelts;
87    char chname[CHANNELLEN + 1];
88   };
89  
# Line 75 | Line 91 | struct Channel
91   struct Membership
92   {
93    dlink_node channode;     /*!< link to chptr->members    */
78  dlink_node locchannode;  /*!< link to chptr->locmembers */
94    dlink_node usernode;     /*!< link to source_p->channel */
95    struct Channel *chptr;   /*!< Channel pointer */
96    struct Client *client_p; /*!< Client pointer */
# Line 86 | Line 101 | struct Membership
101   struct Ban
102   {
103    dlink_node node;
89  size_t len;
104    char *name;
105 <  char *username;
105 >  char *user;
106    char *host;
107    char *who;
108 +  size_t len;
109    time_t when;
110 +  struct irc_ssaddr addr;
111 +  int bits;
112 +  int type;
113   };
114  
115   extern dlink_list global_channel_list;
116  
117 < extern int check_channel_name(const char *);
118 < extern int can_send(struct Channel *, struct Client *);
119 < extern int can_send_part(struct Membership *, struct Channel *, struct Client *);
102 < extern int is_banned(struct Channel *, struct Client *);
117 > extern int check_channel_name(const char *, const int);
118 > extern int can_send(struct Channel *, struct Client *, struct Membership *, const char *);
119 > extern int is_banned(const struct Channel *, const struct Client *);
120   extern int can_join(struct Client *, struct Channel *, const char *);
121 < extern int has_member_flags(struct Membership *, unsigned int);
121 > extern int has_member_flags(const struct Membership *, const unsigned int);
122  
123   extern void remove_ban(struct Ban *, dlink_list *);
124 < extern void init_channels(void);
124 > extern void channel_init(void);
125   extern void add_user_to_channel(struct Channel *, struct Client *,
126                                  unsigned int, int);
127   extern void remove_user_from_channel(struct Membership *);
# Line 116 | Line 133 | extern void channel_modes(struct Channel
133   extern void check_spambot_warning(struct Client *, const char *);
134   extern void check_splitmode(void *);
135   extern void free_channel_list(dlink_list *);
119 extern void free_topic(struct Channel *);
136   extern void destroy_channel(struct Channel *);
137 < extern void set_channel_topic(struct Channel *, const char *, const char *, time_t);
137 > extern void set_channel_topic(struct Channel *, const char *, const char *, time_t, int);
138  
139 < extern const char *get_member_status(const struct Membership *, int);
139 > extern const char *get_member_status(const struct Membership *, const int);
140  
141 < extern struct Channel *get_or_create_channel(struct Client *, const char *, int *);
141 > extern struct Channel *make_channel(const char *);
142   extern struct Membership *find_channel_link(struct Client *, struct Channel *);
127
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
143   #endif  /* INCLUDED_channel_h */

Diff Legend

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