Add class::max_autoconn configuration
This commit is contained in:
parent
a7bd528f61
commit
7c7065b07e
4 changed files with 12 additions and 3 deletions
|
@ -290,14 +290,14 @@ class "server" {
|
||||||
*/
|
*/
|
||||||
connectfreq = 5 minutes;
|
connectfreq = 5 minutes;
|
||||||
|
|
||||||
/* max number: the amount of servers to autoconnect to. if the number
|
/* max_autoconn: the amount of servers to autoconnect to. if the number
|
||||||
* of servers in the class is or exceeds this, no more servers in the
|
* of servers in the class is or exceeds this, no more servers in the
|
||||||
* class are autoconnected. oper initiated connects are unaffected.
|
* class are autoconnected. oper initiated connects are unaffected.
|
||||||
* this should usually be set to either 0 or 1. (autoconnecting from
|
* this should usually be set to either 0 or 1. (autoconnecting from
|
||||||
* hubs to leaves may cause leaves to function as hubs by having
|
* hubs to leaves may cause leaves to function as hubs by having
|
||||||
* multiple servers connected to them.)
|
* multiple servers connected to them.)
|
||||||
*/
|
*/
|
||||||
max_number = 1;
|
max_autoconn = 1;
|
||||||
|
|
||||||
/* sendq: servers need a higher sendq as they are sent more data */
|
/* sendq: servers need a higher sendq as they are sent more data */
|
||||||
sendq = 2 megabytes;
|
sendq = 2 megabytes;
|
||||||
|
|
|
@ -34,6 +34,7 @@ struct Class
|
||||||
struct Class *next;
|
struct Class *next;
|
||||||
char *class_name;
|
char *class_name;
|
||||||
int max_total;
|
int max_total;
|
||||||
|
int max_autoconn;
|
||||||
int max_local;
|
int max_local;
|
||||||
int max_global;
|
int max_global;
|
||||||
int max_ident;
|
int max_ident;
|
||||||
|
@ -57,6 +58,7 @@ extern struct Class *default_class;
|
||||||
#define MaxGlobal(x) ((x)->max_global)
|
#define MaxGlobal(x) ((x)->max_global)
|
||||||
#define MaxIdent(x) ((x)->max_ident)
|
#define MaxIdent(x) ((x)->max_ident)
|
||||||
#define MaxUsers(x) ((x)->max_total)
|
#define MaxUsers(x) ((x)->max_total)
|
||||||
|
#define MaxAutoconn(x) ((x)->max_autoconn)
|
||||||
#define PingFreq(x) ((x)->ping_freq)
|
#define PingFreq(x) ((x)->ping_freq)
|
||||||
#define MaxSendq(x) ((x)->max_sendq)
|
#define MaxSendq(x) ((x)->max_sendq)
|
||||||
#define CurrUsers(x) ((x)->total)
|
#define CurrUsers(x) ((x)->total)
|
||||||
|
|
|
@ -825,6 +825,12 @@ conf_set_class_max_number(void *data)
|
||||||
yy_class->max_total = *(unsigned int *) data;
|
yy_class->max_total = *(unsigned int *) data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
conf_set_class_max_autoconn(void *data)
|
||||||
|
{
|
||||||
|
yy_class->max_autoconn = *(unsigned int *) data;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
conf_set_class_sendq(void *data)
|
conf_set_class_sendq(void *data)
|
||||||
{
|
{
|
||||||
|
@ -2689,6 +2695,7 @@ static struct ConfEntry conf_class_table[] =
|
||||||
{ "number_per_ident", CF_INT, conf_set_class_number_per_ident, 0, NULL },
|
{ "number_per_ident", CF_INT, conf_set_class_number_per_ident, 0, NULL },
|
||||||
{ "connectfreq", CF_TIME, conf_set_class_connectfreq, 0, NULL },
|
{ "connectfreq", CF_TIME, conf_set_class_connectfreq, 0, NULL },
|
||||||
{ "max_number", CF_INT, conf_set_class_max_number, 0, NULL },
|
{ "max_number", CF_INT, conf_set_class_max_number, 0, NULL },
|
||||||
|
{ "max_autoconn", CF_INT, conf_set_class_max_autoconn, 0, NULL },
|
||||||
{ "sendq", CF_TIME, conf_set_class_sendq, 0, NULL },
|
{ "sendq", CF_TIME, conf_set_class_sendq, 0, NULL },
|
||||||
{ "\0", 0, NULL, 0, NULL }
|
{ "\0", 0, NULL, 0, NULL }
|
||||||
};
|
};
|
||||||
|
|
|
@ -297,7 +297,7 @@ try_connections(void *unused)
|
||||||
*/
|
*/
|
||||||
client_p = find_server(NULL, tmp_p->name);
|
client_p = find_server(NULL, tmp_p->name);
|
||||||
|
|
||||||
if(!client_p && (CurrUsers(cltmp) < MaxUsers(cltmp)) && !connecting)
|
if(!client_p && (CurrUsers(cltmp) < MaxAutoconn(cltmp)) && !connecting)
|
||||||
{
|
{
|
||||||
server_p = tmp_p;
|
server_p = tmp_p;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue