#define HOSTIPLEN 53 /* sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255.ipv6") */
#define PASSWDLEN 128
#define CIPHERKEYLEN 64 /* 512bit */
-#define CLIENT_BUFSIZE 512 /* must be at least 512 bytes */
#define IDLEN 10
char *away; /* pointer to away message */
int refcnt; /* Number of times this block is referenced */
+ char *opername; /* name of operator{} block being used or tried (challenge) */
+ struct PrivilegeSet *privset;
+
char suser[NICKLEN+1];
};
unsigned long serial; /* used to enforce 1 send per nick */
/* client->name is the unique name for a client nick or host */
- char name[HOSTLEN + 1];
+ char name[NAMELEN + 1];
/*
* client->username is the username from ident or the USER message,
*/
char *passwd;
char *auth_user;
- char *opername; /* name of operator{} block being used or tried (challenge) */
char *challenge;
char *fullcaps;
char *cipher_string;
*/
int sent_parsed; /* how many messages we've parsed in this second */
time_t last_knock; /* time of last knock */
- unsigned long random_ping;
+ uint32_t random_ping;
/* target change stuff */
/* targets we're aware of (fnv32(use_id(target_p))):
uint16_t cork_count; /* used for corking/uncorking connections */
struct ev_entry *event; /* used for associated events */
- struct PrivilegeSet *privset; /* privset... */
-
char sasl_agent[IDLEN];
unsigned char sasl_out;
unsigned char sasl_complete;
struct AuthClient auth;
struct rb_sockaddr_storage lip; /* address of our side of the connection */
+
+ char id[IDLEN]; /* UID/SID, unique on the network (unverified) */
};
struct ListClient
#define LFLAGS_SSL 0x00000001
#define LFLAGS_FLUSH 0x00000002
#define LFLAGS_CORK 0x00000004
+#define LFLAGS_SCTP 0x00000008
/* umodes, settable flags */
/* lots of this moved to snomask -- jilles */
#define SetFlush(x) ((x)->localClient->localflags |= LFLAGS_FLUSH)
#define ClearFlush(x) ((x)->localClient->localflags &= ~LFLAGS_FLUSH)
+#define IsSCTP(x) ((x)->localClient->localflags & LFLAGS_SCTP)
+#define SetSCTP(x) ((x)->localClient->localflags |= LFLAGS_SCTP)
+#define ClearSCTP(x) ((x)->localClient->localflags &= ~LFLAGS_SCTP)
+
/* oper flags */
#define MyOper(x) (MyConnect(x) && IsOper(x))
#define SHOW_IP 1
#define MASK_IP 2
+enum
+{
+ D_LINED,
+ K_LINED
+};
+
extern void check_banned_lines(void);
-extern void check_klines_event(void *unused);
extern void check_klines(void);
+extern void check_one_kline(struct ConfItem *kline);
extern void check_dlines(void);
extern void check_xlines(void);
extern void resv_nick_fnc(const char *mask, const char *reason, int temp_time);
extern void init_client(void);
extern struct Client *make_client(struct Client *from);
extern void free_pre_client(struct Client *client);
-extern void free_client(struct Client *client);
+extern void notify_banned_client(struct Client *, struct ConfItem *, int ban);
extern int exit_client(struct Client *, struct Client *, struct Client *, const char *);
extern void error_exit_client(struct Client *, int);