2003-06-10 12:51:56 +00:00
|
|
|
/* NeoStats - IRC Statistical Services
|
2008-02-24 02:45:41 +00:00
|
|
|
** Copyright (c) 1999-2008 Adam Rutter, Justin Hammond, Mark Hetherington
|
2003-06-10 12:51:56 +00:00
|
|
|
** http://www.neostats.net/
|
|
|
|
**
|
|
|
|
** 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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
|
|
** USA
|
|
|
|
**
|
|
|
|
** NeoStats CVS Identification
|
2003-09-22 15:04:15 +00:00
|
|
|
** $Id$
|
2003-06-10 12:51:56 +00:00
|
|
|
*/
|
2005-04-22 21:56:20 +00:00
|
|
|
#ifndef _PROTOCOL_H_
|
|
|
|
#define _PROTOCOL_H_
|
2003-06-10 12:51:56 +00:00
|
|
|
|
2004-06-09 19:15:44 +00:00
|
|
|
#define NICKPARAM 0x00000001
|
|
|
|
#define MODEPARAM 0x00000002
|
|
|
|
#define MULTIPARAM 0x00000004
|
|
|
|
|
2005-04-22 21:34:07 +00:00
|
|
|
#define MSGTOK( a ) ( ( ircd_srv.protocol & PROTOCOL_TOKEN )? TOK_##a : MSG_##a )
|
2004-07-05 19:35:58 +00:00
|
|
|
|
2005-03-12 21:30:25 +00:00
|
|
|
typedef void( *ircd_cmd_handler )( char *origin, char **argv, int argc, int srv );
|
2003-12-09 22:17:09 +00:00
|
|
|
|
2005-04-28 14:58:02 +00:00
|
|
|
typedef struct irc_cmd {
|
2005-05-04 20:42:32 +00:00
|
|
|
char **name;
|
|
|
|
char **token;
|
2005-02-13 23:28:27 +00:00
|
|
|
ircd_cmd_handler handler;
|
2004-07-06 22:44:42 +00:00
|
|
|
unsigned int usage;
|
2005-04-28 14:58:02 +00:00
|
|
|
}irc_cmd;
|
2003-06-26 05:14:16 +00:00
|
|
|
|
2005-10-07 21:43:59 +00:00
|
|
|
#define IRC_CMD_END() { NULL, NULL, NULL, 0 }
|
|
|
|
|
2004-07-28 19:14:27 +00:00
|
|
|
typedef struct mode_init {
|
|
|
|
unsigned char mode;
|
|
|
|
unsigned int mask;
|
2004-07-06 22:44:42 +00:00
|
|
|
unsigned int flags;
|
2004-07-16 22:36:54 +00:00
|
|
|
unsigned char sjoin;
|
2004-07-28 19:14:27 +00:00
|
|
|
} mode_init;
|
2004-05-20 21:17:00 +00:00
|
|
|
|
2005-10-07 21:43:59 +00:00
|
|
|
#define MODE_INIT_END() {0, 0, 0, 0}
|
|
|
|
|
2004-01-21 22:59:03 +00:00
|
|
|
typedef struct ircd_server {
|
|
|
|
int burst;
|
|
|
|
int uprot;
|
|
|
|
int modex;
|
|
|
|
int nicklen;
|
|
|
|
int gc;
|
2004-07-07 12:12:26 +00:00
|
|
|
char cloak[CLOAKKEYLEN];
|
2004-01-25 23:38:53 +00:00
|
|
|
int maxglobalcnt;
|
|
|
|
int tsendsync;
|
2004-05-18 21:28:49 +00:00
|
|
|
unsigned int protocol;
|
|
|
|
unsigned int features;
|
2004-01-21 22:59:03 +00:00
|
|
|
} ircd_server;
|
|
|
|
|
2004-07-05 19:35:58 +00:00
|
|
|
typedef struct ProtocolInfo {
|
2005-04-18 20:57:18 +00:00
|
|
|
/* Minimum protocols that are required * e.g. NOQUIT */
|
2005-04-22 21:34:07 +00:00
|
|
|
const unsigned int required;
|
2004-07-05 19:35:58 +00:00
|
|
|
/* Optional protocols that are negotiated during connection that the
|
2004-08-26 21:44:44 +00:00
|
|
|
* protocol module supports but will work when not available e.g. SJOIN */
|
2005-04-22 21:34:07 +00:00
|
|
|
const unsigned int options;
|
2005-04-18 20:57:18 +00:00
|
|
|
/* Features provided by this protocol module e.g. USERSMODES support. */
|
2004-07-05 19:35:58 +00:00
|
|
|
const unsigned int features;
|
2005-04-18 20:57:18 +00:00
|
|
|
/* Max host length */
|
|
|
|
const unsigned int maxhost;
|
|
|
|
/* Max password length */
|
|
|
|
const unsigned int maxpass;
|
|
|
|
/* Max nick length */
|
|
|
|
const unsigned int maxnick;
|
|
|
|
/* Max user length */
|
|
|
|
const unsigned int maxuser;
|
|
|
|
/* Max real name length */
|
|
|
|
const unsigned int maxrealname;
|
|
|
|
/* Max channel name length */
|
2005-04-22 21:34:07 +00:00
|
|
|
const unsigned int maxchannelname;
|
2005-04-18 20:57:18 +00:00
|
|
|
/* Max topic length */
|
2005-04-22 21:34:07 +00:00
|
|
|
const unsigned int maxtopic;
|
2005-04-18 20:57:18 +00:00
|
|
|
/* Default operator modes for NeoStats service bots */
|
2004-08-26 21:44:44 +00:00
|
|
|
char *services_umode;
|
2005-04-18 20:57:18 +00:00
|
|
|
/* Default channel mode for NeoStats service bots */
|
2004-08-26 21:44:44 +00:00
|
|
|
char *services_cmode;
|
2004-07-05 19:35:58 +00:00
|
|
|
} ProtocolInfo;
|
|
|
|
|
2004-08-26 21:44:44 +00:00
|
|
|
#ifndef NEOSTATSCORE
|
2005-04-28 14:58:02 +00:00
|
|
|
MODULEVAR extern irc_cmd cmd_list[];
|
2004-07-28 19:14:27 +00:00
|
|
|
MODULEVAR extern mode_init chan_umodes[];
|
|
|
|
MODULEVAR extern mode_init chan_modes[];
|
|
|
|
MODULEVAR extern mode_init user_umodes[];
|
|
|
|
MODULEVAR extern mode_init user_smodes[];
|
2004-08-26 21:44:44 +00:00
|
|
|
MODULEVAR extern ProtocolInfo protocol_info;
|
2005-04-22 21:34:07 +00:00
|
|
|
#endif /* NEOSTATSCORE */
|
2005-04-21 21:25:06 +00:00
|
|
|
#ifdef NEOSTATSCORE
|
2007-01-14 23:28:36 +00:00
|
|
|
#ifdef DECLARE_MSGDEF
|
|
|
|
#define MSGDEF( msg ) char *msg;
|
|
|
|
#else
|
2005-05-04 20:42:32 +00:00
|
|
|
#define MSGDEF( msg ) extern char *msg;
|
2005-05-03 22:58:51 +00:00
|
|
|
#endif /* MSGDEF */
|
2005-04-22 21:34:07 +00:00
|
|
|
#else /* NEOSTATSCORE */
|
2005-05-04 20:42:32 +00:00
|
|
|
#define MSGDEF( msg ) MODULEVAR extern char *msg;
|
2005-04-22 21:34:07 +00:00
|
|
|
#endif /* NEOSTATSCORE */
|
2005-04-21 21:25:06 +00:00
|
|
|
MSGDEF( MSG_PRIVATE );
|
|
|
|
MSGDEF( TOK_PRIVATE );
|
|
|
|
MSGDEF( MSG_NOTICE );
|
|
|
|
MSGDEF( TOK_NOTICE );
|
|
|
|
MSGDEF( MSG_WALLOPS );
|
|
|
|
MSGDEF( TOK_WALLOPS );
|
|
|
|
MSGDEF( MSG_GLOBOPS );
|
|
|
|
MSGDEF( TOK_GLOBOPS );
|
|
|
|
MSGDEF( MSG_STATS );
|
|
|
|
MSGDEF( TOK_STATS );
|
|
|
|
MSGDEF( MSG_VERSION );
|
|
|
|
MSGDEF( TOK_VERSION );
|
|
|
|
MSGDEF( MSG_MOTD );
|
|
|
|
MSGDEF( TOK_MOTD );
|
|
|
|
MSGDEF( MSG_ADMIN );
|
|
|
|
MSGDEF( TOK_ADMIN );
|
|
|
|
MSGDEF( MSG_CREDITS );
|
|
|
|
MSGDEF( TOK_CREDITS );
|
2005-04-21 22:14:23 +00:00
|
|
|
MSGDEF( MSG_INFO );
|
|
|
|
MSGDEF( TOK_INFO );
|
2005-04-21 21:25:06 +00:00
|
|
|
MSGDEF( MSG_NICK );
|
|
|
|
MSGDEF( TOK_NICK );
|
|
|
|
MSGDEF( MSG_MODE );
|
|
|
|
MSGDEF( TOK_MODE );
|
|
|
|
MSGDEF( MSG_AWAY );
|
|
|
|
MSGDEF( TOK_AWAY );
|
|
|
|
MSGDEF( MSG_QUIT );
|
|
|
|
MSGDEF( TOK_QUIT );
|
|
|
|
MSGDEF( MSG_JOIN );
|
|
|
|
MSGDEF( TOK_JOIN );
|
|
|
|
MSGDEF( MSG_PART );
|
|
|
|
MSGDEF( TOK_PART );
|
|
|
|
MSGDEF( MSG_KICK );
|
|
|
|
MSGDEF( TOK_KICK );
|
|
|
|
MSGDEF( MSG_INVITE );
|
|
|
|
MSGDEF( TOK_INVITE );
|
2005-04-30 22:09:25 +00:00
|
|
|
MSGDEF( MSG_TOPIC );
|
|
|
|
MSGDEF( TOK_TOPIC );
|
2005-04-21 21:25:06 +00:00
|
|
|
MSGDEF( MSG_PING );
|
|
|
|
MSGDEF( TOK_PING );
|
|
|
|
MSGDEF( MSG_PONG );
|
|
|
|
MSGDEF( TOK_PONG );
|
|
|
|
MSGDEF( MSG_SERVER );
|
|
|
|
MSGDEF( TOK_SERVER );
|
|
|
|
MSGDEF( MSG_SQUIT );
|
|
|
|
MSGDEF( TOK_SQUIT );
|
|
|
|
MSGDEF( MSG_NETINFO );
|
|
|
|
MSGDEF( TOK_NETINFO );
|
|
|
|
MSGDEF( MSG_SNETINFO );
|
|
|
|
MSGDEF( TOK_SNETINFO );
|
|
|
|
MSGDEF( MSG_SVINFO );
|
|
|
|
MSGDEF( TOK_SVINFO );
|
|
|
|
MSGDEF( MSG_EOB );
|
|
|
|
MSGDEF( TOK_EOB );
|
|
|
|
MSGDEF( MSG_PROTOCTL );
|
|
|
|
MSGDEF( TOK_PROTOCTL );
|
|
|
|
MSGDEF( MSG_CAPAB );
|
|
|
|
MSGDEF( TOK_CAPAB );
|
|
|
|
MSGDEF( MSG_PASS );
|
|
|
|
MSGDEF( TOK_PASS );
|
|
|
|
MSGDEF( MSG_CHATOPS );
|
|
|
|
MSGDEF( TOK_CHATOPS );
|
|
|
|
MSGDEF( MSG_ERROR );
|
|
|
|
MSGDEF( TOK_ERROR );
|
|
|
|
MSGDEF( MSG_KILL );
|
|
|
|
MSGDEF( TOK_KILL );
|
|
|
|
MSGDEF( MSG_SETNAME );
|
|
|
|
MSGDEF( TOK_SETNAME );
|
2005-04-23 19:53:20 +00:00
|
|
|
MSGDEF( MSG_CHGNAME );
|
|
|
|
MSGDEF( TOK_CHGNAME );
|
2005-04-21 21:25:06 +00:00
|
|
|
MSGDEF( MSG_SETHOST );
|
|
|
|
MSGDEF( TOK_SETHOST );
|
2005-04-22 22:15:59 +00:00
|
|
|
MSGDEF( MSG_CHGHOST );
|
|
|
|
MSGDEF( TOK_CHGHOST );
|
2005-04-21 21:25:06 +00:00
|
|
|
MSGDEF( MSG_SETIDENT );
|
|
|
|
MSGDEF( TOK_SETIDENT );
|
2005-04-23 19:53:20 +00:00
|
|
|
MSGDEF( MSG_CHGIDENT );
|
|
|
|
MSGDEF( TOK_CHGIDENT );
|
2005-04-21 21:25:06 +00:00
|
|
|
MSGDEF( MSG_SVSNICK );
|
|
|
|
MSGDEF( TOK_SVSNICK );
|
|
|
|
MSGDEF( MSG_SVSJOIN );
|
|
|
|
MSGDEF( TOK_SVSJOIN );
|
|
|
|
MSGDEF( MSG_SVSPART );
|
|
|
|
MSGDEF( TOK_SVSPART );
|
|
|
|
MSGDEF( MSG_SVSMODE );
|
|
|
|
MSGDEF( TOK_SVSMODE );
|
|
|
|
MSGDEF( MSG_SVSKILL );
|
|
|
|
MSGDEF( TOK_SVSKILL );
|
2005-04-23 22:46:40 +00:00
|
|
|
MSGDEF( MSG_SVSHOST );
|
|
|
|
MSGDEF( TOK_SVSHOST );
|
|
|
|
MSGDEF( MSG_SQLINE );
|
|
|
|
MSGDEF( TOK_SQLINE );
|
|
|
|
MSGDEF( MSG_UNSQLINE );
|
|
|
|
MSGDEF( TOK_UNSQLINE );
|
2005-05-03 22:58:51 +00:00
|
|
|
MSGDEF( MSG_SGLINE );
|
|
|
|
MSGDEF( TOK_SGLINE );
|
|
|
|
MSGDEF( MSG_UNSGLINE );
|
|
|
|
MSGDEF( TOK_UNSGLINE );
|
2005-04-23 22:46:40 +00:00
|
|
|
MSGDEF( MSG_ZLINE );
|
|
|
|
MSGDEF( TOK_ZLINE );
|
|
|
|
MSGDEF( MSG_UNZLINE );
|
|
|
|
MSGDEF( TOK_UNZLINE );
|
|
|
|
MSGDEF( MSG_AKILL );
|
|
|
|
MSGDEF( TOK_AKILL );
|
|
|
|
MSGDEF( MSG_RAKILL );
|
|
|
|
MSGDEF( TOK_RAKILL );
|
|
|
|
MSGDEF( MSG_KLINE );
|
|
|
|
MSGDEF( TOK_KLINE );
|
|
|
|
MSGDEF( MSG_UNKLINE );
|
|
|
|
MSGDEF( TOK_UNKLINE );
|
|
|
|
MSGDEF( MSG_GLINE );
|
|
|
|
MSGDEF( TOK_GLINE );
|
|
|
|
MSGDEF( MSG_REMGLINE );
|
|
|
|
MSGDEF( TOK_REMGLINE );
|
2005-11-28 23:03:05 +00:00
|
|
|
MSGDEF( MSG_WHOIS );
|
|
|
|
MSGDEF( TOK_WHOIS );
|
2005-04-23 22:46:40 +00:00
|
|
|
|
2005-05-05 20:55:38 +00:00
|
|
|
EXPORTVAR extern char *numeric219;
|
|
|
|
EXPORTVAR extern char *numeric242;
|
|
|
|
EXPORTVAR extern char *numeric351;
|
|
|
|
|
2004-07-05 19:35:58 +00:00
|
|
|
EXPORTVAR extern ircd_server ircd_srv;
|
|
|
|
|
2005-08-20 22:53:26 +00:00
|
|
|
EXPORTFUNC void process_ircd_cmd( int cmdptr, const char *cmd, char *origin, char **av, int ac );
|
2004-06-09 19:15:44 +00:00
|
|
|
|
2004-07-16 22:36:54 +00:00
|
|
|
/* IRCD protocol module API */
|
2005-09-30 19:54:24 +00:00
|
|
|
EXPORTFUNC void _m_private( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_notice( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_pass( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_protoctl( char *origin, char **argv, int argc, int srv );
|
2004-08-27 19:47:04 +00:00
|
|
|
#define _m_capab _m_protoctl
|
2005-03-12 21:30:25 +00:00
|
|
|
EXPORTFUNC void _m_version( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_motd( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_admin( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_credits( char *origin, char **argv, int argc, int srv );
|
2005-04-21 22:14:23 +00:00
|
|
|
EXPORTFUNC void _m_info( char *origin, char **argv, int argc, int srv );
|
2005-03-12 21:30:25 +00:00
|
|
|
EXPORTFUNC void _m_stats( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_ping( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_pong( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_quit( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_topic( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_join( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_part( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_kick( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_away( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_kill( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_squit( char *origin, char **argv, int argc, int srv );
|
2005-04-19 21:58:26 +00:00
|
|
|
EXPORTFUNC void _m_netinfo( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_snetinfo( char *origin, char **argv, int argc, int srv );
|
2005-03-18 23:03:31 +00:00
|
|
|
EXPORTFUNC void _m_mode( char *origin, char **argv, int argc, int srv );
|
2005-04-21 21:25:06 +00:00
|
|
|
EXPORTFUNC void _m_svsnick( char *origin, char **argv, int argc, int srv );
|
2005-04-22 21:34:07 +00:00
|
|
|
EXPORTFUNC void _m_setname( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_sethost( char *origin, char **argv, int argc, int srv );
|
2005-04-22 22:15:59 +00:00
|
|
|
EXPORTFUNC void _m_chghost( char *origin, char **argv, int argc, int srv );
|
2005-04-23 19:53:20 +00:00
|
|
|
EXPORTFUNC void _m_chgname( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_chgident( char *origin, char **argv, int argc, int srv );
|
2005-04-22 21:34:07 +00:00
|
|
|
EXPORTFUNC void _m_setident( char *origin, char **argv, int argc, int srv );
|
2005-04-15 21:01:26 +00:00
|
|
|
EXPORTFUNC void _m_svsjoin( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_svspart( char *origin, char **argv, int argc, int srv );
|
2005-03-12 21:30:25 +00:00
|
|
|
EXPORTFUNC void _m_globops( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_wallops( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_chatops( char *origin, char **argv, int argc, int srv );
|
2005-04-16 23:30:39 +00:00
|
|
|
EXPORTFUNC void _m_svinfo( char *origin, char **argv, int argc, int srv );
|
2005-04-19 22:33:21 +00:00
|
|
|
EXPORTFUNC void _m_eob( char *origin, char **argv, int argc, int srv );
|
2005-04-23 22:46:40 +00:00
|
|
|
EXPORTFUNC void _m_sqline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_unsqline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_zline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_unzline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_akill( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_rakill( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_kline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_unkline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_gline( char *origin, char **argv, int argc, int srv );
|
|
|
|
EXPORTFUNC void _m_remgline( char *origin, char **argv, int argc, int srv );
|
2005-03-16 22:22:20 +00:00
|
|
|
EXPORTFUNC void _m_error( char *origin, char **argv, int argc, int srv );
|
2005-11-28 23:03:05 +00:00
|
|
|
EXPORTFUNC void _m_whois( char *origin, char **argv, int argc, int srv );
|
2005-04-18 23:30:44 +00:00
|
|
|
EXPORTFUNC void _m_ignorecommand( char *origin, char **argv, int argc, int srv );
|
2005-03-12 21:30:25 +00:00
|
|
|
|
|
|
|
EXPORTFUNC void do_synch_neostats( void );
|
|
|
|
EXPORTFUNC void do_motd( const char *nick, const char *remoteserver );
|
|
|
|
EXPORTFUNC void do_admin( const char *nick, const char *remoteserver );
|
|
|
|
EXPORTFUNC void do_credits( const char *nick, const char *remoteserver );
|
|
|
|
EXPORTFUNC void do_stats( const char *nick, const char *what );
|
|
|
|
EXPORTFUNC void do_ping( const char *origin, const char *destination );
|
|
|
|
EXPORTFUNC void do_pong( const char *origin, const char *destination );
|
|
|
|
EXPORTFUNC void do_version( const char *nick, const char *remoteserver );
|
2005-10-13 22:00:05 +00:00
|
|
|
EXPORTFUNC void do_protocol( const char *origin, char **argv, int argc );
|
2004-08-27 19:47:04 +00:00
|
|
|
#define do_capab do_protocol
|
2005-10-13 22:00:05 +00:00
|
|
|
EXPORTFUNC void do_sjoin( const char *tstime, const char *channame, const char *modes, const char *sjoinnick, char **argv, int argc );
|
2005-03-12 21:30:25 +00:00
|
|
|
EXPORTFUNC void do_netinfo( const char *maxglobalcnt, const char *tsendsync, const char *prot, const char *cloak, const char *netname );
|
|
|
|
EXPORTFUNC void do_snetinfo( const char *maxglobalcnt, const char *tsendsync, const char *prot, const char *cloak, const char *netname );
|
|
|
|
EXPORTFUNC void do_join( const char *nick, const char *chanlist, const char *keys );
|
|
|
|
EXPORTFUNC void do_part( const char *nick, const char *chan, const char *reason );
|
|
|
|
EXPORTFUNC void do_nick( const char *nick, const char *hopcount, const char *TS,
|
2004-01-28 22:20:28 +00:00
|
|
|
const char *user, const char *host, const char *server,
|
|
|
|
const char *ip, const char *servicestamp, const char *modes,
|
2004-05-20 21:52:54 +00:00
|
|
|
const char *vhost, const char *realname, const char *numeric,
|
2005-03-12 21:30:25 +00:00
|
|
|
const char *smodes );
|
|
|
|
EXPORTFUNC void do_client( const char *nick, const char *hopcount, const char *TS,
|
2004-01-28 22:20:28 +00:00
|
|
|
const char *modes, const char *smodes,
|
|
|
|
const char *user, const char *host, const char *vhost,
|
2004-08-27 19:47:04 +00:00
|
|
|
const char *server, const char *servicestamp,
|
2005-03-12 21:30:25 +00:00
|
|
|
const char *ip, const char *realname );
|
|
|
|
EXPORTFUNC void do_quit( const char *target, const char *quitmsg );
|
|
|
|
EXPORTFUNC void do_kill( const char *source, const char *target, const char *killmsg );
|
|
|
|
EXPORTFUNC void do_squit( const char *name, const char *reason );
|
|
|
|
EXPORTFUNC void do_kick( const char *kickby, const char *chan, const char *kicked, const char *kickreason );
|
|
|
|
EXPORTFUNC void do_svinfo( void );
|
|
|
|
EXPORTFUNC void do_vctrl( const char *uprot, const char *nicklen, const char *modex, const char *gc, const char *netname );
|
|
|
|
EXPORTFUNC void do_smode( const char *target, const char *modes );
|
|
|
|
EXPORTFUNC void do_mode_user( const char *target, const char *modes );
|
|
|
|
EXPORTFUNC void do_mode_channel( char *origin, char **argv, int argc );
|
|
|
|
EXPORTFUNC void do_svsmode_user( const char *target, const char *modes, const char *ts );
|
2005-04-21 21:47:00 +00:00
|
|
|
EXPORTFUNC void do_svsnick( const char *oldnick, const char *newnick, const char *ts );
|
2004-01-26 23:50:52 +00:00
|
|
|
/* These are the same for now but we might need to be different in the
|
|
|
|
* future so use macros
|
|
|
|
*/
|
|
|
|
#define do_svsmode_channel do_mode_channel
|
2005-03-12 21:30:25 +00:00
|
|
|
EXPORTFUNC void do_away( const char *target, const char *reason );
|
|
|
|
EXPORTFUNC void do_vhost( const char *target, const char *vhost );
|
|
|
|
EXPORTFUNC void do_nickchange( const char *oldnick, const char *newnick, const char *ts );
|
|
|
|
EXPORTFUNC void do_topic( const char *chan, const char *owner, const char *ts, const char *topic );
|
|
|
|
EXPORTFUNC void do_server( const char *name, const char *uplink, const char *hops, const char *numeric, const char *infoline, int srv );
|
|
|
|
EXPORTFUNC void do_burst( char *origin, char **argv, int argc );
|
2005-10-04 19:55:04 +00:00
|
|
|
EXPORTFUNC void do_swhois( const char *who, const char *swhois );
|
2005-03-12 21:30:25 +00:00
|
|
|
EXPORTFUNC void do_tkl( const char *add, const char *type, const char *user, const char *host, const char *setby, const char *tsexpire, const char *tsset, const char *reason );
|
|
|
|
EXPORTFUNC void do_eos( const char *name );
|
|
|
|
EXPORTFUNC void do_setname( const char *nick, const char *realname );
|
|
|
|
EXPORTFUNC void do_sethost( const char *nick, const char *host );
|
|
|
|
EXPORTFUNC void do_setident( const char *nick, const char *ident );
|
2005-04-22 22:15:59 +00:00
|
|
|
EXPORTFUNC void do_chghost( const char *nick, const char *host );
|
2005-04-23 19:53:20 +00:00
|
|
|
EXPORTFUNC void do_chgident( const char *nick, const char *ident );
|
|
|
|
EXPORTFUNC void do_chgname( const char *nick, const char *realname );
|
2004-07-05 19:35:58 +00:00
|
|
|
|
2005-04-22 21:34:07 +00:00
|
|
|
EXPORTFUNC void do_globops( const char *origin, const char *message );
|
|
|
|
EXPORTFUNC void do_wallops( const char *origin, const char *message );
|
|
|
|
EXPORTFUNC void do_chatops( const char *origin, const char *message );
|
2005-11-28 23:03:05 +00:00
|
|
|
EXPORTFUNC void do_whois( const char *origin, const char *server, const char *target );
|
2005-03-12 22:47:01 +00:00
|
|
|
|
2004-07-05 19:35:58 +00:00
|
|
|
/* Defined in ircd specific files */
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_privmsg( const char *source, const char *target, const char *buf );
|
|
|
|
MODULEFUNC void send_notice( const char *source, const char *target, const char *buf );
|
|
|
|
MODULEFUNC void send_globops( const char *source, const char *buf );
|
|
|
|
MODULEFUNC void send_wallops( const char *source, const char *buf );
|
|
|
|
MODULEFUNC void send_numeric( const char *source, const int numeric, const char *target, const char *buf );
|
|
|
|
MODULEFUNC void send_umode( const char *source, const char *target, const char *mode );
|
|
|
|
MODULEFUNC void send_join( const char *source, const char *chan, const char *key, const unsigned long ts );
|
|
|
|
MODULEFUNC void send_sjoin( const char *source, const char *who, const char *chan, const unsigned long ts );
|
|
|
|
MODULEFUNC void send_part( const char *source, const char *chan, const char *reason );
|
|
|
|
MODULEFUNC void send_nickchange( const char *oldnick, const char *newnick, const unsigned long ts );
|
2005-04-17 21:51:47 +00:00
|
|
|
MODULEFUNC void send_cmode( const char *sourceserver, const char *sourceuser, const char *chan, const char *mode, const char *args, const unsigned long ts );
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_quit( const char *source, const char *quitmsg );
|
|
|
|
MODULEFUNC void send_kill( const char *source, const char *target, const char *reason );
|
|
|
|
MODULEFUNC void send_kick( const char *source, const char *chan, const char *target, const char *reason );
|
|
|
|
MODULEFUNC void send_invite( const char *source, const char *target, const char *chan );
|
2005-04-30 22:09:25 +00:00
|
|
|
MODULEFUNC void send_topic( const char *source, const char *channel, const char *topic );
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_svskill( const char *source, const char *target, const char *reason );
|
|
|
|
MODULEFUNC void send_svsmode( const char *source, const char *target, const char *modes );
|
|
|
|
MODULEFUNC void send_svshost( const char *source, const char *target, const char *vhost );
|
|
|
|
MODULEFUNC void send_svsjoin( const char *source, const char *target, const char *chan );
|
|
|
|
MODULEFUNC void send_svspart( const char *source, const char *target, const char *chan );
|
|
|
|
MODULEFUNC void send_svsnick( const char *source, const char *target, const char *newnick, const unsigned long ts );
|
|
|
|
MODULEFUNC void send_swhois( const char *source, const char *target, const char *swhois );
|
|
|
|
MODULEFUNC void send_smo( const char *source, const char *umodetarget, const char *msg );
|
|
|
|
MODULEFUNC void send_akill( const char *source, const char *host, const char *ident, const char *setby, const unsigned long length, const char *reason, const unsigned long ts );
|
|
|
|
MODULEFUNC void send_rakill( const char *source, const char *host, const char *ident );
|
2005-03-15 00:15:10 +00:00
|
|
|
MODULEFUNC void send_sqline( const char *source, const char *mask, const char *reason );
|
|
|
|
MODULEFUNC void send_unsqline( const char *source, const char *mask );
|
|
|
|
MODULEFUNC void send_sgline( const char *source, const char *mask, const char *reason );
|
|
|
|
MODULEFUNC void send_unsgline( const char *source, const char *mask );
|
2005-04-23 22:46:40 +00:00
|
|
|
MODULEFUNC void send_gline( const char *source, const char *mask, const char *reason );
|
|
|
|
MODULEFUNC void send_remgline( const char *source, const char *mask );
|
2005-03-15 00:15:10 +00:00
|
|
|
MODULEFUNC void send_zline( const char *source, const char *mask, const char *reason );
|
|
|
|
MODULEFUNC void send_unzline( const char *source, const char *mask );
|
2005-04-23 22:46:40 +00:00
|
|
|
MODULEFUNC void send_kline( const char *source, const char *mask, const char *reason );
|
|
|
|
MODULEFUNC void send_unkline( const char *source, const char *mask );
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_ping( const char *source, const char *reply, const char *target );
|
2007-11-16 12:56:16 +00:00
|
|
|
MODULEFUNC void send_pong( const char *reply, const char *data );
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_server( const char *source, const char *name, const int numeric, const char *infoline );
|
|
|
|
MODULEFUNC void send_squit( const char *server, const char *quitmsg );
|
|
|
|
MODULEFUNC void send_nick( const char *nick, const unsigned long ts, const char *newmode, const char *ident, const char *host, const char *server, const char *realname );
|
|
|
|
MODULEFUNC void send_server_connect( const char *name, const int numeric, const char *infoline, const char *pass, const unsigned long tsboot, const unsigned long tslink );
|
2005-04-19 21:58:26 +00:00
|
|
|
MODULEFUNC void send_netinfo( const char *source, const char *maxglobalcnt, const unsigned long ts, const int prot, const char *cloak, const char *netname );
|
|
|
|
MODULEFUNC void send_snetinfo( const char *source, const char *maxglobalcnt, const unsigned long ts, const int prot, const char *cloak, const char *netname );
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_svinfo( const int tscurrent, const int tsmin, const unsigned long tsnow );
|
2005-04-19 22:33:21 +00:00
|
|
|
MODULEFUNC void send_eob( const char *server );
|
2005-03-12 21:30:25 +00:00
|
|
|
MODULEFUNC void send_vctrl( const int uprot, const int nicklen, const int modex, const int gc, const char *netname );
|
|
|
|
MODULEFUNC void send_burst( int b );
|
|
|
|
MODULEFUNC void send_svstime( const char *source, const unsigned long ts );
|
|
|
|
MODULEFUNC void send_setname( const char *nick, const char *realname );
|
|
|
|
MODULEFUNC void send_sethost( const char *nick, const char *host );
|
|
|
|
MODULEFUNC void send_setident( const char *nick, const char *ident );
|
2005-04-23 22:46:40 +00:00
|
|
|
MODULEFUNC void send_chgname( const char *source, const char *nick, const char *realname );
|
|
|
|
MODULEFUNC void send_chghost( const char *source, const char *nick, const char *host );
|
|
|
|
MODULEFUNC void send_chgident( const char *source, const char *nick, const char *ident );
|
|
|
|
MODULEFUNC void send_stats( const char *source, const char type, const char *target );
|
|
|
|
MODULEFUNC void send_version( const char *source, const char *target );
|
2005-03-12 21:30:25 +00:00
|
|
|
|
2005-08-20 22:53:26 +00:00
|
|
|
MODULEFUNC void cloakhost( const char *host );
|
2005-03-12 21:30:25 +00:00
|
|
|
|
2005-08-20 22:53:26 +00:00
|
|
|
EXPORTFUNC void send_cmd( const char *fmt, ... )__attribute__( ( format( printf, 1, 2 ) ) ); /* 2=format 3=params */
|
2005-03-12 21:30:25 +00:00
|
|
|
|
2005-04-22 21:56:20 +00:00
|
|
|
#endif /* _PROTOCOL_H_ */
|