Coder Social home page Coder Social logo

openspy-core-v2's Introduction

OpenSpy Core (v2)

This is a full rewrite of the old openspy. Each service runs as a seperate process, communicating over HTTP, AMQP, and also using redis as a data store.

See here for some architecture info

TODO / Things to improve

  • Remove HTTP calls, replacing with AMQP listeners

Building

A docker file has been created to convey the required build and runtime environment. This has not been used for development, but can be helpful for testing and just getting the project running.

Running

If you refer to the "openspy-web-backend" project, this will have everything you need to get openspy running. From the perspective of this application, the requirements are redis, rabbitmq, and then the openspy-web-backend.

Depending on the services you will be running, you can get away without running openspy-web-backend, but it is recommended. Redis and rabbitmq are required.

Configuration

A single openspy.xml file is used for each service. See here for reference. Environment variables and literal values are supported. If for whatever reason you want to seperate this file just change the working directly of the application. Within this file you will need to configure the AMQP (rabbitmq) connection details, redis connection details, and the HTTP API web service details.

HA Proxy headers are also supported, but due to UDP servers it is not fully usable throughout the application. UDP & TCP load balancers have been used in the past, but UDP load balancer support can be spotty around providers. In the case of UDP, the NAT layer must be transparent, which is typically not the case. Due to this, this feature is no longer used, but remains in the code.

Services

QR (Query & Reporting)

This service handles both the old V1 QR protocol (ASCII based), and the V2 protocol (binary based). GameSpy implemented this on the same port, so version is determined by the presence of a '' as the first byte.

This service is used to push new servers to be queried by server browsing.

Server Browsing

This service also has 2 versions.

This service is used to query active servers.

The legacy V1 protocol (which includes enctype 0 and 2 support) listens on port 28900. Enctype 1 is not supported, by as far as I know, that was only ever used in "GameSpy 3D".

The V2 protocol, also known as enctypex listens on port 28910. Search filtering is supported, as well as event pushing and group listings. Map loop, and player search is not supported, and no game has been seen requiring this.

NatNeg

This service is used so that port forwarding is typically not required when hosting games. As with all gamespy services, only IPV4 is supported. Due to IPV4 exhaustion, and ISPs implementing CGN (Carrier Grade NAT), support can be spotty, such as over 4G networks, or in smaller countries like Poland where ISPs are implementing this. In these situations you may be able to port forward, or need to contact your ISP.

For full support, this service requires 3 seperate IPs to listen on

Additionally, the "NAT Neg Helper" project is required for this service. It functions as an AMQP listener and assists in the logic for NAT type resolving.

GP (GameSpy Presence)

This service is used for things like buddy lists, buddy messaging, and some account management. It listens on port 29900.

Search

This service is used for account lookups, and some account registration. It listens on port 29901.

GStats

This service is used for profile specific data storage, and game session snapshot submission for later stats processing (such as leaderboards). It listens on port 29920.

FESL

This service is actually not part of GameSpy, but instead is an EA service which formally integrated with GameSpy (using PreAuth). Currently only BF2142 is supported. In the past Red Alert 3 was tested and worked, but it was not tested in great detail. The listening port and SSL type differs depending on the game.

Peerchat

This service is used for many things, such as game lobby chat, in some games the room chat, and even in some games it is used in place of, or in combination with the Server Browsing protocol. Its a custom IRC server listening on the default port of 6667.

UTMaster

This service is a master server for UT2003 and UT2004. Currently a work in progress, but fairly functional.

openspy-core-v2's People

Contributors

chc avatar nickninetheeagle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openspy-core-v2's Issues

UT server list sent awful slow

Reproduce:

  1. Try get UT server list from master.openspy.net:28900 via some tool or even usual UT client, when where set only this master server.

Expected result: IP list send instant.
Actual result: IP List send slowly as hell, Sometimes it 7 seconds, sometimes 30 (!) seconds.
Also it send basically in parts, when other servers send it as one huge packet.

Example:

array (
  'master.333networks.com:28900' => 'IPs: 629, unique: 587, time: 0.33850002288818',
  'master.hlkclan.net:28900' => 'fail',
  'master.oldunreal.com:28900' => 'IPs: 588, unique: 588, time: 0.26899981498718',
  'master.errorist.eu:28900' => 'IPs: 568, unique: 568, time: 0.45250010490417',
  'master.hypercoop.tk:28900' => 'IPs: 93, unique: 93, time: 0.43650007247925',
  'master.openspy.net:28900' => 'IPs: 273, unique: 273, time: 30.451999902725',
  'master.gonespy.com:28900' => 'fail',
  'master.telefragged.com:28900' => 'fail',
  'master.qtracker.com:28900' => 'fail',
  'master.newbiesplayground.net:28900' => 'IPs: 588, unique: 588, time: 0.31150007247925',
  'master2.oldunreal.com:28900' => 'fail',
  'master-uk.unrealarchive.org:28900' => 'IPs: 587, unique: 587, time: 0.5699999332428',
  'master-de.unrealarchive.org:28900' => 'IPs: 586, unique: 586, time: 0.3895001411438',
  'master.frag-net.com:28900' => 'IPs: 2, unique: 2, time: 0.61949992179871',
)

Log of load. Each new line is separate packet:

try master.openspy.net:28900...
Get: \basic\\secure\iYtciO
Secure: iYtciO, answer: 0wqusEe5
Get: \ip\77.68.7.190:2223
Get: \ip\74.91.124.251:7768
Get: \ip\77.68.7.190:10000\ip\136.53.56.188:5556\ip\176.9.104.176:2311
Get: \ip\172.104.20.248:7778
Get: \ip\74.91.126.129:7778
Get: \ip\74.103.37.30:7778\ip\67.81.48.80:7778\ip\104.236.165.29:7778\ip\185.17.255.62:5556\ip\217.160.15.154:7476
Get: \ip\144.91.110.67:7778\ip\70.42.74.157:7778
Get: \ip\70.42.74.153:7778
Get: \ip\69.14.158.72:7781\ip\45.61.53.244:7879
Get: \ip\45.61.53.244:7778
Get: \ip\75.43.140.254:7728\ip\23.92.16.218:7778\ip\77.251.108.133:7778
Get: \ip\139.162.235.20:7778\ip\45.76.62.140:10778\ip\185.27.135.168:7778\ip\103.125.218.31:3334
Get: \ip\173.255.200.194:7851\ip\193.8.173.191:7778\ip\185.140.253.169:7778\ip\51.255.172.183:7778
Get: \ip\3.72.76.187:7778\ip\142.54.179.59:7778\ip\114.23.116.48:7778\ip\74.91.115.144:3701
Get: \ip\69.14.158.72:7831
Get: \ip\45.79.57.123:7778\ip\152.208.16.143:7708
Get: \ip\194.116.82.3:8789\ip\95.211.222.135:7828\ip\100.14.160.71:7001
Get: \ip\107.170.97.251:7778\ip\75.43.140.254:7748
Get: \ip\93.186.199.167:3001
Get: \ip\217.160.15.154:7976\ip\121.99.241.203:7783\ip\71.244.121.234:7778\ip\80.60.225.249:7778
Get: \ip\68.232.163.100:7778\ip\74.91.126.62:7778
Get: \ip\99.8.13.78:7978\ip\24.201.238.202:7778\ip\47.223.80.43:7778\ip\64.94.100.181:7778\ip\72.5.195.116:7778
Get: \ip\45.77.80.183:7778\ip\91.121.80.54:7778\ip\94.23.248.87:7778
Get: \ip\24.11.96.209:7778\ip\69.14.158.72:7791\ip\121.99.241.203:7761\ip\172.105.251.124:7778
Get: \ip\109.74.199.39:7778\ip\47.199.182.4:2041
Get: \ip\3.139.132.236:7778\ip\176.9.113.171:7778\ip\37.153.1.43:7778
Get: \ip\68.232.164.232:7778
Get: \ip\63.251.20.50:7778
Get: \ip\104.180.34.226:7778
Get: \ip\64.227.18.147:7778
Get: \ip\81.169.128.208:7800
Get: \ip\37.153.1.43:8878
Get: \ip\75.43.140.254:7758
Get: \ip\103.125.218.31:1112\ip\136.53.56.188:7778
Get: \ip\138.255.35.67:7778
Get: \ip\173.230.130.223:7878\ip\136.244.115.177:7278\ip\31.186.251.18:7778\ip\35.158.181.30:7778
Get: \ip\70.42.74.245:7778\ip\8.26.21.89:3002\ip\143.47.232.211:7778
Get: \ip\51.68.203.88:7778
Get: \ip\8.26.21.89:7778\ip\47.199.182.4:1041
Get: \ip\195.128.102.85:7001
Get: \ip\65.108.64.228:7778
Get: \ip\18.192.135.239:7778\ip\172.104.226.224:7778\ip\144.24.150.73:7778
Get: \ip\176.9.113.171:3001\ip\173.199.84.146:7778\ip\173.230.130.223:6667
Get: \ip\75.43.140.254:7738\ip\85.214.243.170:7278\ip\121.99.241.203:7779
Get: \ip\82.65.210.149:3334
Get: \ip\149.56.22.9:7778
Get: \ip\74.91.115.144:3520
Get: \ip\66.23.200.107:7788
Get: \ip\94.240.52.64:7778\ip\121.99.241.203:2278\ip\23.94.143.21:8889
Get: \ip\177.71.106.176:7778\ip\45.32.166.47:7778
Get: \ip\135.125.194.37:7778\ip\63.251.20.60:7778
Get: \ip\206.253.136.40:7778
Get: \ip\217.160.15.154:7776
Get: \ip\151.80.58.241:7778
Get: \ip\51.195.4.80:7788
Get: \ip\98.11.72.172:7778
Get: \ip\144.202.59.41:7778\ip\66.85.80.155:7889\ip\213.230.216.2:7778
Get: \ip\213.230.216.4:8101\ip\45.61.53.244:6667\ip\37.153.1.43:7878
Get: \ip\64.176.7.77:7078\ip\173.230.130.223:7778\ip\173.230.132.25:7778
Get: \ip\45.128.69.249:7778\ip\65.108.3.158:8856\ip\65.108.3.158:6667
Get: \ip\107.173.89.107:7778
Get: \ip\96.21.162.156:7778
Get: \ip\51.81.1.188:7788
Get: \ip\8.26.21.89:7002
Get: \ip\121.200.8.51:7778
Get: \ip\45.61.53.244:2268\ip\103.125.218.31:2223\ip\192.155.95.63:7878
Get: \ip\149.28.237.150:7778\ip\150.136.154.81:7778
Get: \ip\70.110.146.101:7778\ip\114.23.116.15:7778\ip\27.100.36.24:7999
Get: \ip\217.76.52.175:7778\ip\185.107.96.64:7778\ip\121.99.241.203:2251
Get: \ip\176.9.113.171:1001\ip\173.255.200.194:7778\ip\65.108.64.228:7787\ip\192.223.31.70:7778
Get: \ip\142.54.179.62:7801
Get: \ip\95.216.157.11:7778\ip\108.61.238.66:7778
Get: \ip\74.91.122.9:7748\ip\146.71.77.95:7778\ip\74.91.122.165:8003
Get: \ip\66.85.80.155:7798\ip\152.208.16.143:7788\ip\34.247.32.40:7778
Get: \ip\217.160.15.154:7576
Get: \ip\176.58.120.227:7778
Get: \ip\82.214.101.158:7778\ip\149.28.237.150:8878\ip\87.208.85.7:7778\ip\121.99.241.203:2289\ip\131.255.230.150:7778\ip\64.176.7.77:7278
Get: \ip\152.208.16.143:5556\ip\121.99.241.203:2161\ip\45.77.59.111:2267\ip\216.240.134.107:27026\ip\108.61.125.164:7778\ip\185.17.255.62:7778\ip\140.186.0.77:8889\ip\109.74.199.39:1112\ip\176.9.113.171:4001\ip\103.125.218.185:7879\ip\60.225.229.166:7778\ip\142.54.179.61:7778
Get: \ip\185.70.107.18:7778\ip\98.128.174.153:7778\ip\213.172.148.10:17206\ip\142.54.179.59:7901\ip\68.252.245.207:7778\ip\5.181.134.154:7778\ip\176.58.120.227:8889\ip\45.56.96.69:7778\ip\186.233.187.118:7778\ip\45.236.129.124:1235\ip\185.17.255.81:5556\ip\213.230.216.2:10000\ip\109.230.215.13:7798\ip\24.245.192.13:7878\ip\46.4.48.226:7778
Get: \ip\121.99.241.203:7793\ip\191.113.94.90:7778\ip\123.193.214.65:7778\ip\173.255.196.28:7778\ip\206.217.207.136:7778\ip\3.75.150.156:7778\ip\77.68.7.190:7761\ip\97.107.140.81:7778\ip\47.223.80.43:7787\ip\213.230.216.2:8889\ip\144.202.62.90:7778\ip\68.232.172.227:7778\ip\195.98.73.166:6667\ip\95.179.199.219:7778
Get: \ip\192.223.24.6:7778\ip\173.199.74.201:7778\ip\77.68.7.190:4445\ip\81.169.243.28:7778\ip\79.207.108.15:7778\ip\121.99.241.203:2245\ip\91.224.117.101:7778\ip\94.208.197.152:7778\ip\184.71.170.154:7778\ip\69.14.158.72:7801\ip\176.9.104.176:3001
Get: \ip\51.174.170.148:7778\ip\37.153.1.43:8978\ip\104.131.203.184:7778\ip\139.162.210.13:7778\ip\31.186.251.45:7778\ip\66.85.80.155:8899\ip\173.255.200.194:7811\ip\192.111.155.210:7778\ip\142.54.179.62:7778\ip\173.199.111.57:7778\ip\66.85.80.155:8889\ip\5.181.134.237:7778\ip\18.195.217.197:7778\ip\217.160.15.154:7876\ip\66.85.80.155:7778\ip\51.38.79.21:7783\ip\193.115.113.92:7778\ip\71.12.229.41:7778
Get: \ip\85.10.149.153:7778\ip\109.234.36.147:7776\ip\74.91.124.251:7728\ip\186.137.54.176:12378\ip\66.150.155.205:7778\ip\108.61.238.93:7778\ip\74.91.113.74:7778\ip\66.150.188.241:7778\ip\143.42.213.114:7778\ip\45.77.59.111:7778\ip\99.8.13.78:7778\ip\195.98.73.166:7778\ip\85.167.160.88:7778\ip\178.46.158.46:7778
Get: \ip\185.107.96.18:7778\ip\103.125.218.185:7778\ip\155.138.233.29:7778\ip\217.79.187.6:7778\ip\45.63.111.199:7278\ip\37.153.1.43:9978\ip\8.26.21.89:8002\ip\51.75.247.107:7778\ip\142.54.179.60:7778\ip\178.254.36.248:7778
Get: \ip\150.136.246.93:7778\ip\94.130.142.237:8316\ip\114.23.116.2:7778\ip\195.98.73.166:5556\ip\192.99.0.109:7778\ip\54.37.138.5:7778\ip\37.153.1.43:9078\ip\172.251.164.49:7778\ip\136.53.56.188:6667\ip\185.17.255.81:7778\ip\92.223.109.18:7778\ip\217.160.15.154:7676
Get: \ip\185.117.116.218:7778\ip\96.65.68.203:7778\ip\64.94.238.23:7778\ip\74.91.123.53:7778\ip\68.134.99.215:7780\ip\151.236.216.75:7778\final\
Loaded 273

I even suspect there each server come in own packet, so it make huge overhead.

I think I found a bug in "gamespy3dxor" function and gamestats accumulator

As first, I'd like to apologize if my thoughts are incorrect. I would just like to share some observations.

I'm using the old openspy-core code for my "little" project. A few years ago, I detected that function "gamespy3dxor" works incorrectly. Generally, the game sends a very long requests to get data of ~200 players for displaying Leaderboards. I made my own accumulator to handle unfinished requests, but something was still working incorrectly.
Most of problems were fixed by my simple "fix": https://github.com/chc/openspy-core-v2/blob/master/gamestats/server/GSPeer.cpp#L567
I noticed that changing this line "len-=7;" to "len-=6;" prevented junk data at the end of request buffers.

Example with -= 7:
https://i.imgur.com/huKQMdW.png

Example with -= 6:
https://i.imgur.com/3GoB8fF.png

Second problem is with "m_kv_accumulator": https://github.com/chc/openspy-core-v2/blob/master/gamestats/server/GSPeer.cpp#L82
It connects strings after gamespy3dxor decryption. It might work, but in certain cases the data might be split in the middle of the "\final" text.

Example:
Incoming data1: \getpd\pid\1093\ptype\2\dindex\0\keys\lid\0\fi
Incoming data2: nal\getpd\pid\1094\ptype\2\dindex\0\keys\lid\0\final\

Since gamespy3dxor can't find the full "\final" it thinks that it's a normal data to decrypt.
The solution is to use the encrypted data in the accumulator (before gamespy3dxor function was called).

My C++ skills are rather simple, so I can only provide a pseudo-code of my fix, but I hope it will be helpful: https://pastebin.com/JXBhpDtw

Room filtering works incorrectly in FlatOut 2

Room filtering in FlatOut 2 doesn't seem to work as it should, when I try to specify a filtering criteria (e.g. setting game mode to Stunt), it filters out rooms seemingly at random without obeying the actual filters specified. Affects both PC and PS2 versions.

Cmake version error when building docker image

While attempting to build a docker image, I receive this error:

------
> [build 46/59] RUN cmake -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/"  -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE="Release" ../code:
0.356 CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
0.356   CMake 3.22 or higher is required.  You are running version 3.5.1
0.356
0.356
0.356 -- Configuring incomplete, errors occurred!
------
Dockerfile:55
--------------------
 53 |     RUN mkdir /root/os-bin /root/os-make
 54 |     WORKDIR /root/os-make
 55 | >>> run cmake -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/"  -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE="Release" ../code
 56 |     run make
 57 |     RUN mkdir -p /root/fs-out/opt/openspy/bin /root/fs-out/opt/openspy/lib
--------------------
ERROR: failed to solve: process "/bin/sh -c cmake -DCMAKE_BINARY_DIR=\"/root/os-bin\" -DCMAKE_CXX_FLAGS=\"-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/\"  -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE=\"Release\" ../code" did not complete successfully: exit code: 1

cmake 3.22 didn't seem to be available through apt-get for ubuntu:16.04, so I tried changing the docker build version to ubuntu:22.04, which resulted in this error:

 => ERROR [build 46/59] RUN cmake -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/i  0.8s
------
 > [build 46/59] RUN cmake -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/"  -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE="Release" ../code:
0.446 OS_CMAKE_MODULE_PATH="/root/code/../cmake/modules"
0.490 -- The C compiler identification is GNU 11.4.0
0.553 -- The CXX compiler identification is GNU 11.4.0
0.561 -- Detecting C compiler ABI info
0.622 -- Detecting C compiler ABI info - done
0.632 -- Check for working C compiler: /usr/bin/cc - skipped
0.632 -- Detecting C compile features
0.633 -- Detecting C compile features - done
0.637 -- Detecting CXX compiler ABI info
0.698 -- Detecting CXX compiler ABI info - failed
0.698 -- Check for working CXX compiler: /usr/bin/c++
0.758 -- Check for working CXX compiler: /usr/bin/c++ - broken
0.758 CMake Error at /usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (message):
0.758   The C++ compiler
0.758
0.758     "/usr/bin/c++"
0.758
0.758   is not able to compile a simple test program.
0.758
0.758   It fails with the following output:
0.758
0.758     Change Dir: /root/os-make/CMakeFiles/CMakeTmp
0.758
0.758     Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_252e3/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_252e3.dir/build.make CMakeFiles/cmTC_252e3.dir/build
0.758     gmake[1]: Entering directory '/root/os-make/CMakeFiles/CMakeTmp'
0.758     Building CXX object CMakeFiles/cmTC_252e3.dir/testCXXCompiler.cxx.o
0.758     /usr/bin/c++   -I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/  -o CMakeFiles/cmTC_252e3.dir/testCXXCompiler.cxx.o -c /root/os-make/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
0.758     Linking CXX executable cmTC_252e3
0.758     /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_252e3.dir/link.txt --verbose=1
0.758     /usr/bin/c++ -I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/  CMakeFiles/cmTC_252e3.dir/testCXXCompiler.cxx.o -o cmTC_252e3
0.758     /usr/bin/ld: cannot find -lz: No such file or directory
0.758     collect2: error: ld returned 1 exit status
0.758     gmake[1]: *** [CMakeFiles/cmTC_252e3.dir/build.make:99: cmTC_252e3] Error 1
0.758     gmake[1]: Leaving directory '/root/os-make/CMakeFiles/CMakeTmp'
0.758     gmake: *** [Makefile:127: cmTC_252e3/fast] Error 2
0.758
0.758
0.758
0.758
0.758
0.758   CMake will not be able to correctly generate this project.
0.758 Call Stack (most recent call first):
0.758   CMakeLists.txt:8 (project)
0.758
0.758
0.758 -- Configuring incomplete, errors occurred!
0.758 See also "/root/os-make/CMakeFiles/CMakeOutput.log".
0.758 See also "/root/os-make/CMakeFiles/CMakeError.log".
------
Dockerfile:56
--------------------
  54 |     RUN mkdir /root/os-bin /root/os-make
  55 |     WORKDIR /root/os-make
  56 | >>> run cmake -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/"  -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE="Release" ../code
  57 |     run make
  58 |     RUN mkdir -p /root/fs-out/opt/openspy/bin /root/fs-out/opt/openspy/lib
--------------------
ERROR: failed to solve: process "/bin/sh -c cmake -DCMAKE_BINARY_DIR=\"/root/os-bin\" -DCMAKE_CXX_FLAGS=\"-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/\"  -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE=\"Release\" ../code" did not complete successfully: exit code: 1

Can't find OS/socketlib/socketlib.h

I'm trying to compile the sources and I got the following error:

/root/openspy-core-v2/peerchat/main.cpp:5:10: fatal error: OS/socketlib/socketlib.h: No such file or directory
#include <OS/socketlib/socketlib.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [peerchat/CMakeFiles/peerchat.dir/build.make:63: peerchat/CMakeFiles/peerchat.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:476: peerchat/CMakeFiles/peerchat.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

My server is a Fedora Server 29

I'm missing some dependency here? Could you please help me on compiling the sources?

Thanks!

[Request] Provide IRC or Matrix Channel

Greetings!
I was wondering ig there is any official/semi-official IRC or Matrix Channel.

I personally think that would be a good thing to have, to ask about things and see if others have problems, etc etc...

Right now it seems that all services on the openspy.net, and beta.openspy.net always time out, and wanted to know if it was just a me-issue.

Thank you in advance,
Gustav.

Issues with PSP games

There are about 4 PSP games that still dont work via Openspy yet.
2 games that I tried recently (yesterday) are :

  • Worms Battle Islands
  • Infected

These games have issues seeing other players in the lobby and connect to them.
For Worms Battle Islands the game could crash the PSP for at least 1 player after the game is about to start.

In the past I tried 2 other games and they are :

  • Marvel Trading Card Game - Can't create or use an account to connect , thankfully the game got a LAN mode that is easy to use.
  • Warhammer 40,000: Tactics - Can't establish a connection between games properly.

Tony Hawk American Wasteland servers aren't working properly

Hi I just wanted to report that Tony Hawk American Wasteland servers aren't working properly, I can join the lobbies and start a game but you cant see my game meaning you can't join it. I have tested on a Windows 10 laptop and a PC running Linux and ran into the same issue, I also don't see it come up on the server list on the OpenSpy website either.

UT2004 Server is not listed

Hey there, I have a problem, that my UT Server is not listed when I change the master servers. It is listed, when I use Epic Master, but not listed using OpenSpy Master. (I also changed the master server in my UT2004 Game client, I see some OpenSpy Servers.) There are also some messages from my UT2004 Server using OpenSpy which did not appear on Epic's server. If you need some extra logs or network capture, contact me.

Epic Server

epic-utserver

OpenSpy Server

openspy

(Ignore the "Close: Error while attempting to close socket.". This is also there when I use the Epic Master server)

I don't know if there is a problem with the Match ID, on Epic it is 0 (always) and on OpenSpy it is 1234, don't know if it matters. There are also no heartbeat messages using OpenSpy.

My Setup

I use for my server a docker image from https://github.com/PhasecoreX/docker-ut2004-server (with --privileged docker parameter, required if this parameter isn't set, the server freezes sometimes) and it works great.

  • I use AntiTCC 2009 r2 for Anti Cheat
  • I use some special chars like ' and # in my server name

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.