Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestClient login returns EResult 3 #10

Open
Vivi029 opened this issue Oct 6, 2022 · 6 comments
Open

TestClient login returns EResult 3 #10

Vivi029 opened this issue Oct 6, 2022 · 6 comments

Comments

@Vivi029
Copy link

Vivi029 commented Oct 6, 2022

Hello,
I've been trying to get the test client to run before I start programming my app with open-steamworks, however, I've run into a problem.
The test client and the library compiles just fine on Linux, however it seems that for some reason, trying to login returns an "EResult 3". Looking through the code, "EResult 3" is returned when the client can't connect to the internet.

k_EResultNoConnection = 3,    // no/failed network connection

I though it was a firewall problem at first but since I don't have one installed it shouldn't be an issue. Although the logs do raise a problem, that is:

/home/<username>/.steam/sdk32//../ubuntu12_32/gldriverquery: error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory

I think that might be the problem. How would I go about fixing that ?
Thanks in advance for the reply !

PS: Here are some specs for my system if it helps

OS: Arch Linux x86_64
Kernel: 5.19.12-arch1-1
Shell: bash 5.1.16 
Resolution: 1920x1080 
DE: Plasma 5.25.5 
WM: KWin 
Terminal: konsole 
CPU: Intel i5-3570 (4) @ 4.000GHz 
GPU: NVIDIA GeForce GTX 650 Ti Boost 
Memory: 3573MiB / 7903MiB 
@Vivi029
Copy link
Author

Vivi029 commented Oct 6, 2022

Ok quick update, after messing around a bit more, I've found that running the test client with the following script:

#/bin/sh
export LD_LIBRARY_PATH="$($HOME/.steam/bin32/steam-runtime/run.sh --print-steam-runtime-library-paths)"
./TestPlatformLinux32

Fixes the 'error while loading shared libraries' error but it's still unable to connect to steam.

@Vivi029
Copy link
Author

Vivi029 commented Oct 10, 2022

So update again.
After looking into it a bit more turns out the TestPlatform connects to the internet without any problems.
Results of watch -n 1 'netstat -np --inet | grep TestPlatfor'

Every 1.0s: netstat -np --inet | grep TestPlatfor                <Hostname>: Mon Oct 10 17:57:52 2022

tcp        0      0 192.168.1.115:48435     162.254.197.54:27032    ESTABLISHED 26205/./TestPlatfor
tcp        0      0 192.168.1.115:60615     95.100.74.248:443       ESTABLISHED 26205/./TestPlatfor
tcp        0      0 192.168.1.115:55541     193.246.48.66:80        ESTABLISHED 26205/./TestPlatfor

So at this point I'm kinda at a loss for words, I'll try to debug this whole mess this weekend.

@Vivi029
Copy link
Author

Vivi029 commented Oct 12, 2022

After some more digging, I've found that the issue might be due to how the login is handled.
When I try to log the steamID used for the login, it turns out it's an empty steamID.
I'm gonna try to change the client to use the "LogOnWithPassword" connection instead and I'll update this depending on what I find.
Also the steam client logs seem to confirm what I found, here are the logs that I get:

Log on failed with EResult 3
Steam ID is: STEAM_0:0:0
src/clientdll/cminterface.cpp (2530) : m_SteamID.BValidExternalSteamID() || m_SteamID.BIndividualAccount() || m_SteamID.BPersistentGameServerAccount()
src/clientdll/cminterface.cpp (2530) : m_SteamID.BValidExternalSteamID() || m_SteamID.BIndividualAccount() || m_SteamID.BPersistentGameServerAccount()
src/clientdll/cminterface.cpp (4320) : false
src/clientdll/cminterface.cpp (4320) : false

@Vivi029
Copy link
Author

Vivi029 commented Oct 23, 2022

So after trying to run the test client on windows I've found out the following information:
The SetLoginInformation method throws an exception, this one being:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
After looking around the original project I've found this issue "Test Platform crash" which seems to be same issue that I'm having and according to the repo maintainers it's due to outdated headers. Looks like I have my answer. I'll try to fix it myself or find an older version of steam while waiting for this repo hopefully gets updated.

This is probably due to all of the recent updates to the steam client login.

@m4dEngi
Copy link
Owner

m4dEngi commented Oct 24, 2022

IClientUser & IClientEngine interfaces appear to be outdated. I'll try to update the project to work with latest stable client as soon as i'll get some free time.

With current osw version you're likely calling some different function of some other client interface that took place of IClientUser in CSteamClient interface and argument count mismatch is causing stack pointer corruption.

@Vivi029
Copy link
Author

Vivi029 commented Oct 24, 2022

Thanks for the reply I though it might be something like that. But since I'm not familiar with reversed headers magic I couldn't really fix it myself. In the meantime I've managed to get my hands on an old 2020 steam build so I'll use that instead.

I'd suggest including the steam binaries in the project somehow (add them directly to the repo or include them in the release).
Anyway thanks for your time, I'll close this issue as soon as you update the headers (or you can close it now I don't really care)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants