* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
- *
- * $Id: client.h 3446 2007-05-14 22:21:16Z jilles $
*/
#ifndef INCLUDED_client_h
#define INCLUDED_client_h
-#include "config.h"
-
-#if !defined(CONFIG_RATBOX_LEVEL_1)
-#error Incorrect config.h for this revision of ircd.
-#endif
+#include "defaults.h"
#include "ircd_defs.h"
#include "channel.h"
struct Client *servptr; /* Points to server this Client is on */
struct Client *from; /* == self, if Local Client, *NEVER* NULL! */
- struct Whowas *whowas; /* Pointers to whowas structs */
+ rb_dlink_list whowas_clist;
+
time_t tsinfo; /* TS on the nick, SVINFO on server */
unsigned int umodes; /* opers, normal users subset */
unsigned int flags; /* client flags */
struct LocalUser
{
- rb_dlink_node tnode; /* This is the node for the local list type the client is on*/
+ rb_dlink_node tnode; /* This is the node for the local list type the client is on */
+ rb_dlink_list connids; /* This is the list of connids to free */
+
/*
* The following fields are allocated only for local clients
* (directly connected to *this* server with a socket.
time_t next_away; /* Don't allow next away before... */
time_t last;
- uint32_t connid;
/* clients allowed to talk through +g */
rb_dlink_list allow_list;
struct _ssl_ctl *ssl_ctl; /* which ssl daemon we're associate with */
struct _ssl_ctl *z_ctl; /* second ctl for ssl+zlib */
- uint32_t zconnid;
uint32_t localflags;
struct ZipStats *zipstats; /* zipstats */
uint16_t cork_count; /* used for corking/uncorking connections */
#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 */
+#define FLAGS_CLICAP_DATA 0x2000000 /* requested CAP LS 302 */
/* flags for local clients, this needs stuff moved from above to here at some point */
#define LFLAGS_SSL 0x00000001
UMODE_WALLOP | UMODE_LOCOPS)
#define DEFAULT_OPER_SNOMASK SNO_GENERAL
-#define CLICAP_MULTI_PREFIX 0x0001
-#define CLICAP_SASL 0x0002
-#define CLICAP_ACCOUNT_NOTIFY 0x0004
-#define CLICAP_EXTENDED_JOIN 0x0008
-#define CLICAP_AWAY_NOTIFY 0x0010
-#define CLICAP_TLS 0x0020
-#define CLICAP_USERHOST_IN_NAMES 0x0040
-#define CLICAP_CAP_NOTIFY 0x0080
-#define CLICAP_CHGHOST 0x0100
-
/*
* flags macros.
*/
void allocate_away(struct Client *);
void free_away(struct Client *);
+uint32_t connid_get(struct Client *client_p);
+void connid_put(uint32_t id);
+void client_release_connids(struct Client *client_p);
+
#endif /* INCLUDED_client_h */