struct DNSQuery *dnsquery; /* for outgoing server's name lookup */
- time_t last_away; /* Away since... */
+ time_t next_away; /* Don't allow next away before... */
time_t last;
/* clients allowed to talk through +g */
* to avoid flooding.
* -- adrian
*/
- int allow_read; /* how many we're allowed to read in this second */
- int actually_read; /* how many we've actually read in this second */
int sent_parsed; /* how many messages we've parsed in this second */
time_t last_knock; /* time of last knock */
unsigned long random_ping;
unsigned int targets_free; /* free targets */
time_t target_last; /* last time we cleared a slot */
+ /* ratelimit items */
+ time_t ratelimit;
+ unsigned int join_who_credits;
+
struct ListClient *safelist_data;
char *mangledhost; /* non-NULL if host mangling module loaded and
{
unsigned int hash_indice;
unsigned int users_min, users_max;
-
- /* It would be nice to add other modifiers,
- * but not for 1.1 --nenolod
- */
+ time_t created_min, created_max, topic_min, topic_max;
+ int operspy;
};
/*
#define FLAGS_SERVICE 0x200000 /* network service */
#define FLAGS_TGCHANGE 0x400000 /* we're allowed to clear something */
#define FLAGS_DYNSPOOF 0x800000 /* dynamic spoof, only opers see ip */
+#define FLAGS_TGEXCESSIVE 0x1000000 /* whether the client has attemped to change targets excessively fast */
/* flags for local clients, this needs stuff moved from above to here at some point */
#define LFLAGS_SSL 0x00000001
#define CLICAP_MULTI_PREFIX 0x0001
#define CLICAP_SASL 0x0002
-#define CLICAP_ACCOUNT_HOSTMASK 0x0004
+#define CLICAP_ACCOUNT_NOTIFY 0x0004
+#define CLICAP_EXTENDED_JOIN 0x0008
+#define CLICAP_AWAY_NOTIFY 0x0010
+#define CLICAP_TLS 0x0020
/*
* flags macros.
#define IsDynSpoof(x) ((x)->flags & FLAGS_DYNSPOOF)
#define SetDynSpoof(x) ((x)->flags |= FLAGS_DYNSPOOF)
#define ClearDynSpoof(x) ((x)->flags &= ~FLAGS_DYNSPOOF)
+#define IsTGExcessive(x) ((x)->flags & FLAGS_TGEXCESSIVE)
+#define SetTGExcessive(x) ((x)->flags |= FLAGS_TGEXCESSIVE)
+#define ClearTGExcessive(x) ((x)->flags &= ~FLAGS_TGEXCESSIVE)
/* local flags */
extern void check_klines(void);
extern void check_dlines(void);
extern void check_xlines(void);
+extern void resv_nick_fnc(const char *mask, const char *reason, int temp_time);
extern const char *get_client_name(struct Client *client, int show_ip);
extern const char *log_client_name(struct Client *, int);
extern void dead_link(struct Client *client_p, int sendqex);
extern int show_ip(struct Client *source_p, struct Client *target_p);
-extern int show_ip_conf(struct ConfItem *aconf, struct Client *target_p);
+extern int show_ip_conf(struct ConfItem *aconf, struct Client *source_p);
+extern int show_ip_whowas(struct Whowas *whowas, struct Client *source_p);
extern void initUser(void);
extern void free_user(struct User *, struct Client *);