-
Notifications
You must be signed in to change notification settings - Fork 175
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
Add backwards compatibility for old names of OpenSSL functions #1650
base: master
Are you sure you want to change the base?
Conversation
This makes the webrtc binary link correctly on systems using OpenSSL 3
This needs PR vircadia/vircadia-native-core#1650 to work.
How is this file linked.. it's added with no other changes to code to incorporate it... how do I test this? |
Test building master and this PR on Ubuntu 22.04, or Fedora 36. master should fail to build, and this PR should build correctly. |
Confirmed the errors stopping the build on Ubuntu 22.04. The PR fixes the errors and it builds as expected. |
The following links are available: |
Tested non-SSL WebRTC connection on Windows:
Needs testing on:
|
To make testing simpler, the reviewer for this on Linux should test #1540 first, have that merged, then this should be updated from master. |
The suggested route has been to combine 1540 with this PR and we'll just merge them together after testing them in tandem. |
I tried testing this a while back with a local ubuntu 22.04 vm, certificate generated using #1540 and it didn't seem to work properly, though I'm not sure if it's not just my weird setup. Logs from domain server when trying to connect with Web SDK example.
|
Tested on an actual server with similar results, can't connect with the web sdk example, it just keeps retrying. |
Hello! Is this still an issue? |
This makes the webrtc binary link correctly on systems using OpenSSL 3.
The issue here is that we have a prebuild webrtc library. By default it uses BoringSSL, but BoringSSL uses the same function names as OpenSSL and creates linking problems when linking it into a program that uses OpenSSL. So that doesn't work for us.
So we must build WebRTC against OpenSSL, but in 3.0 they renamed some functions. This means that at linking time, the functions aren't found if we build against OpenSSL 1.1 and run against OpenSSL 3.0. The actual functions we use should be compatible, the names are just different.
The OpenSSL 3.0 headers just #define old names to the new ones, but of course that doesn't do anything for binaries that reference the old names.
This patch creates wrapper functions to solve this issue.
Testing:
This needs testing on Linux, on a distribution with OpenSSL 3.0 or later, such as the Fedora 36 beta.
Fixes #1646