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

[WIP] Early stage of websocket proxy development #2246

Closed
wants to merge 2 commits into from

Conversation

nikolasgianna
Copy link
Contributor

@nikolasgianna nikolasgianna commented Nov 16, 2017

This is a first approach and attempt at creating a proxy to allow the BOINC client to understand commands issued via websockets. The proxy should run within the same executable so that the whole procedure is transparent to the volunteers. As it stands now this is a barely working prototype and should not be expected to function in any meaningful way. For that reason this pull request is not expected or intended to be merged. It is rather a way to start a conversation around the issue and to get more eyes on such an important piece of the potential future BOINC client.

This is a small test page: https://lhcathomedev.cern.ch/lhcathome-dev/websock_test.html that will return the version of a running client that implements these changes. The communication is done solely through websockets.

Since Firefox expects Secure Websockets (because the javascript is served from an https server) in this stage you will have to create your own certificate and key with:
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.pem
and then add it by visiting https://localhost:8443 and following the prompts.

Note: This is only tested on Linux and should not work on Windows or macOs

@TheAspens
Copy link
Member

@nikolasgianna - can you put [WIP] at the front of your pull request? That indicates to everyone that you are interested in them taking a look but that you do not want it merged.

@TheAspens
Copy link
Member

I've just started looking at this but one question I have up front. I am not a lawyer - so everything below is a question.

You are including the mongoose embedded web server code from Cesanta Software. The cpp file doesn't state the license - just the copyright. The header file though states that it is licensed under the GPL which I don't think would allow it to be combined with BOINC without then making BOINC fall under the GPL as well.

I saw this on their website: https://cesanta.com/

Commercial licenses available
Mongoose Web Server is free for non-commercial use

What is the status of the license that this software can be used with?

@nikolasgianna nikolasgianna changed the title (Very) Early stage of websocket proxy development [WIP] Early stage of websocket proxy development Nov 16, 2017
@nikolasgianna
Copy link
Contributor Author

There is already an older version of mongoose inside /samples/gfx_html/ . As far as I can see it is using the same license.

@nikolasgianna
Copy link
Contributor Author

In the process of reviewing websocket libraries one that caught my attention (seems to be very widely used) and that seems to meet all the requirements is this: https://github.com/uNetworking/uWebSockets

Please review and if it is ok I can go on with using it instead of mongoose.

@TheAspens
Copy link
Member

@nikolasgianna - I'm not a lawyer so my statements have no legal weight. With that dislaimer aside, the license https://github.com/uNetworking/uWebSockets/blob/master/LICENSE appears to be the zlib license and it appears that the zlib license can be used within a LGPL licensed project https://en.wikipedia.org/wiki/Zlib_License

So I would say you could probably proceed with this library for the websocket server.

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

Successfully merging this pull request may close these issues.

2 participants