mirror of
https://github.com/NishiOwO/ircservices5.git
synced 2025-04-21 16:54:38 +00:00
148 lines
4.1 KiB
C
148 lines
4.1 KiB
C
/* Include file for data local to the ChanServ module.
|
|
*
|
|
* IRC Services is copyright (c) 1996-2009 Andrew Church.
|
|
* E-mail: <achurch@achurch.org>
|
|
* Parts written by Andrew Kempe and others.
|
|
* This program is free but copyrighted software; see the file GPL.txt for
|
|
* details.
|
|
*/
|
|
|
|
#ifndef CS_LOCAL_H
|
|
#define CS_LOCAL_H
|
|
|
|
/*************************************************************************/
|
|
/*************************************************************************/
|
|
|
|
/* Maximum number of parameters to allow to a SET MLOCK command. Anything
|
|
* over this will be silently discarded. */
|
|
|
|
#define MAX_MLOCK_PARAMS 256 /* impossible at 512 bytes/line */
|
|
|
|
/*************************************************************************/
|
|
|
|
/* Data for a channel option. */
|
|
|
|
typedef struct {
|
|
const char *name;
|
|
int32 flag;
|
|
int namestr; /* If -1, will be ignored by cs_flags_to_string() */
|
|
int onstr, offstr, syntaxstr;
|
|
} ChanOpt;
|
|
|
|
/*************************************************************************/
|
|
|
|
/* Return values for access list add/delete/list functions. Success > 0,
|
|
* failure < 0. Do not use zero as a return value.
|
|
*/
|
|
#define RET_ADDED 1
|
|
#define RET_CHANGED 2
|
|
#define RET_UNCHANGED 3
|
|
#define RET_DELETED 4
|
|
#define RET_LISTED 5
|
|
#define RET_PERMISSION -1
|
|
#define RET_NOSUCHNICK -2
|
|
#define RET_NICKFORBID -3
|
|
#define RET_NOOP -4
|
|
#define RET_LISTFULL -5
|
|
#define RET_NOENTRY -6
|
|
#define RET_INTERR -99
|
|
|
|
/*************************************************************************/
|
|
|
|
/* External declarations: */
|
|
|
|
|
|
/**** access.c ****/
|
|
|
|
E int16 def_levels[CA_SIZE];
|
|
|
|
E int get_access(const User *user, const ChannelInfo *ci);
|
|
E int check_access_cumode(const User *user, const ChannelInfo *ci,
|
|
int32 newmodes, int32 changemask);
|
|
E int access_add(ChannelInfo *ci, const char *nick, int level, int uacc);
|
|
E int access_del(ChannelInfo *ci, const char *nick, int uacc);
|
|
E int init_access(void);
|
|
E void exit_access(void);
|
|
|
|
|
|
/**** check.c ****/
|
|
|
|
E void check_modes(Channel *c);
|
|
E void check_chan_user_modes(const char *source, struct c_userlist *u,
|
|
Channel *c, int32 oldmodes);
|
|
E int check_kick(User *user, const char *chan, int on_join);
|
|
E int check_topiclock(Channel *c, time_t topic_time);
|
|
E int init_check(void);
|
|
E void exit_check(void);
|
|
|
|
|
|
/**** main.c ****/
|
|
|
|
E int CSRegisteredOnly;
|
|
E int32 CSMaxReg;
|
|
E int32 CSDefFlags;
|
|
E time_t CSExpire;
|
|
E int CSShowPassword;
|
|
E int32 CSAccessMax;
|
|
E int32 CSAutokickMax;
|
|
E time_t CSInhabit;
|
|
E time_t CSRestrictDelay;
|
|
E int CSListOpersOnly;
|
|
E time_t CSSuspendExpire;
|
|
E time_t CSSuspendGrace;
|
|
E int CSForbidShortChannel;
|
|
E int CSSkipModeRCheck;
|
|
E ChanOpt chanopts[];
|
|
|
|
|
|
/**** set.c ****/
|
|
|
|
/* Avoid conflicts with nickserv/set.c */
|
|
#define do_set do_set_cs
|
|
#define do_unset do_unset_cs
|
|
#define init_set init_set_cs
|
|
#define exit_set exit_set_cs
|
|
|
|
E void do_set(User *u);
|
|
E void do_unset(User *u);
|
|
E int init_set(void);
|
|
E void exit_set(void);
|
|
|
|
|
|
/**** util.c ****/
|
|
|
|
/* Avoid conflicts with nickserv/util.c */
|
|
#define init_util init_util_cs
|
|
#define exit_util exit_util_cs
|
|
|
|
E ChannelInfo *makechan(const char *chan);
|
|
E int delchan(ChannelInfo *ci);
|
|
E void count_chan(const ChannelInfo *ci);
|
|
E void uncount_chan(const ChannelInfo *ci);
|
|
E int is_founder(const User *user, const ChannelInfo *ci);
|
|
E int is_identified(const User *user, const ChannelInfo *ci);
|
|
E void restore_topic(Channel *c);
|
|
E void record_topic(ChannelInfo *ci, const char *topic,
|
|
const char *setter, time_t topic_time);
|
|
E void suspend_channel(ChannelInfo *ci, const char *reason,
|
|
const char *who, const time_t expires);
|
|
E void unsuspend_channel(ChannelInfo *ci, int set_time);
|
|
E void chan_bad_password(User *u, ChannelInfo *ci);
|
|
E ChanOpt *chanopt_from_name(const char *optname);
|
|
E char *chanopts_to_string(const ChannelInfo *ci, const NickGroupInfo *ngi);
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
#endif
|
|
|
|
/*
|
|
* Local variables:
|
|
* c-file-style: "stroustrup"
|
|
* c-file-offsets: ((case-label . *) (statement-case-intro . *))
|
|
* indent-tabs-mode: nil
|
|
* End:
|
|
*
|
|
* vim: expandtab shiftwidth=4:
|
|
*/
|