X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/9b24cbdecc72337e825764f39cdf59ca23f41788..3ef1213be4da2d49c21f544cd6a3277b10b26399:/include/s_newconf.h diff --git a/include/s_newconf.h b/include/s_newconf.h index b23c6364..4decc5a3 100644 --- a/include/s_newconf.h +++ b/include/s_newconf.h @@ -140,14 +140,13 @@ extern void cluster_generic(struct Client *, const char *, int cltype, #define OPER_ENCRYPTED 0x00001 #define OPER_NEEDSSL 0x80000 -/* 0x400000 and above are in client.h */ -#define OPER_FLAGS 0 /* no oper privs in Client.flags2/oper_conf.flags currently */ +#define OPER_FLAGS 0 /* no oper privs in Client.flags/oper_conf.flags currently */ #define IsOperConfEncrypted(x) ((x)->flags & OPER_ENCRYPTED) #define IsOperConfNeedSSL(x) ((x)->flags & OPER_NEEDSSL) -#define HasPrivilege(x, y) ((x)->localClient != NULL && (x)->localClient->privset != NULL && privilegeset_in_set((x)->localClient->privset, (y))) +#define HasPrivilege(x, y) ((x)->user != NULL && (x)->user->privset != NULL && privilegeset_in_set((x)->user->privset, (y))) #define IsOperGlobalKill(x) (HasPrivilege((x), "oper:global_kill")) #define IsOperLocalKill(x) (HasPrivilege((x), "oper:local_kill")) @@ -167,6 +166,8 @@ extern void cluster_generic(struct Client *, const char *, int cltype, #define IsOperRemoteBan(x) (HasPrivilege((x), "oper:remoteban")) #define IsOperMassNotice(x) (HasPrivilege((x), "oper:mass_notice")) +#define SeesOper(target, source) (IsOper((target)) && ((!ConfigFileEntry.hide_opers && !HasPrivilege((target), "oper:hidden")) || IsOper((source)))) + extern struct oper_conf *make_oper_conf(void); extern void free_oper_conf(struct oper_conf *); extern void clear_oper_conf(void); @@ -179,7 +180,11 @@ extern const char *get_oper_privs(int flags); struct server_conf { char *name; - char *host; + char *connect_host; + struct rb_sockaddr_storage connect4; + uint16_t dns_query_connect4; + struct rb_sockaddr_storage connect6; + uint16_t dns_query_connect6; char *passwd; char *spasswd; char *certfp; @@ -189,30 +194,34 @@ struct server_conf time_t hold; int aftype; - struct rb_sockaddr_storage my_ipnum; + char *bind_host; + struct rb_sockaddr_storage bind4; + uint16_t dns_query_bind4; + struct rb_sockaddr_storage bind6; + uint16_t dns_query_bind6; char *class_name; struct Class *class; rb_dlink_node node; - - uint16_t dns_query; }; #define SERVER_ILLEGAL 0x0001 -#define SERVER_VHOSTED 0x0002 #define SERVER_ENCRYPTED 0x0004 #define SERVER_COMPRESSED 0x0008 #define SERVER_TB 0x0010 #define SERVER_AUTOCONN 0x0020 #define SERVER_SSL 0x0040 +#define SERVER_NO_EXPORT 0x0080 +#define SERVER_SCTP 0x0100 #define ServerConfIllegal(x) ((x)->flags & SERVER_ILLEGAL) -#define ServerConfVhosted(x) ((x)->flags & SERVER_VHOSTED) #define ServerConfEncrypted(x) ((x)->flags & SERVER_ENCRYPTED) #define ServerConfCompressed(x) ((x)->flags & SERVER_COMPRESSED) #define ServerConfTb(x) ((x)->flags & SERVER_TB) #define ServerConfAutoconn(x) ((x)->flags & SERVER_AUTOCONN) +#define ServerConfSCTP(x) ((x)->flags & SERVER_SCTP) #define ServerConfSSL(x) ((x)->flags & SERVER_SSL) +#define ServerConfNoExport(x) ((x)->flags & SERVER_NO_EXPORT) extern struct server_conf *make_server_conf(void); extern void free_server_conf(struct server_conf *);