Compare commits
5 Commits
a0cf4ff8b9
...
58d2efcf4b
Author | SHA1 | Date |
---|---|---|
sigmaboy | 58d2efcf4b | |
Mr_Goldberg | 802d8bcc8f | |
Mr_Goldberg | 7e1824290a | |
Mr_Goldberg | 647e894d62 | |
sigmaboy | becbc7adb3 |
|
@ -6,7 +6,7 @@ Then use my emu like you normally would. (Don't forget to put a steam_appid.txt)
|
|||
|
||||
|
||||
For the LAN only connections feature:
|
||||
If for some reason you want to disable this feature create a file named: disable_lan_only.txt beside the steam_api dll.
|
||||
If for some reason you want to disable this feature create a file named: disable_lan_only.txt beside the steam_api dll or inside the steam_settings folder beside the steam api dll.
|
||||
|
||||
I noticed a lot of games seem to connect to analytics services and other crap that I hate.
|
||||
|
||||
|
|
|
@ -1,2 +1,43 @@
|
|||
#!/bin/sh
|
||||
HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
|
||||
# get distribution
|
||||
if [ -e "/etc/os-release" ]
|
||||
then
|
||||
DISTRO=$(grep "^ID=" "/etc/os-release" | cut -d"=" -f2| sed 's/"//g')
|
||||
DISTRO_VERSION=$(grep "^VERSION_ID=" "/etc/os-release" | cut -d"=" -f2)
|
||||
else
|
||||
echo "Linux distribution not found."
|
||||
echo "Maybe the file \"/etc/os-release\" is just missing."
|
||||
echo "Or your linux distribution is too old. Cannot check requirements."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
opensuse_requirements(){
|
||||
if ! which "protoc" > /dev/null 2>&1
|
||||
then
|
||||
echo "protoc isn't installed."
|
||||
echo "Please install \"protobuf-devel\" package and try again"
|
||||
exit 1
|
||||
fi
|
||||
if ! which "clang++" > /dev/null 2>&1
|
||||
then
|
||||
echo "clang++ isn't installed."
|
||||
echo "Please install \"clang5\" package and try again"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -n "${DISTRO}" ]
|
||||
then
|
||||
case "${DISTRO}" in
|
||||
opensuse|opensuse-leap)
|
||||
opensuse_requirements
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
protoc -I./dll/ --cpp_out=./dll/ ./dll/*.proto
|
||||
clang++ -shared -fPIC -o libsteam_api.so dll/*.cpp dll/*.cc -g3 -Wno-return-type -fsanitize=address -lasan -lprotobuf-lite -std=c++14 && echo built
|
||||
|
|
|
@ -824,7 +824,7 @@ static bool network_functions_attached = false;
|
|||
BOOL WINAPI DllMain( HINSTANCE, DWORD dwReason, LPVOID ) {
|
||||
switch ( dwReason ) {
|
||||
case DLL_PROCESS_ATTACH:
|
||||
if (!file_exists(get_full_program_path() + "disable_lan_only.txt")) {
|
||||
if (!file_exists(get_full_program_path() + "disable_lan_only.txt") && !file_exists(get_full_program_path() + "\\steam_settings\\disable_lan_only.txt")) {
|
||||
PRINT_DEBUG("Hooking lan only functions\n");
|
||||
DetourTransactionBegin();
|
||||
DetourUpdateThread( GetCurrentThread() );
|
||||
|
|
|
@ -809,17 +809,20 @@ bool SetLobbyData( CSteamID steamIDLobby, const char *pchKey, const char *pchVal
|
|||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
|
||||
Lobby *lobby = get_lobby(steamIDLobby);
|
||||
if (!lobby || lobby->owner() != settings->get_local_steam_id().ConvertToUint64() || lobby->deleted()) {
|
||||
if (!lobby || lobby->deleted()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto result = caseinsensitive_find(lobby->values(), pchKey);
|
||||
bool changed = true;
|
||||
if (result == lobby->values().end()) {
|
||||
(*lobby->mutable_values())[pchKey] = pchValue;
|
||||
} else {
|
||||
if (result->second == std::string(pchValue)) changed = false;
|
||||
(*lobby->mutable_values())[result->first] = pchValue;
|
||||
//callback is always triggered when setlobbydata is called from non owner however no data is actually changed.
|
||||
if (lobby->owner() == settings->get_local_steam_id().ConvertToUint64()) {
|
||||
auto result = caseinsensitive_find(lobby->values(), pchKey);
|
||||
if (result == lobby->values().end()) {
|
||||
(*lobby->mutable_values())[pchKey] = pchValue;
|
||||
} else {
|
||||
if (result->second == std::string(pchValue)) changed = false;
|
||||
(*lobby->mutable_values())[result->first] = pchValue;
|
||||
}
|
||||
}
|
||||
|
||||
if (changed)
|
||||
|
|
|
@ -881,7 +881,7 @@ SteamNetworkingMessage_t *get_steam_message_connection(HSteamNetConnection hConn
|
|||
pMsg->m_pfnRelease = &delete_steam_message;
|
||||
pMsg->m_nChannel = 0;
|
||||
connect_socket->second.data.pop();
|
||||
PRINT_DEBUG("get_steam_message_connection %u %u\n", hConn, size);
|
||||
PRINT_DEBUG("get_steam_message_connection %u %u, %u\n", hConn, size, pMsg->m_nMessageNumber);
|
||||
return pMsg;
|
||||
}
|
||||
|
||||
|
@ -913,6 +913,7 @@ int ReceiveMessagesOnConnection( HSteamNetConnection hConn, SteamNetworkingMessa
|
|||
++messages;
|
||||
}
|
||||
|
||||
PRINT_DEBUG("messages %u\n", messages);
|
||||
return messages;
|
||||
}
|
||||
|
||||
|
@ -2085,13 +2086,13 @@ void Callback(Common_Message *msg)
|
|||
auto connect_socket = s->connect_sockets.find(msg->networking_sockets().connection_id());
|
||||
if (connect_socket != s->connect_sockets.end()) {
|
||||
if (connect_socket->second.remote_identity.GetSteamID64() == msg->source_id() && (connect_socket->second.status == CONNECT_SOCKET_CONNECTED)) {
|
||||
PRINT_DEBUG("Steam_Networking_Sockets: got data len %u on connection %u\n", msg->networking_sockets().data().size(), connect_socket->first);
|
||||
PRINT_DEBUG("Steam_Networking_Sockets: got data len %u, num %u on connection %u\n", msg->networking_sockets().data().size(), msg->networking_sockets().message_number(), connect_socket->first);
|
||||
connect_socket->second.data.push(msg->networking_sockets());
|
||||
}
|
||||
} else {
|
||||
connect_socket = std::find_if(s->connect_sockets.begin(), s->connect_sockets.end(), [msg](const auto &in) {return in.second.remote_identity.GetSteamID64() == msg->source_id() && (in.second.status == CONNECT_SOCKET_NOT_ACCEPTED || in.second.status == CONNECT_SOCKET_CONNECTED) && in.second.remote_id == msg->networking_sockets().connection_id_from();});
|
||||
if (connect_socket != s->connect_sockets.end()) {
|
||||
PRINT_DEBUG("Steam_Networking_Sockets: got data len %u on not accepted connection %u\n", msg->networking_sockets().data().size(), connect_socket->first);
|
||||
PRINT_DEBUG("Steam_Networking_Sockets: got data len %u, num %u on not accepted connection %u\n", msg->networking_sockets().data().size(), msg->networking_sockets().message_number(), connect_socket->first);
|
||||
connect_socket->second.data.push(msg->networking_sockets());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue