Fixed MySQL

This commit is contained in:
WolverinDEV 2020-02-16 12:04:23 +01:00
parent 371ca06bfa
commit ec1205c313
5 changed files with 70 additions and 11 deletions

View File

@ -53,7 +53,7 @@ find_package(Boringssl REQUIRED)
find_package(ThreadPool REQUIRED)
find_package(CXXTerminal REQUIRED)
find_package(StringVariable REQUIRED)
find_package(mysqlclient REQUIRED)
find_package(yaml-cpp REQUIRED)
find_package(jsoncpp REQUIRED)
find_package(Ed25519 REQUIRED)
@ -90,7 +90,6 @@ include_directories(${LIBEVENT_INCLUDE_DIRS})
include_directories(${StringVariable_INCLUDE_DIR})
add_definitions(-DINET -DINET6)
include_directories(/usr/local/mysql/include/)
add_subdirectory(shared/)
add_subdirectory(server/)

View File

@ -0,0 +1,53 @@
# - Try to find mysqlclient include dirs and libraries
#
# Usage of this module as follows:
#
# find_package(mysqlclient)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
# MYSQLCLIENT_ROOT_DIR Set this variable to the root installation of
# mysqlclient if the module has problems finding the
# proper installation path.
#
# Variables defined by this module:
#
# MYSQLCLIENT_FOUND System has mysqlclient, include and library dirs found
# MYSQLCLIENT_INCLUDE_DIR The mysqlclient include directories.
include(FindPackageHandleStandardArgs)
find_package(PkgConfig)
pkg_check_modules(PC_MYSQL_CLIENT QUIET mysqlclient)
message(${PC_MYSQL_CLIENT_INCLUDEDIR})
find_path(MYSQLCLIENT_INCLUDE_DIR
NAMES mysql.h
HINTS ${MYSQLCLIENT_ROOT_DIR} ${MYSQLCLIENT_ROOT_DIR}/include/ ${PC_MYSQL_CLIENT_INCLUDEDIR}
)
if (NOT TARGET mysqlclient::static)
find_library(MYSQLCLIENT_STATIC_LIBS
NAMES libmysqlclient.a
HINTS ${mysqlclient_ROOT_DIR} ${mysqlclient_ROOT_DIR}/lib ${PC_MYSQL_CLIENT_LIBDIR}
)
if (MYSQLCLIENT_STATIC_LIBS)
add_library(mysqlclient::static SHARED IMPORTED)
set_target_properties(mysqlclient::static PROPERTIES
IMPORTED_LOCATION ${MYSQLCLIENT_STATIC_LIBS}
INTERFACE_INCLUDE_DIRECTORIES ${MYSQLCLIENT_INCLUDE_DIR}
)
endif ()
endif ()
find_package_handle_standard_args(mysqlclient DEFAULT_MSG
MYSQLCLIENT_INCLUDE_DIR
)
mark_as_advanced(
MYSQLCLIENT_ROOT_DIR
MYSQLCLIENT_STATIC_LIBS
PC_MYSQL_CLIENT
)

View File

@ -276,8 +276,7 @@ target_link_libraries(TeaSpeakServer
tomcrypt::static
tommath::static
/usr/local/mysql/lib/libmysqlclient.a
#mysqlclient.a
mysqlclient::static
jsoncpp_lib
${ed25519_LIBRARIES_STATIC}
${DataPipes_LIBRARIES_SHARED} # Also includes glib2.0
@ -295,6 +294,14 @@ target_link_libraries(TeaSpeakServer
z
)
#check_include_file(mysql.h HAVE_MYSQL_MYSQL_H)
#if (NOT HAVE_MYSQL_MYSQL_H)
# check_include_file(mysql.h HAVE_MYSQL_H)
# if (NOT HAVE_MYSQL_H)
# message(FATAL_ERROR "Missing MySQL header")
# endif ()
#endif ()
set(DISABLE_JEMALLOC ON)
if (NOT DISABLE_JEMALLOC)
target_link_libraries(TeaSpeakServer

View File

@ -183,10 +183,10 @@ std::shared_ptr<VirtualServer> VirtualServerManager::createServerFromSnapshot(sh
}
ServerId log_server_id = old ? old->getServerId() : serverId;
futures.push_back({
futures.emplace_back(
"server id register",
sql::command(this->handle->getSql(), "INSERT INTO `servers` (`serverId`, `host`, `port`) VALUES (:sid, :host, :port)", variable{":sid", serverId}, variable{":host", host}, variable{":port", port}).executeLater()
});
);
sql::model sql_insert_channel(this->handle->getSql(), "INSERT INTO `channels` (`serverId`, `channelId`, `type`, `parentId`) VALUES (:sid, :id, :type, :pid)", variable{":sid", serverId});
sql::model sql_insert_group_assignment(this->handle->getSql(), "INSERT INTO `assignedGroups` (`serverId`, `cldbid`, `groupId`, `channelId`, `until`) VALUES (:sid, :cldbid, :gid, :chid, :until)", variable{":sid", serverId}, variable{":until", 0});
sql::model sql_insert_permission(this->handle->getSql(), "INSERT INTO `permissions` (`serverId`, `type`, `id`, `channelId`, `permId`, `value`, `grant`, `flag_skip`, `flag_negate`) VALUES (:serverId, :type, :id, :chId, :permId, :value, :grant, :flag_skip, :flag_negate)",
@ -215,7 +215,7 @@ std::shared_ptr<VirtualServer> VirtualServerManager::createServerFromSnapshot(sh
}
}
debugMessage(LOG_GENERAL, PREFIX + " Having server key {} = {}", key, arguments[index][key].as<std::string>());
futures.push_back({
futures.emplace_back(
"server property import proprty=" + key,
sql_insert_property.command().values(
variable{":type", property::PropertyType::PROP_TYPE_SERVER},
@ -223,7 +223,7 @@ std::shared_ptr<VirtualServer> VirtualServerManager::createServerFromSnapshot(sh
variable{":key", key},
variable{":value", arguments[index][key].string()}
).executeLater()
});
);
}
if(arguments[index].has("end_virtualserver")) break;
@ -245,10 +245,10 @@ std::shared_ptr<VirtualServer> VirtualServerManager::createServerFromSnapshot(sh
if (arguments[index].has("end_channels")) break;
auto channel_id = arguments[index]["channel_id"].string();
futures.push_back({
futures.emplace_back(
"channel register cid=" + channel_id,
sql_insert_channel.command().values(variable{":id", channel_id}, variable{":type", -1}, variable{":pid", arguments[index]["channel_pid"].string()}).executeLater()
}); //TODO findout type!
); //TODO findout type!
for (const auto &key : arguments[index].keys()) {
if(key == "channel_id") continue;
if(key == "channel_pid") continue;

2
shared

@ -1 +1 @@
Subproject commit 97fd71b69a88a189d3d24a527bea1c8442810e07
Subproject commit 71d1cc666b3135d9df0875a6f78f71cda64221e5