Riferimenti per il file channel.h

Responsible for managing channels, members, bans and topics. Continua...

#include "ircd_defs.h"
#include "tools.h"

Vai al codice sorgente di questo file.

Strutture dati

struct  Mode
 Mode structure for channels. Continua...
struct  Channel
 Channel structure. Continua...
struct  Membership
 Membership structure. Continua...
struct  Ban
 Ban structure. Used for b/e/I n!u@h masks. Continua...

Definizioni

#define ShowChannel(v, c)   (PubChannel(c) || IsMember((v),(c)))
#define IsMember(who, chan)   ((find_channel_link(who, chan)) ? 1 : 0)
#define AddMemberFlag(x, y)   ((x)->flags |= (y))
#define DelMemberFlag(x, y)   ((x)->flags &= ~(y))
#define FLOOD_NOTICED   1
#define JOIN_FLOOD_NOTICED   2
#define SetFloodNoticed(x)   ((x)->flags |= FLOOD_NOTICED)
#define IsSetFloodNoticed(x)   ((x)->flags & FLOOD_NOTICED)
#define ClearFloodNoticed(x)   ((x)->flags &= ~FLOOD_NOTICED)
#define SetJoinFloodNoticed(x)   ((x)->flags |= JOIN_FLOOD_NOTICED)
#define IsSetJoinFloodNoticed(x)   ((x)->flags & JOIN_FLOOD_NOTICED)
#define ClearJoinFloodNoticed(x)   ((x)->flags &= ~JOIN_FLOOD_NOTICED)

Funzioni

int check_channel_name (const char *, int)
 check channel name for invalid characters
int can_send (struct Channel *, struct Client *, struct Membership *)
int is_banned (struct Channel *, struct Client *)
int can_join (struct Client *, struct Channel *, const char *)
int has_member_flags (struct Membership *, unsigned int)
void remove_ban (struct Ban *, dlink_list *)
void init_channels (void)
 Initializes the channel blockheap, adds known channel CAPAB.
void add_user_to_channel (struct Channel *, struct Client *, unsigned int, int)
 adds a user to a channel by adding another link to the channels member chain.
void remove_user_from_channel (struct Membership *)
 deletes an user from a channel by removing a link in the channels member chain.
void channel_member_names (struct Client *, struct Channel *, int)
 lists all names on given channel
void add_invite (struct Channel *, struct Client *)
 adds client to invite list
void del_invite (struct Channel *, struct Client *)
 Delete Invite block from channel invite list and client invite list.
void send_channel_modes (struct Client *, struct Channel *)
 send "client_p" a full list of the modes for channel chptr
void channel_modes (struct Channel *, struct Client *, char *, char *)
void check_spambot_warning (struct Client *, const char *)
 Updates the client's oper_warn_count_down, warns the IRC operators if necessary, and updates join_leave_countdown as needed.
void check_splitmode (void *)
 compares usercount and servercount against their split values and adjusts splitmode accordingly
void free_channel_list (dlink_list *)
void free_topic (struct Channel *)
void destroy_channel (struct Channel *)
 walk through this channel, and destroy it.
void set_channel_topic (struct Channel *, const char *, const char *, time_t)
 Sets the channel topic for chptr.
const char * get_member_status (const struct Membership *, int)
struct Channelmake_channel (const char *)
 Get Channel block for chname (and allocate a new channel block, if it didn't exist before).
struct Membershipfind_channel_link (struct Client *, struct Channel *)

Variabili

dlink_list global_channel_list


Descrizione dettagliata

Responsible for managing channels, members, bans and topics.

Versione:
Id
channel.h 632 2006-06-01 10:53:00Z michael

Definizione nel file channel.h.


Documentazione delle definizioni

#define AddMemberFlag ( x,
 )     ((x)->flags |= (y))

Definizione alla linea 132 del file channel.h.

Referenziato da chm_op(), chm_voice(), e mo_opme().

#define ClearFloodNoticed (  )     ((x)->flags &= ~FLOOD_NOTICED)

Definizione alla linea 140 del file channel.h.

Referenziato da flood_attack_channel().

#define ClearJoinFloodNoticed (  )     ((x)->flags &= ~JOIN_FLOOD_NOTICED)

Definizione alla linea 144 del file channel.h.

Referenziato da add_user_to_channel().

#define DelMemberFlag ( x,
 )     ((x)->flags &= ~(y))

Definizione alla linea 133 del file channel.h.

Referenziato da chm_op(), e chm_voice().

#define FLOOD_NOTICED   1

Definizione alla linea 135 del file channel.h.

#define IsMember ( who,
chan   )     ((find_channel_link(who, chan)) ? 1 : 0)

#define IsSetFloodNoticed (  )     ((x)->flags & FLOOD_NOTICED)

Definizione alla linea 139 del file channel.h.

Referenziato da flood_attack_channel().

#define IsSetJoinFloodNoticed (  )     ((x)->flags & JOIN_FLOOD_NOTICED)

Definizione alla linea 143 del file channel.h.

Referenziato da add_user_to_channel().

#define JOIN_FLOOD_NOTICED   2

Definizione alla linea 136 del file channel.h.

#define SetFloodNoticed (  )     ((x)->flags |= FLOOD_NOTICED)

Definizione alla linea 138 del file channel.h.

Referenziato da flood_attack_channel().

#define SetJoinFloodNoticed (  )     ((x)->flags |= JOIN_FLOOD_NOTICED)

Definizione alla linea 142 del file channel.h.

Referenziato da add_user_to_channel().

#define ShowChannel ( v,
 )     (PubChannel(c) || IsMember((v),(c)))

Definizione alla linea 129 del file channel.h.

Referenziato da operspy_whois(), e whois_person().


Documentazione delle funzioni

void add_invite ( struct Channel chptr,
struct Client who 
)

adds client to invite list

Parametri:
chptr pointer to channel block
who pointer to client to add invite to

Definizione alla linea 519 del file channel.c.

Riferimenti ConfigChannel, _dlink_node::data, del_invite(), dlink_list_length, dlinkAdd(), LocalUser::invited, Channel::invites, Client::localClient, make_dlink_node(), config_channel_entry::max_chans_per_user, e _dlink_list::tail.

Referenziato da m_invite().

void add_user_to_channel ( struct Channel chptr,
struct Client who,
unsigned int  flags,
int  flood_ctrl 
)

adds a user to a channel by adding another link to the channels member chain.

Parametri:
chptr pointer to channel to add client to
who pointer to client (who) to add
flags flags for chanops etc
flood_ctrl whether to count this join in flood calculations

Definizione alla linea 85 del file channel.c.

Riferimenti BlockHeapAlloc(), Client::channel, Membership::channode, Channel::chname, Membership::chptr, ClearJoinFloodNoticed, Membership::client_p, CurrentTime, dlinkAdd(), Membership::flags, get_client_name(), GlobalSetOptions, HIDE_IP, IsSetJoinFloodNoticed, SetOptions::joinfloodcount, SetOptions::joinfloodtime, L_ALL, Channel::last_join_time, Channel::members, Client::name, Channel::number_joined, sendto_realops_flags(), Client::servptr, SetJoinFloodNoticed, UMODE_BOTS, e Membership::usernode.

Referenziato da kick_list(), m_join(), mo_forcejoin(), mo_ojoin(), ms_join(), ms_lljoin(), ms_sjoin(), e operspy_names().

int can_join ( struct Client source_p,
struct Channel chptr,
const char *  key 
)

Parametri:
source_p pointer to client attempting to join
chptr pointer to channel
key key sent by client attempting to join if present
Restituisce:
ERR_BANNEDFROMCHAN, ERR_INVITEONLYCHAN, ERR_CHANNELISFULL or 0 if allowed to join.

Definizione alla linea 665 del file channel.c.

Riferimenti ConfigChannel, dlink_list_length, dlinkFind(), ERR_BADCHANNELKEY, ERR_BANNEDFROMCHAN, ERR_CHANNELISFULL, ERR_INVITEONLYCHAN, find_bmask(), Channel::invexlist, LocalUser::invited, irccmp(), is_banned(), Mode::key, Mode::limit, Client::localClient, Channel::members, Mode::mode, Channel::mode, MODE_INVITEONLY, e config_channel_entry::use_invex.

Referenziato da m_join(), e ms_lljoin().

int can_send ( struct Channel chptr,
struct Client source_p,
struct Membership ms 
)

Parametri:
chptr pointer to Channel struct
source_p pointer to Client struct
ms pointer to Membership struct (can be NULL)
Restituisce:
CAN_SEND_OPV if op or voiced on channel
CAN_SEND_NONOP if can send to channel but is not an op
CAN_SEND_NO if they cannot send to channel

Definizione alla linea 717 del file channel.c.

Riferimenti CAN_SEND_NO, CAN_SEND_NONOP, CAN_SEND_OPV, CHFL_BAN_CHECKED, CHFL_BAN_SILENCED, CHFL_CHANOP, CHFL_HALFOP, CHFL_VOICE, Channel::chname, ConfigChannel, ConfigFileEntry, find_channel_link(), Membership::flags, hash_find_resv(), is_banned(), IsExemptResv, IsOper, IsServer, Mode::mode, Channel::mode, MODE_MODERATED, MODE_NOPRIVMSGS, MyClient, config_file_entry::oper_pass_resv, config_channel_entry::quiet_on_ban, e config_channel_entry::restrict_channels.

Referenziato da msg_channel(), e part_one_client().

void channel_member_names ( struct Client source_p,
struct Channel chptr,
int  show_eon 
)

lists all names on given channel

Parametri:
source_p pointer to client struct requesting names
chptr pointer to channel block
show_eon show ENDOFNAMES numeric or not (don't want it with /names with no params)

Definizione alla linea 446 del file channel.c.

Riferimenti LocalUser::cap_active, CAP_MULTI_PREFIX, channel_pub_or_secret(), CHFL_CHANOP, CHFL_HALFOP, CHFL_VOICE, Channel::chname, Membership::client_p, _dlink_node::data, DLINK_FOREACH, Membership::flags, form_str(), get_member_status(), _dlink_list::head, IRCD_BUFSIZE, ircsprintf(), IsInvisible, IsMember, Client::localClient, me, Channel::members, Client::name, PubChannel, RPL_ENDOFNAMES, RPL_NAMREPLY, e sendto_one().

Referenziato da kick_list(), m_join(), m_names(), mo_forcejoin(), mo_ojoin(), ms_lljoin(), names_all_visible_channels(), e operspy_names().

void channel_modes ( struct Channel ,
struct Client ,
char *  ,
char *   
)

int check_channel_name ( const char *  name,
int  local 
)

check channel name for invalid characters

Parametri:
name pointer to channel name string
local indicates whether it's a local or remote creation
Restituisce:
0 if invalid, 1 otherwise

Definizione alla linea 315 del file channel.c.

Riferimenti CHANNELLEN, ConfigChannel, config_channel_entry::disable_fake_channels, IsChanChar, IsChanPrefix, IsVisibleChanChar, e LOCAL_CHANNELLEN.

Referenziato da m_join(), m_mode(), mo_forcejoin(), ms_cburst(), ms_join(), ms_lljoin(), e ms_sjoin().

void check_spambot_warning ( struct Client source_p,
const char *  name 
)

Updates the client's oper_warn_count_down, warns the IRC operators if necessary, and updates join_leave_countdown as needed.

Parametri:
source_p pointer to struct Client to check
name channel name or NULL if this is a part.

Definizione alla linea 766 del file channel.c.

Riferimenti CurrentTime, GlobalSetOptions, Client::host, LocalUser::join_leave_count, JOIN_LEAVE_COUNT_EXPIRE_TIME, L_ALL, LocalUser::last_join_time, LocalUser::last_leave_time, Client::localClient, Client::name, OPER_SPAM_COUNTDOWN, LocalUser::oper_warn_count_down, sendto_realops_flags(), SetOptions::spam_num, SetOptions::spam_time, UMODE_BOTS, e Client::username.

Referenziato da do_join_0(), m_join(), e part_one_client().

void check_splitmode ( void *  unused  ) 

void del_invite ( struct Channel chptr,
struct Client who 
)

Delete Invite block from channel invite list and client invite list.

Parametri:
chptr pointer to Channel struct
who pointer to client to remove invites from

Definizione alla linea 543 del file channel.c.

Riferimenti dlinkFindDelete(), free_dlink_node(), LocalUser::invited, Channel::invites, e Client::localClient.

Referenziato da add_invite(), destroy_channel(), exit_one_client(), e m_join().

void destroy_channel ( struct Channel chptr  ) 

struct Membership* find_channel_link ( struct Client ,
struct Channel  
) [read]

void free_channel_list ( dlink_list  ) 

void free_topic ( struct Channel  ) 

Definizione alla linea 879 del file channel.c.

Riferimenti BlockHeapFree(), Channel::topic, e Channel::topic_info.

Referenziato da destroy_channel(), mo_clearchan(), e set_channel_topic().

const char* get_member_status ( const struct Membership ,
int   
)

int has_member_flags ( struct Membership ,
unsigned  int 
)

void init_channels ( void   ) 

Initializes the channel blockheap, adds known channel CAPAB.

Definizione alla linea 65 del file channel.c.

Riferimenti add_capability(), BAN_HEAP_SIZE, BlockHeapCreate(), CAP_CHW, CAP_EX, CAP_IE, CHANNEL_HEAP_SIZE, TOPIC_HEAP_SIZE, TOPICLEN, e USERHOST_REPLYLEN.

Referenziato da main().

int is_banned ( struct Channel chptr,
struct Client who 
)

Parametri:
chptr pointer to channel block
who pointer to client to check access fo
Restituisce:
0 if not banned, 1 otherwise

Definizione alla linea 648 del file channel.c.

Riferimenti Channel::banlist, ConfigChannel, Channel::exceptlist, find_bmask(), e config_channel_entry::use_except.

Referenziato da can_join(), can_send(), e parse_knock_local().

struct Channel* make_channel ( const char *  chname  )  [read]

Get Channel block for chname (and allocate a new channel block, if it didn't exist before).

Parametri:
chname channel name
Restituisce:
channel block

Definizione alla linea 376 del file channel.c.

Riferimenti BlockHeapAlloc(), Channel::channelts, Channel::chname, CurrentTime, dlinkAdd(), EmptyString, hash_add_channel(), Channel::last_join_time, Channel::node, e strlcpy().

Referenziato da m_join(), mo_forcejoin(), ms_cburst(), ms_join(), ms_lljoin(), e ms_sjoin().

void remove_ban ( struct Ban ,
dlink_list  
)

void remove_user_from_channel ( struct Membership member  ) 

deletes an user from a channel by removing a link in the channels member chain.

Parametri:
member pointer to Membership struct

Definizione alla linea 135 del file channel.c.

Riferimenti BlockHeapFree(), Client::channel, Membership::channode, Membership::chptr, Membership::client_p, destroy_channel(), dlink_list_length, dlinkDelete(), Channel::members, e Membership::usernode.

Referenziato da do_join_0(), exit_one_client(), kick_list(), m_kick(), mo_forcepart(), operspy_names(), e part_one_client().

void send_channel_modes ( struct Client client_p,
struct Channel chptr 
)

send "client_p" a full list of the modes for channel chptr

Parametri:
client_p pointer to client client_p
chptr pointer to channel pointer

Definizione alla linea 292 del file channel.c.

Riferimenti Channel::banlist, CAP_EX, CAP_IE, channel_modes(), Channel::chname, Channel::exceptlist, Channel::invexlist, IsCapable, modebuf, parabuf, send_members(), e send_mode_list().

Referenziato da burst_all(), e burst_channel().

void set_channel_topic ( struct Channel chptr,
const char *  topic,
const char *  topic_info,
time_t  topicts 
)

Sets the channel topic for chptr.

Parametri:
chptr Pointer to struct Channel
topic The topic string
topic_info n!u@h formatted string of the topic setter
topicts timestamp on the topic

Definizione alla linea 902 del file channel.c.

Riferimenti allocate_topic(), EmptyString, free_topic(), strlcpy(), Channel::topic, Channel::topic_info, Channel::topic_time, TOPICLEN, e USERHOST_REPLYLEN.

Referenziato da m_topic(), ms_tburst(), ms_topic(), e set_topic().


Documentazione delle variabili


Generato il Wed Apr 15 00:19:20 2009 per ircd-hybrid da  doxygen 1.5.6