X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/d76ed9a966ee3d955c8ef00ecc02e643c2005e2e..639bdb1d287235b147d36acb79a0b608e5fca0af:/src/proto.h?ds=sidebyside diff --git a/src/proto.h b/src/proto.h index d95144f..fe70c2a 100644 --- a/src/proto.h +++ b/src/proto.h @@ -1,7 +1,7 @@ /* proto.h - IRC protocol output * Copyright 2000-2004 srvx Development Team * - * This file is part of srvx. + * This file is part of x3. * * srvx is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /* Warning for those looking at how this code does multi-protocol * support: It's an awful, nasty hack job. It is intended for short - * term use, not long term, since we are already developing srvx2, + * term use, not long term, since we are already developing x3, * which has much nicer interfaces that hide most of the ugly * differences between protocol dialects. */ @@ -134,6 +134,7 @@ void irc_wallchops(struct userNode *from, const char *to, const char *message); void irc_join(struct userNode *who, struct chanNode *what); void irc_invite(struct userNode *from, struct userNode *who, struct chanNode *to); void irc_mode(struct userNode *who, struct chanNode *target, const char *modes); +void irc_umode(struct userNode *target, const char *modes); void irc_kick(struct userNode *who, struct userNode *target, struct chanNode *from, const char *msg); void irc_part(struct userNode *who, struct chanNode *what, const char *reason); void irc_topic(struct userNode *who, struct chanNode *what, const char *topic); @@ -150,7 +151,7 @@ void irc_stats(struct userNode *from, struct server *target, char type); void irc_svsnick(struct userNode *from, struct userNode *target, const char *newnick); /* account maintenance */ -void irc_account(struct userNode *user, const char *stamp); +void irc_account(struct userNode *user, const char *stamp, time_t timestamp); void irc_regnick(struct userNode *user); void irc_fakehost(struct userNode *user, const char *host); @@ -169,7 +170,7 @@ void irc_numeric(struct userNode *user, unsigned int num, const char *format, .. /* stuff originally from other headers that is really protocol-specific */ int IsChannelName(const char *name); int is_valid_nick(const char *nick); -struct userNode *AddService(const char *nick, const char *desc, const char *hostname); +struct userNode *AddService(const char *nick, const char *modes, const char *desc, const char *hostname); struct userNode *AddClone(const char *nick, const char *ident, const char *hostname, const char *desc); struct server* AddServer(struct server* uplink, const char *name, int hops, time_t boot, time_t link, const char *numeric, const char *description); void DelServer(struct server* serv, int announce, const char *message); @@ -199,12 +200,13 @@ struct mod_chanmode { union { struct modeNode *member; const char *hostmask; - }; + } u; } args[1]; }; #define MCP_ALLOW_OVB 0x0001 /* allow op, voice, ban manipulation */ #define MCP_FROM_SERVER 0x0002 /* parse as from a server */ #define MCP_KEY_FREE 0x0004 /* -k without a key argument */ +#define MCP_REGISTERED 0x0008 /* chan is already registered; do not allow changes to MODE_REGISTERED */ #define MC_ANNOUNCE 0x0100 /* send a mod_chanmode() change out */ #define MC_NOTIFY 0x0200 /* make local callbacks to announce */ #ifdef NDEBUG @@ -233,7 +235,7 @@ int irc_make_chanmode(struct chanNode *chan, char *out); #define GENMASK_USENICK 2 #define GENMASK_OMITNICK 4 /* Hurray for Kevin! */ #define GENMASK_BYIP 8 -#define GENMASK_SRVXMASK 16 +#define GENMASK_X3MASK 16 #define GENMASK_NO_HIDING 128 char *generate_hostmask(struct userNode *user, int options);