X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fs_misc.h;h=1fb82b0e97cb4c2de855364055bee28dbfdc34d8;hb=refs%2Fheads%2Fupstream-ssl;hp=e53b7dfcaf483b3b800b3db319e5d40649bb3873;hpb=b70944c4b84fc2b707d0853ddf03975569dac2bd;p=ircu2.10.12-pk.git diff --git a/include/s_misc.h b/include/s_misc.h index e53b7df..1fb82b0 100644 --- a/include/s_misc.h +++ b/include/s_misc.h @@ -1,71 +1,94 @@ -#ifndef S_MISC_H -#define S_MISC_H - -/*============================================================================= - * General defines +/** @file s_misc.h + * @brief Miscellaneous support functions and declarations. + * @version $Id$ */ +#ifndef INCLUDED_s_misc_h +#define INCLUDED_s_misc_h +#ifndef INCLUDED_stdarg_h +#include /* va_list */ +#define INCLUDED_stdarg_h +#endif +#ifndef INCLUDED_sys_types_h +#include /* time_t */ +#define INCLUDED_sys_types_h +#endif + + +struct Client; +struct StatDesc; +struct ConfItem; /*----------------------------------------------------------------------------- - * Macro's + * Macros */ -#define CPTR_KILLED -2 +/** Return value from various functions to indicate the source has + * been disconnected. */ +#define CPTR_KILLED -2 -/*============================================================================= +/* * Structures */ -struct stats { - unsigned int is_cl; /* number of client connections */ - unsigned int is_sv; /* number of server connections */ - unsigned int is_ni; /* connection but no idea who it was */ - unsigned short int is_cbs; /* bytes sent to clients */ - unsigned short int is_cbr; /* bytes received to clients */ - unsigned short int is_sbs; /* bytes sent to servers */ - unsigned short int is_sbr; /* bytes received to servers */ - unsigned int is_cks; /* k-bytes sent to clients */ - unsigned int is_ckr; /* k-bytes received to clients */ - unsigned int is_sks; /* k-bytes sent to servers */ - unsigned int is_skr; /* k-bytes received to servers */ - time_t is_cti; /* time spent connected by clients */ - time_t is_sti; /* time spent connected by servers */ - unsigned int is_ac; /* connections accepted */ - unsigned int is_ref; /* accepts refused */ - unsigned int is_unco; /* unknown commands */ - unsigned int is_wrdi; /* command going in wrong direction */ - unsigned int is_unpf; /* unknown prefix */ - unsigned int is_empt; /* empty message */ - unsigned int is_num; /* numeric message */ - unsigned int is_kill; /* number of kills generated on collisions */ - unsigned int is_fake; /* MODE 'fakes' */ - unsigned int is_asuc; /* successful auth requests */ - unsigned int is_abad; /* bad auth requests */ - unsigned int is_udp; /* packets recv'd on udp port */ - unsigned int is_loc; /* local connections made */ +#ifdef HAVE_INTTYPES_H +# ifndef INCLUDED_inttypes_h +# include +# define INCLUDED_inttypes_h +# endif +#else +# ifdef HAVE_STDINT_H +# ifndef INCLUDED_stdint_h +# include +# define INCLUDED_stdint_h +# endif +# endif +#endif + +/** Structure used to count many server-wide statistics. */ +struct ServerStatistics { + unsigned int is_cl; /**< number of client connections */ + unsigned int is_sv; /**< number of server connections */ + unsigned int is_ni; /**< connection but no idea who it was */ + uint64_t is_cbs; /**< bytes sent to clients */ + uint64_t is_cbr; /**< bytes received to clients */ + uint64_t is_sbs; /**< bytes sent to servers */ + uint64_t is_sbr; /**< bytes received to servers */ + uint64_t is_cti; /**< time spent connected by clients */ + uint64_t is_sti; /**< time spent connected by servers */ + unsigned int is_ac; /**< connections accepted */ + unsigned int is_ref; /**< accepts refused */ + unsigned int is_unco; /**< unknown commands */ + unsigned int is_wrdi; /**< command going in wrong direction */ + unsigned int is_unpf; /**< unknown prefix */ + unsigned int is_empt; /**< empty message */ + unsigned int is_num; /**< numeric message */ + unsigned int is_kill; /**< number of kills generated on collisions */ + unsigned int is_fake; /**< MODE 'fakes' */ + unsigned int is_asuc; /**< successful auth requests */ + unsigned int is_abad; /**< bad auth requests */ + unsigned int is_loc; /**< local connections made */ + unsigned int uping_recv; /**< UDP Pings received */ }; -/*============================================================================= - * Proto types +/* + * Prototypes */ -extern int check_registered(aClient *sptr); -extern int check_registered_user(aClient *sptr); -extern int exit_client(aClient *cptr, aClient *bcptr, - aClient *sptr, char *comment); +extern int check_registered(struct Client *sptr); +extern int check_registered_user(struct Client *sptr); +extern int exit_client(struct Client *cptr, struct Client *bcptr, + struct Client *sptr, const char *comment); extern char *myctime(time_t value); -extern char *get_client_name(aClient *sptr, int showip); -extern int exit_client_msg(aClient *cptr, aClient *bcptr, - aClient *sptr, char *pattern, ...) __attribute__ ((format(printf, 4, 5))); +extern int exit_client_msg(struct Client *cptr, struct Client *bcptr, + struct Client *sptr, const char *pattern, ...); extern void initstats(void); extern char *date(time_t clock); -extern char *get_client_host(aClient *cptr); -extern void get_sockhost(aClient *cptr, char *host); -extern char *my_name_for_link(char *name, aConfItem *aconf); -extern int vexit_client_msg(aClient *cptr, aClient *bcptr, - aClient *sptr, char *pattern, va_list vl); -extern void checklist(void); -extern void tstats(aClient *cptr, char *name); +extern int vexit_client_msg(struct Client *cptr, struct Client *bcptr, + struct Client *sptr, const char *pattern, va_list vl); +extern void tstats(struct Client *cptr, const struct StatDesc *sd, + char *param); + +extern struct ServerStatistics* ServerStats; -extern struct stats *ircstp; +#endif /* INCLUDED_s_misc_h */ -#endif /* S_MISC_H */