1
0
mirror of https://github.com/anope/anope.git synced 2026-07-07 08:53:11 +02:00

Made gettext work on most OSs. Tested on Debian, FreeBSD, Gentoo, and Windows.

Added a search path option to the Config script for cmake to use when finding libraries for modules or for gettext.
Fixed m_mysql and m_ssl to work under Windows, made the Windows Config
program remember the last used options, and fixed Windows release builds.
This commit is contained in:
Adam
2010-10-30 19:41:13 -04:00
parent a7e5d51616
commit fb9f41b3e5
29 changed files with 315 additions and 128 deletions
+1 -1
View File
@@ -68,7 +68,7 @@ foreach(MODULE_FOLDER ${MODULES_FOLDERS})
endif(MSVC)
# Generate the module and set it's linker flags, also set it to depend on the main Anope executable to be built beforehand
add_library(${SO} MODULE ${SRC})
set_target_properties(${SO} PROPERTIES LINKER_LANGUAGE CXX PREFIX "" SUFFIX "" LINK_FLAGS "${TEMP_LDFLAGS}")
set_target_properties(${SO} PROPERTIES LINKER_LANGUAGE CXX PREFIX "" SUFFIX "" LINK_FLAGS "${TEMP_LDFLAGS} /nodefaultlib:\"libcmt.lib\"")
add_dependencies(${SO} ${PROGRAM_NAME})
# For Windows only, have the module link to the export library of Anope as well as the wsock32 library (most of the modules probably don't need this, but this is to be on the safe side), also set it's version
if(WIN32)
+1 -1
View File
@@ -1429,7 +1429,7 @@ static void SaveDatabases()
for (std::vector<Anope::string>::iterator it = nc->access.begin(), it_end = nc->access.end(); it != it_end; ++it)
{
me->RunQuery("INSERT INTO `anope_ns_access` (display, access) VALUES(" + me->Escape(nc->display) + ", " + me->Escape(*it) + ")");
me->RunQuery("INSERT INTO `anope_ns_access` (display, access) VALUES('" + me->Escape(nc->display) + "', '" + me->Escape(*it) + "')");
}
for (unsigned j = 0, end = nc->memos.memos.size(); j < end; ++j)
+12 -12
View File
@@ -24,21 +24,21 @@ struct QueryRequest
/* The connection to the database */
MySQLService *service;
/* The interface to use once we have the result to send the data back */
SQLInterface *interface;
SQLInterface *sqlinterface;
/* The actual query */
Anope::string query;
QueryRequest(MySQLService *s, SQLInterface *i, const Anope::string &q) : service(s), interface(i), query(q) { }
QueryRequest(MySQLService *s, SQLInterface *i, const Anope::string &q) : service(s), sqlinterface(i), query(q) { }
};
struct QueryResult
{
/* The interface to send the data back on */
SQLInterface *interface;
SQLInterface *sqlinterface;
/* The result */
SQLResult result;
QueryResult(SQLInterface *i, SQLResult &r) : interface(i), result(r) { }
QueryResult(SQLInterface *i, SQLResult &r) : sqlinterface(i), result(r) { }
};
/** A MySQL result
@@ -255,7 +255,7 @@ class ModuleSQL : public Module
{
QueryRequest &r = this->QueryRequests[i - 1];
if (r.interface && r.interface->owner == m)
if (r.sqlinterface && r.sqlinterface->owner == m)
{
if (i == 1)
{
@@ -290,8 +290,8 @@ MySQLService::~MySQLService()
if (r.service == this)
{
if (r.interface)
r.interface->OnError(SQLResult("", "SQL Interface is going away"));
if (r.sqlinterface)
r.sqlinterface->OnError(SQLResult("", "SQL Interface is going away"));
me->QueryRequests.erase(me->QueryRequests.begin() + i - 1);
}
}
@@ -377,8 +377,8 @@ void DispatcherThread::Run()
this->Lock();
if (!me->QueryRequests.empty() && me->QueryRequests.front().query == r.query)
{
if (r.interface)
me->FinishedRequests.push_back(QueryResult(r.interface, sresult));
if (r.sqlinterface)
me->FinishedRequests.push_back(QueryResult(r.sqlinterface, sresult));
me->QueryRequests.pop_front();
}
}
@@ -401,13 +401,13 @@ void MySQLPipe::OnNotify()
{
const QueryResult &qr = *it;
if (!qr.interface)
if (!qr.sqlinterface)
throw SQLException("NULL qr.interface in MySQLPipe::OnNotify() ?");
if (qr.result.GetError().empty())
qr.interface->OnResult(qr.result);
qr.sqlinterface->OnResult(qr.result);
else
qr.interface->OnError(qr.result);
qr.sqlinterface->OnError(qr.result);
}
me->FinishedRequests.clear();