/************************************************************************ * IRC - Internet Relay Chat, include/h.h * Copyright (C) 1992 Darren Reed * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 1, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * "h.h". - Headers file. * * Most of the externs and prototypes thrown in here to 'cleanup' things. * -avalon */ extern time_t nextconnect, nextdnscheck, nextping, now; extern aClient *client, me, *local[]; extern aChannel *channel; extern struct stats *ircstp; extern int bootopt; extern aChannel *find_channel PROTO((char *, aChannel *)); extern void remove_user_from_channel PROTO((aClient *, aChannel *)); extern void del_invite PROTO((aClient *, aChannel *)); extern int del_silence PROTO((aClient *, char *)); extern void send_user_joins PROTO((aClient *, aClient *)); extern void clean_channelname PROTO((char *)); extern int can_send PROTO((aClient *, aChannel *)); extern int is_chan_op PROTO((aClient *, aChannel *)); extern int is_zombie PROTO((aClient *, aChannel *)); extern int has_voice PROTO((aClient *, aChannel *)); extern int count_channels PROTO((aClient *)); extern aClient *find_client PROTO((char *, aClient *)); extern aClient *find_name PROTO((char *, aClient *)); extern aClient *find_person PROTO((char *, aClient *)); extern aClient *find_server PROTO((char *, aClient *)); extern aClient *find_match_server PROTO((char *)); extern aClient *find_service PROTO((char *, aClient *)); extern aClient *find_userhost PROTO((char *, char *, aClient *, int *)); extern int attach_conf PROTO((aClient *, aConfItem *)); extern aConfItem *attach_confs PROTO((aClient*, const char *, int)); extern aConfItem *attach_confs_host PROTO((aClient*, char *, int)); extern int attach_Iline PROTO((aClient *, struct hostent *, char *)); extern aConfItem *conf, *find_me PROTO(()), *find_admin PROTO(()); extern aGline *gline; extern aConfItem *count_cnlines PROTO((Link *)); extern void det_confs_butmask PROTO((aClient *, int)); extern int detach_conf PROTO((aClient *, aConfItem *)); extern aConfItem *det_confs_butone PROTO((aClient *, aConfItem *)); extern aConfItem *find_conf PROTO((Link *, char*, int)); extern aConfItem *find_conf_exact PROTO((char *, char *, char *, int)); extern aConfItem *find_conf_host PROTO((Link *, char *, int)); extern aConfItem *find_conf_ip PROTO((Link *, char *, char *, int)); extern aConfItem *find_conf_name PROTO((char *, int)); extern int find_kill PROTO((aClient *)); extern int find_restrict PROTO((aClient *)); extern int rehash PROTO((aClient *, aClient *, int)); extern int initconf PROTO((int)); extern char *MyMalloc PROTO((size_t)), *MyRealloc PROTO((char *, size_t)); extern char *debugmode, *configfile; extern void *sbrk0; extern char *getfield PROTO((char *)); extern void get_sockhost PROTO((aClient *, char *)); extern char *rpl_str PROTO((int)), *err_str PROTO((int)); extern char *strerror PROTO((int)); extern int dgets PROTO((int, char *, int)); extern char *inetntoa PROTO((char *)); extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno; extern int highest_fd, debuglevel, portnum, debugtty, maxusersperchannel; extern int readcalls, udpfd, resfd; extern aClient *add_connection PROTO((aClient *, int)); extern int add_listener PROTO((aConfItem *)); extern void add_local_domain PROTO((char *, int)); extern int check_client PROTO((aClient *)); extern int check_server PROTO((aClient *, struct hostent *, \ aConfItem *, aConfItem *)); extern int check_server_init PROTO((aClient *)); extern void close_connection PROTO((aClient *)); extern void close_listeners PROTO(()); extern int connect_server PROTO((aConfItem *, aClient *, struct hostent *)); extern void get_my_name PROTO((aClient *, char *, int)); extern int get_sockerr PROTO((aClient *)); extern int inetport PROTO((aClient *, char *, int)); extern void init_sys PROTO(()); extern int read_message PROTO((time_t)); extern void report_error PROTO((char *, aClient *)); extern void set_non_blocking PROTO((int, aClient *)); extern int setup_ping PROTO(()); extern void summon PROTO((aClient *, char *, char *, char *)); extern int unixport PROTO((aClient *, char *, int)); extern int utmp_open PROTO(()); extern int utmp_read PROTO((int, char *, char *, char *, int)); extern int utmp_close PROTO((int)); extern void start_auth PROTO((aClient *)); extern void read_authports PROTO((aClient *)); extern void send_authports PROTO((aClient *)); extern void restart PROTO((char *)); extern void send_channel_modes PROTO((aClient *, aChannel *)); extern void server_reboot PROTO(()); extern void terminate PROTO(()), write_pidfile PROTO(()); extern void end_ping PROTO((aClient *)); extern void cancel_ping PROTO((aClient *, aClient *)); extern void send_queued PROTO((aClient *)); extern void sendto_one(aClient *to, char *pattern, ...); extern void vsendto_one(); extern void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *pattern, ...); extern void sendto_serv_butone(aClient *one, char *pattern, ...); extern void sendto_common_channels(aClient *user, char *pattern, ...); extern void sendto_channel_butserv(aChannel *chptr, aClient *from, char *pattern, ...); extern void sendto_match_servs(aChannel *chptr, aClient *from, char *format, ...); extern void sendto_match_butone(aClient *one, aClient *from, char *mask, int what, char *pattern, ...); extern void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...); extern void sendto_ops(char *pattern, ...); extern void sendto_lops_butone(aClient *one, char *pattern, ...); extern void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...); extern void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...); extern void vsendto_prefix_one(); extern void sendto_realops(char *pattern, ...); extern int exit_client_msg(aClient *cptr, aClient *bcptr, aClient *sptr, char *pattern, ...); extern int writecalls, writeb[]; extern int deliver_it PROTO((aClient *, char *, int)); extern int check_registered PROTO((aClient *)); extern int check_registered_user PROTO((aClient *)); extern char *get_client_name PROTO((aClient *, int)); extern char *get_client_host PROTO((aClient *)); extern char *my_name_for_link PROTO((char *, aConfItem *)); extern char *myctime PROTO((time_t)), *date PROTO((time_t)); extern int exit_client PROTO((aClient *, aClient *, aClient *, char *)); extern void initstats PROTO(()), tstats PROTO((aClient *, char *)); extern int parse PROTO((aClient *, char *, char *, struct Message *)); extern int do_numeric PROTO((int, aClient *, aClient *, int, char **)); extern int hunt_server PROTO((aClient *,aClient *,char *,int,int,char **)); extern aClient *next_client PROTO((aClient *, char *)); extern int m_umode PROTO((aClient *, aClient *, int, char **)); extern int m_names PROTO((aClient *, aClient *, int, char **)); extern int m_server_estab PROTO((aClient *, aConfItem *, aConfItem *)); extern void send_umode PROTO((aClient *, aClient *, int, int, char *)); extern void send_umode_out PROTO((aClient*, aClient *, int)); extern void free_client PROTO((aClient *)); extern void free_link PROTO((Link *)); extern void free_conf PROTO((aConfItem *)); extern void free_class PROTO((aClass *)); extern void free_user PROTO((anUser *, aClient *)); extern void free_gline PROTO((aGline *, aGline *)); extern Link *make_link PROTO(()); extern Dlink *add_dlink PROTO((Dlink **, aClient *)); extern void remove_dlink PROTO((Dlink **, Dlink *)); extern anUser *make_user PROTO((aClient *)); extern aConfItem *make_conf PROTO(()); extern aClass *make_class PROTO(()); extern aServer *make_server PROTO((aClient *)); extern aClient *make_client PROTO((aClient *)); extern aGline *make_gline PROTO((char *, char *, char *, time_t)); extern aGline *find_gline PROTO((char *, char *, aGline **)); extern Link *find_user_link PROTO((Link *, aClient *)); extern int IsMember PROTO((aClient *, aChannel *)); extern char *pretty_mask PROTO((char *)); extern void add_client_to_list PROTO((aClient *)); extern void checklist PROTO(()); extern void remove_client_from_list PROTO((aClient *)); extern void initlists PROTO(()); extern void add_class PROTO((int, int, int, int, long)); extern void fix_class PROTO((aConfItem *, aConfItem *)); extern long get_sendq PROTO((aClient *)); extern int get_con_freq PROTO((aClass *)); extern int get_client_ping PROTO((aClient *)); extern int get_client_class PROTO((aClient *)); extern int get_conf_class PROTO((aConfItem *)); extern void report_classes PROTO((aClient *)); extern struct hostent *get_res PROTO((char *)); extern struct hostent *gethost_byaddr PROTO((struct in_addr *, Link *)); extern struct hostent *gethost_byname PROTO((char *, Link *)); extern void flush_cache PROTO(()); extern int init_resolver PROTO((int)); extern time_t timeout_query_list PROTO((void)); extern time_t expire_cache PROTO((void)); extern void del_queries PROTO((char *)); extern void clear_channel_hash_table PROTO(()); extern void clear_client_hash_table PROTO(()); extern int add_to_client_hash_table PROTO((char *, aClient *)); extern int del_from_client_hash_table PROTO((char *, aClient *)); extern int add_to_channel_hash_table PROTO((char *, aChannel *)); extern int del_from_channel_hash_table PROTO((char *, aChannel *)); extern aChannel *hash_find_channel PROTO((char *, aChannel *)); extern aClient *hash_find_client PROTO((char *, aClient *)); extern aClient *hash_find_nickserver PROTO((char *, aClient *)); extern aClient *hash_find_server PROTO((char *, aClient *)); extern void add_history PROTO((aClient *)); extern aClient *get_history PROTO((char *, time_t)); extern void initwhowas PROTO(()); extern void off_history PROTO((aClient *)); extern int dopacket PROTO((aClient *, char *, int)); extern void debug PROTO((int level, char *form, ...)); #if defined(DEBUGMODE) extern void send_usage PROTO((aClient *, char *)); extern void send_listinfo PROTO((aClient *, char *)); extern void MyFree(void *x); extern void dumpcore(); #endif extern void count_memory PROTO((aClient *, char *)); char *crule_parse PROTO((char *)); int crule_eval PROTO((char *)); void crule_free PROTO((char **)); extern char *collapse PROTO((char *pattern)); extern int match PROTO((const char *ma, const char *na)); extern int matches PROTO((const char *ma, const char *na)); extern void read_ping PROTO((aClient *cptr)); extern void send_ping PROTO((aClient *cptr)); extern int ping_server PROTO((aClient *cptr, struct hostent *hp)); extern void delist_conf PROTO((aConfItem *aconf)); extern u_long cres_mem PROTO((aClient *sptr)); extern int hash_nick_name PROTO((char *nname)); extern VOIDSIG s_die(); extern unsigned long ircrandom(void);