#include "snomask.h"
#include "match.h"
#include "ircd.h"
+#include "privilege.h"
/* other structs */
struct Blacklist;
{
rb_dlink_list channel; /* chain of channel pointer blocks */
rb_dlink_list invited; /* chain of invite pointer blocks */
- char *away; /* pointer to away message */
int refcnt; /* Number of times this block is referenced */
char suser[NICKLEN+1];
+ struct Dictionary *metadata;
};
struct Server
double out_ratio;
};
+struct MetadataEntry
+{
+ char key[NICKLEN+1];
+ char value[TOPICLEN];
+};
+
struct Client
{
rb_dlink_node node;
local_user_t *localClient;
pre_client_t *preClient;
+
+ time_t large_ctcp_sent; /* ctcp to large group sent, relax flood checks */
};
struct LocalUser
applicable to this client */
struct _ssl_ctl *ssl_ctl; /* which ssl daemon we're associate with */
+ struct _ssl_ctl *z_ctl; /* second ctl for ssl+zlib */
uint32_t localflags;
struct ZipStats *zipstats; /* zipstats */
uint16_t cork_count; /* used for corking/uncorking connections */
struct ev_entry *event; /* used for associated events */
+
+ struct PrivilegeSet *privset; /* privset... */
};
struct PreClient
rb_dlink_list dnsbl_queries; /* list of struct BlacklistClient * */
struct Blacklist *dnsbl_listed; /* first dnsbl where it's listed */
+
+ struct rb_sockaddr_storage lip; /* address of our side of the connection */
};
struct ListClient
*/
};
-struct exit_client_hook
-{
- struct Client *client_p;
- char exit_message[TOPICLEN];
-};
-
/*
* status macros.
*/
#define FLAGS_SERVICE 0x200000 /* network service */
#define FLAGS_TGCHANGE 0x400000 /* we're allowed to clear something */
#define FLAGS_DYNSPOOF 0x800000 /* dynamic spoof, only opers see ip */
-#define FLAGS_EXUNKNOWN 0x1000000 /* too many unknowns exit.. */
/* flags for local clients, this needs stuff moved from above to here at some point */
#define LFLAGS_SSL 0x00000001
#define IsDynSpoof(x) ((x)->flags & FLAGS_DYNSPOOF)
#define SetDynSpoof(x) ((x)->flags |= FLAGS_DYNSPOOF)
#define ClearDynSpoof(x) ((x)->flags &= ~FLAGS_DYNSPOOF)
-#define IsExUnknown(x) ((x)->flags & FLAGS_EXUNKNOWN)
-#define SetExUnknown(x) ((x)->flags |= FLAGS_EXUNKNOWN)
/* local flags */
void allocate_away(struct Client *);
void free_away(struct Client *);
+const char *get_metadata(struct Client *, const char *);
+void set_metadata(struct Client *, const char *, const char *);
+void delete_metadata(struct Client *, const char *);
+
#endif /* INCLUDED_client_h */