mirror of
https://github.com/anope/anope.git
synced 2026-06-17 01:24:46 +02:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3acf74483c | |||
| a3ec8329f4 | |||
| 31bc597c81 | |||
| 2de0dddb1c | |||
| 41ea346551 | |||
| 439ad3e736 | |||
| 8105607257 | |||
| ccc088d946 | |||
| 8bb83f6b1a | |||
| da99a53dfa | |||
| a9e9ac32a0 | |||
| 05e6df23a2 | |||
| 3f9fc23270 | |||
| afe87bf693 |
@@ -109,10 +109,9 @@ module
|
||||
/*
|
||||
* The length of time before a channel registration expires.
|
||||
*
|
||||
* This directive is optional, but recommended.
|
||||
* If not set, the default is 14 days.
|
||||
* This directive is optional. If not set, the default is never.
|
||||
*/
|
||||
expire = 14d
|
||||
#expire = 90d
|
||||
|
||||
/*
|
||||
* The maximum number of entries on a channel's access list.
|
||||
|
||||
+1
-6
@@ -259,7 +259,7 @@ serverinfo
|
||||
* - hybrid
|
||||
* - inspircd12
|
||||
* - inspircd20
|
||||
* - inspircd3
|
||||
* - inspircd3 (for 3.x and 4.x)
|
||||
* - ngircd
|
||||
* - plexus
|
||||
* - ratbox
|
||||
@@ -1153,11 +1153,6 @@ module
|
||||
* This is only useful with very large databases, with hundreds
|
||||
* of thousands of objects, that have a noticeable delay from
|
||||
* writing databases.
|
||||
*
|
||||
* If your database is large enough cause a noticeable delay when
|
||||
* saving you should consider a more powerful alternative such
|
||||
* as db_sql or db_redis, which incrementally update their
|
||||
* databases asynchronously in real time.
|
||||
*/
|
||||
fork = no
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ serverinfo
|
||||
* - hybrid
|
||||
* - inspircd12
|
||||
* - inspircd20
|
||||
* - inspircd3
|
||||
* - inspircd3 (for 3.x and 4.x)
|
||||
* - ngircd
|
||||
* - plexus
|
||||
* - ratbox
|
||||
|
||||
+24
-3
@@ -1,6 +1,27 @@
|
||||
Anope Version 2.0.16-git
|
||||
------------------------
|
||||
No significant changes.
|
||||
Anope Version 2.0.16
|
||||
--------------------
|
||||
Added a workaround for users matching expired sqlines.
|
||||
Fixed a copy/paste error in webcpanel.
|
||||
Fixed a crash in db_flatfile caused by trying to serialize data without a type.
|
||||
Fixed duplicate messages when synconset/syncongroup is set.
|
||||
Fixed expiring channel suspensions.
|
||||
Fixed expiring forbids.
|
||||
Fixed expiring nick suspensions.
|
||||
Fixed feature detection on InspIRCd.
|
||||
Fixed InspIRCd account cloaks causing CHGHOST spam when a user also has a services vhost.
|
||||
Fixed joining users to channels with a key set on InspIRCd.
|
||||
Fixed logging users out fully when their nick gets suspended.
|
||||
Fixed marking boolean columns in SQL as TEXT instead of INT.
|
||||
Fixed matching extbans on InspIRCd and implement missing matchers.
|
||||
Fixed operserv/sqline expiry on UnrealIRCd
|
||||
Fixed respecting --noexpire in cs_suspend and ns_suspend.
|
||||
Fixed sending emails to nicks ending with a backslash.
|
||||
Fixed sending SVSTOPIC when topiclock is loaded on InspIRCd.
|
||||
Fixed some SQL tables taking up too much space on disk.
|
||||
Fixed the default config for channel suspensions.
|
||||
Fixed the TIME message on InspIRCd.
|
||||
Fixed trying to escape SQL data when not connected to MySQL.
|
||||
Fixed {ldap,sql}_authentication creating zombie accounts on expiry.
|
||||
|
||||
Anope Version 2.0.15
|
||||
--------------------
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
Anope Version 2.0.16-git
|
||||
------------------------
|
||||
Anope Version 2.0.16
|
||||
--------------------
|
||||
No significant changes.
|
||||
|
||||
Anope Version 2.0.15
|
||||
|
||||
@@ -190,6 +190,7 @@ class SerializableExtensibleItem<bool> : public PrimitiveExtensibleItem<bool>
|
||||
|
||||
void ExtensibleSerialize(const Extensible *e, const Serializable *s, Serialize::Data &data) const anope_override
|
||||
{
|
||||
data.SetType(this->name, Serialize::Data::DT_INT);
|
||||
data[this->name] << true;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,17 +51,16 @@ struct KickerDataImpl : KickerData
|
||||
if (kd == NULL)
|
||||
return;
|
||||
|
||||
data["kickerdata:amsgs"] << kd->amsgs;
|
||||
data["kickerdata:badwords"] << kd->badwords;
|
||||
data["kickerdata:bolds"] << kd->bolds;
|
||||
data["kickerdata:caps"] << kd->caps;
|
||||
data["kickerdata:colors"] << kd->colors;
|
||||
data["kickerdata:flood"] << kd->flood;
|
||||
data["kickerdata:italics"] << kd->italics;
|
||||
data["kickerdata:repeat"] << kd->repeat;
|
||||
data["kickerdata:reverses"] << kd->reverses;
|
||||
data["kickerdata:underlines"] << kd->underlines;
|
||||
|
||||
data.SetType("kickerdata:amsgs", Serialize::Data::DT_INT); data["kickerdata:amsgs"] << kd->amsgs;
|
||||
data.SetType("kickerdata:badwords", Serialize::Data::DT_INT); data["kickerdata:badwords"] << kd->badwords;
|
||||
data.SetType("kickerdata:bolds", Serialize::Data::DT_INT); data["kickerdata:bolds"] << kd->bolds;
|
||||
data.SetType("kickerdata:caps", Serialize::Data::DT_INT); data["kickerdata:caps"] << kd->caps;
|
||||
data.SetType("kickerdata:colors", Serialize::Data::DT_INT); data["kickerdata:colors"] << kd->colors;
|
||||
data.SetType("kickerdata:flood", Serialize::Data::DT_INT); data["kickerdata:flood"] << kd->flood;
|
||||
data.SetType("kickerdata:italics", Serialize::Data::DT_INT); data["kickerdata:italics"] << kd->italics;
|
||||
data.SetType("kickerdata:repeat", Serialize::Data::DT_INT); data["kickerdata:repeat"] << kd->repeat;
|
||||
data.SetType("kickerdata:reverses", Serialize::Data::DT_INT); data["kickerdata:reverses"] << kd->reverses;
|
||||
data.SetType("kickerdata:underlines", Serialize::Data::DT_INT); data["kickerdata:underlines"] << kd->underlines;
|
||||
data.SetType("capsmin", Serialize::Data::DT_INT); data["capsmin"] << kd->capsmin;
|
||||
data.SetType("capspercent", Serialize::Data::DT_INT); data["capspercent"] << kd->capspercent;
|
||||
data.SetType("floodlines", Serialize::Data::DT_INT); data["floodlines"] << kd->floodlines;
|
||||
|
||||
@@ -127,6 +127,8 @@ class CommandNSSuspend : public Command
|
||||
User *u2 = User::Find(na2->nick, true);
|
||||
if (u2)
|
||||
{
|
||||
IRCD->SendLogout(u2);
|
||||
u2->RemoveMode(source.service, "REGISTERED");
|
||||
u2->Logout();
|
||||
if (nickserv)
|
||||
nickserv->Collide(u2, na2);
|
||||
|
||||
@@ -339,9 +339,14 @@ Result MySQLService::RunQuery(const Query &query)
|
||||
{
|
||||
this->Lock.Lock();
|
||||
|
||||
Anope::string real_query = this->BuildQuery(query);
|
||||
if (!this->CheckConnection())
|
||||
{
|
||||
this->Lock.Unlock();
|
||||
return MySQLResult(query, query.query, mysql_error(this->sql));
|
||||
}
|
||||
|
||||
if (this->CheckConnection() && !mysql_real_query(this->sql, real_query.c_str(), real_query.length()))
|
||||
Anope::string real_query = this->BuildQuery(query);
|
||||
if (!mysql_real_query(this->sql, real_query.c_str(), real_query.length()))
|
||||
{
|
||||
MYSQL_RES *res = mysql_store_result(this->sql);
|
||||
unsigned int id = mysql_insert_id(this->sql);
|
||||
@@ -395,11 +400,11 @@ std::vector<Query> MySQLService::CreateTable(const Anope::string &table, const D
|
||||
|
||||
query_text += ", `" + it->first + "` ";
|
||||
if (data.GetType(it->first) == Serialize::Data::DT_INT)
|
||||
query_text += "int(11)";
|
||||
query_text += "int";
|
||||
else
|
||||
query_text += "text";
|
||||
}
|
||||
query_text += ", PRIMARY KEY (`id`), KEY `timestamp_idx` (`timestamp`))";
|
||||
query_text += ", PRIMARY KEY (`id`), KEY `timestamp_idx` (`timestamp`)) ROW_FORMAT=DYNAMIC";
|
||||
queries.push_back(query_text);
|
||||
}
|
||||
else
|
||||
@@ -412,7 +417,7 @@ std::vector<Query> MySQLService::CreateTable(const Anope::string &table, const D
|
||||
|
||||
Anope::string query_text = "ALTER TABLE `" + table + "` ADD `" + it->first + "` ";
|
||||
if (data.GetType(it->first) == Serialize::Data::DT_INT)
|
||||
query_text += "int(11)";
|
||||
query_text += "int";
|
||||
else
|
||||
query_text += "text";
|
||||
|
||||
|
||||
@@ -394,9 +394,12 @@ class InspIRCd3Proto : public IRCDProto
|
||||
SendAddLine("Z", x->GetHost(), timeleft, x->by, x->GetReason());
|
||||
}
|
||||
|
||||
void SendSVSJoin(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &other) anope_override
|
||||
void SendSVSJoin(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &key) anope_override
|
||||
{
|
||||
UplinkSocket::Message(source) << "SVSJOIN " << u->GetUID() << " " << chan;
|
||||
if (key.empty())
|
||||
UplinkSocket::Message(source) << "SVSJOIN " << u->GetUID() << " " << chan;
|
||||
else
|
||||
UplinkSocket::Message(source) << "SVSJOIN " << u->GetUID() << " " << chan << " :" << key;
|
||||
}
|
||||
|
||||
void SendSVSPart(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string ¶m) anope_override
|
||||
@@ -442,6 +445,7 @@ class InspIRCd3Proto : public IRCDProto
|
||||
if (na->nc->HasExt("UNCONFIRMED"))
|
||||
return;
|
||||
|
||||
IRCD->SendVhost(u, na->GetVhostIdent(), na->GetVhostHost());
|
||||
UplinkSocket::Message(Me) << "METADATA " << u->GetUID() << " accountid :" << na->nc->GetId();
|
||||
UplinkSocket::Message(Me) << "METADATA " << u->GetUID() << " accountname :" << na->nc->display;
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,4 +3,4 @@
|
||||
VERSION_MAJOR=2
|
||||
VERSION_MINOR=0
|
||||
VERSION_PATCH=16
|
||||
VERSION_EXTRA="-git"
|
||||
VERSION_EXTRA=""
|
||||
|
||||
Reference in New Issue
Block a user