extern void detach_server_conf(struct Client *);
extern void set_server_conf_autoconn(struct Client *source_p, const char *name,
int newval);
+extern void disable_server_conf_autoconn(const char *name);
extern struct ConfItem *find_xline(const char *, int);
#include "numeric.h"
#include "send.h"
#include "s_conf.h"
+#include "s_newconf.h"
#include "logger.h"
#include "msg.h"
#include "parse.h"
log_client_name(source_p, SHOW_IP), (long) rb_current_time(), (long) theirtime, deltat);
rb_snprintf(squitreason, sizeof squitreason, "Excessive TS delta (my TS=%ld, their TS=%ld, delta=%d)",
(long) rb_current_time(), (long) theirtime, deltat);
+ disable_server_conf_autoconn(source_p->name);
exit_client(source_p, source_p, source_p, squitreason);
return 0;
}
sendto_one_notice(source_p, ":Can't find %s", name);
}
+void
+disable_server_conf_autoconn(const char *name)
+{
+ struct server_conf *server_p;
+
+ server_p = find_server_conf(name);
+ if(server_p != NULL && server_p->flags & SERVER_AUTOCONN)
+ {
+ server_p->flags &= ~SERVER_AUTOCONN;
+
+ sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ "Disabling AUTOCONN for %s because of error",
+ name);
+ ilog(L_SERVER, "Disabling AUTOCONN for %s because of error",
+ name);
+ }
+}
+
struct ConfItem *
find_xline(const char *gecos, int counter)
{