Skip to content

Releases: SortaCore/bluewing-cpp-server

Bluewing Server build 34

24 Jan 01:33
Compare
Choose a tag to compare

Unicode and HTML5/UWP build, with no caps on uploads/downloads, and with flash policy enabled.
Both x86 and x64 Windows are available, x86, x64, ARM and ARM64 Unix included.

Fixes for build 34, where HTML5 (and inadvertently UWP) client support was introduced. Windows HTML5 for secure socket works, and Firefox clients work too.

Hosts on ports 80 and 443, the default HTTP and HTTPS ports.
Websocket/HTML5 server notes:

  1. TLS (a.k.a. SSL) certificates will be loaded from "fullchain.pem" and "privkey.pem" in the application folder, on both Unix and Windows. On Windows, you can also host using "sslcert.pfx". Make sure the private key is included in the PFX or loading will fail.
  2. WebSocket connections must be secured by TLS certificates if the HTML5 app is on a HTTPS page. The browser will block the connection otherwise.
  3. Let's Encrypt and similar services will give you free TLS certificates with a short lifetime.
  4. You can also self-sign a certificate for testing - it won't be useful outside of your local machine, though.
  5. The TLS certificate's expiry date will be displayed in local time on server startup.
  6. "privkey.pem" should not have a password. (Private key password support is currently unavailable.)
  7. Sudo privileges are usually necessary for websocket hosting on Unix. Workarounds are available; see below.
  8. TLS certificates normally verify for localhost or for a domain/IP. They will not usually verify for both. A hosts file redirect, domain -> localhost, will allow you to do a localhost test when your domain is live elsewhere.
  9. You can test these webserver connections and TLS certificates are working by accessing the Lacewing WebSocket port with a web browser (http or https). You will get a valid, albeit sarcastic, webpage in response.

Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.
Note: this includes an ASCII human-readable name check. Channel names, client names and text messages sent to server have this check applied.
A-Z, a-z, 0-9, spaces and punctuation are valid characters.
Denied names result in On Name Denied/On Join Channel Denied on client-side, with deny reasons warning the server is not a Unicode server.

Total statistics are included since build 31, for highest server load moments, and total over the whole server hosting session. These stats are listed to console output at the end of app. Press Ctrl-C to abort the server, then read from the console.

Code can be easily modified to remove flash policy, or to use a fixed custom port; to disable or modify websocket hosting, or to load websocket TLS certificate from system store on Windows.
Flash policy will be looked for in the application folder, or generated if missing.

Be aware the Unix-based OSes will get permission denied hosting on WebSocket ports 80 and 443, and Flash policy port 843, since ports 1024 and less are privileged and usually sudo-only. You can run server as sudo, or give an exception using CAP_NET_BIND_SERVICE.
If you modify this source code, you can also host on a higher port and redirect users on the lower port using iptables. The server will also host fine without Flash policy, regular server and/or HTML5 servers.

Code signing is used on the Windows EXEs included, signed to Darkwire Software.
Due to the stupidity of Sectigo and the UK government's lack of ability to prove an unlimited business exists, after months of attempts, still no code signing is available for build 34. This will be rectified when the situation progresses.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.
HTML5 is always hosted on port 80 and 443.

Bluewing Server build 33 - HTML5 support

31 Dec 02:04
Compare
Choose a tag to compare

Unicode and HTML5/UWP build, with no caps on uploads/downloads, and with flash policy enabled.
Both x86 and x64 Windows are available, x86, x64, ARM and ARM64 Unix included.

This build does not work for HTML5/UWP clients if you're using the Windows server, or for Firefox clients on either server OS.

Bugfixes for build 32, where HTML5 (and inadvertently UWP) client support was introduced. Hosts on ports 80 and 443, the default HTTP and HTTPS ports.
Websocket/HTML5 server notes:

  1. TLS (a.k.a. SSL) certificates will be loaded from "fullchain.pem" and "privkey.pem" in the application folder, on both Unix and Windows. On Windows, you can also host using "sslcert.pfx". Make sure the private key is included in the PFX or loading will fail.
  2. WebSocket connections must be secured by TLS certificates if the HTML5 app is on a HTTPS page. The browser will block the connection otherwise.
  3. Let's Encrypt and similar services will give you free TLS certificates with a short lifetime.
  4. You can also self-sign a certificate for testing - it won't be useful outside of your local machine, though.
  5. The TLS certificate's expiry date will be displayed in local time on server startup.
  6. "privkey.pem" should not have a password. (Private key password support is currently unavailable.)
  7. Sudo privileges are usually necessary for websocket hosting on Unix. Workarounds are available; see below.
  8. TLS certificates normally verify for localhost or for a domain/IP. They will not usually verify for both. A hosts file redirect, domain -> localhost, will allow you to do a localhost test when your domain is live elsewhere.
  9. You can test these webserver connections and TLS certificates are working by accessing the Lacewing WebSocket port with a web browser (http or https). You will get a valid, albeit sarcastic, webpage in response.

Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.
Note: this includes an ASCII human-readable name check. Channel names, client names and text messages sent to server have this check applied.
A-Z, a-z, 0-9, spaces and punctuation are valid characters.
Denied names result in On Name Denied/On Join Channel Denied on client-side, with deny reasons warning the server is not a Unicode server.

Total statistics are included since build 31, for highest server load moments, and total over the whole server hosting session. These stats are listed to console output at the end of app. Press Ctrl-C to abort the server, then read from the console.

Code can be easily modified to remove flash policy, or to use a fixed custom port; to disable or modify websocket hosting, or to load websocket TLS certificate from system store on Windows.
Flash policy will be looked for in the application folder, or generated if missing.

Be aware the Unix-based OSes will get permission denied hosting on WebSocket ports 80 and 443, and Flash policy port 843, since ports 1024 and less are privileged and usually sudo-only. You can run server as sudo, or give an exception using CAP_NET_BIND_SERVICE.
If you modify this source code, you can also host on a higher port and redirect users on the lower port using iptables. The server will also host fine without Flash policy, regular server and/or HTML5 servers.

Code signing is used on the Windows EXEs included, signed to Darkwire Software.
Due to the stupidity of Sectigo and the UK government's lack of ability to prove an unlimited business exists, after months of attempts, still no code signing is available for build 33. This will be rectified when the situation progresses.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.
HTML5 is always hosted on port 80 and 443.

Bluewing Server build 32

24 Nov 11:03
Compare
Choose a tag to compare
Pre-release

Unicode and HTML5 build, with no caps on uploads/downloads, and with flash policy enabled.
Both x86 and x64 Windows are available, x86, x64, ARM and ARM64 Unix included.

HTML5 is new to build 32, and hosts on ports 80 and 443, the default HTTP and HTTPS ports.
Websocket/HTML5 server notes:

  1. TLS (a.k.a. SSL) certificates will be loaded from "fullchain.pem" and "privkey.pem" in the application folder, on both Unix and Windows. On Windows, you can also host using "sslcert.pfx". Make sure the private key is included in the PFX or loading will fail.
  2. WebSocket connections must be secured by TLS certificates if the HTML5 app is on a HTTPS page. The browser will block the connection otherwise.
  3. Let's Encrypt and similar services will give you free TLS certificates with a short lifetime.
  4. You can also self-sign a certificate for testing - it won't be useful outside of your local machine, though.
  5. The TLS certificate's expiry date will be displayed in local time on server startup.
  6. "privkey.pem" should not have a password. (Private key password support is currently unavailable.)
  7. Sudo privileges are usually necessary for websocket hosting on Unix. Workarounds are available; see below.
  8. TLS certificates normally verify for localhost or for a domain/IP. They will not usually verify for both. A hosts file redirect, domain -> localhost, will allow you to do a localhost test when your domain is live elsewhere.
  9. You can test these webserver connections and TLS certificates are working by accessing the Lacewing WebSocket port with a web browser (http or https). You will get a valid, albeit sarcastic, webpage in response.

Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.
Note: this includes an ASCII human-readable name check. Channel names, client names and text messages sent to server have this check applied.
A-Z, a-z, 0-9, spaces and punctuation are valid characters.
Denied names result in On Name Denied/On Join Channel Denied on client-side, with deny reasons warning the server is not a Unicode server.

Total statistics are included from build 31, for highest server load moments, and total over the whole server hosting session. These stats are listed to console output at the end of app. Press Ctrl-C to abort the server, then read from the console.

Code can be easily modified to remove flash policy, or to use a fixed custom port; to disable or modify websocket hosting, or to load websocket TLS certificate from system store on Windows.
Flash policy will be looked for in the application folder, or generated if missing.

Be aware the Unix-based OSes will get permission denied hosting on WebSocket ports 80 and 443, and Flash policy port 843, since ports 1024 and less are privileged and usually sudo-only. You can run server as sudo, or give an exception using CAP_NET_BIND_SERVICE.
If you modify this source code, you can also host on a higher port and redirect users on the lower port using iptables. The server will also host fine without Flash policy.

Code signing is used on the Windows EXEs included, signed to Darkwire Software.
Due to the stupidity of Sectigo and the UK government's lack of ability to prove an unlimited business exists, after months of attempts, still no code signing is available for build 32. This will be rectified when the situation progresses.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Bluewing Server build 31

15 Jul 01:09
Compare
Choose a tag to compare

Unicode build, with no caps on uploads/downloads, and with flash policy enabled.
Both x86 and x64 Windows are available, x86, x64, ARM and ARM64 Unix included.

Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.
Note: this includes an ASCII human-readable name check. Channel names, client names and text messages sent to server have this check applied.
A-Z, a-z, 0-9, spaces and punctuation are valid characters.
Denied names result in On Name Denied/On Join Channel Denied on client-side, with deny reasons warning the server is not a Unicode server.

Total statistics are newly included in build 31, for highest server load moments, and total over the whole server hosting session. These stats are listed to console output at the end of app. Press Ctrl-C to abort the server, then read from the console.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Flash policy will be looked for in the application folder, or generated if missing.

Be aware the Unix-based OSes will get permission denied hosting on Flash policy port 843, since ports 1024 and less are privileged and usually sudo-only. You can run as sudo, or give an exception using CAP_NET_BIND_SERVICE. The server will host fine without Flash policy.

Code signing is used on the Windows EXEs included, signed to Darkwire Software.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Bluewing Server build 26

13 Jun 10:49
Compare
Choose a tag to compare

First Unicode build, with no caps on uploads/downloads, and with flash policy enabled.
Both x86 and x64 are available.

Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.
Note: this includes an ASCII human-readable name check. Channel names, client names and text messages sent to server have this check applied.
A-Z, a-z, 0-9, spaces and punctuation are valid characters.
Denied names result in On Name Denied/On Join Channel Denied on client-side, with deny reasons warning the server is not a Unicode server.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Flash policy will be looked for in the EXE folder, or generated if missing.
Code signing is used on the EXEs included, signed to Darkwire Software.

Bluewing Server build 25 - final ANSI build

30 Nov 01:02
Compare
Choose a tag to compare

Final ANSI build, with no caps on uploads/downloads, and with flash policy enabled.
These are x86 builds, while x64 is possible, the very low footprint of the server makes it unnecessary.
Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.
Note: this includes an ASCII human-readable name check.
A-Z, a-z, 0-9, spaces and punctuation are valid name characters.
Denied names result in On Name Denied/On Join Channel Denied on client-side, with deny reasons warning the server is not a Unicode server.
Note that Unicode Blue clients can still connect to ANSI servers, due to UTF-8 and ASCII overlapping, but in build 25 they are limited to those characters.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Flash policy will be looked for in the EXE folder, or generated if missing.
Code signing is used on the EXEs included, signed to Darkwire Software.

Bluewing Server build 21 - ANSI build

05 Sep 20:50
Compare
Choose a tag to compare

ANSI build, with no caps on uploads/downloads, and with flash policy enabled.
These are x86 builds, while x64 is possible, the very low footprint of the server makes it unnecessary.
Note: this does not include an ANSI human-readable name check. Build 25 is the only ANSI build to enforce name standards.

Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Flash policy will be looked for in the EXE folder, or generated if missing.
Code signing is used on the EXEs included, signed to Darkwire Software.

Bluewing Server build 20 - ANSI build

26 Aug 19:38
Compare
Choose a tag to compare

ANSI build, with no caps on uploads/downloads, and with flash policy enabled.
These are x86 builds, while x64 is possible, the very low footprint of the server makes it unnecessary.
Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Flash policy will be looked for in the EXE folder, or generated if missing.
Code signing is used on the EXEs included, signed to Darkwire Software.

Bluewing Server build 19 - Unstable ANSI build

06 Aug 01:31
Compare
Choose a tag to compare

ANSI build, with no caps on uploads/downloads, and with flash policy enabled.
These are x86 builds, while x64 is possible, the very low footprint of the server makes it unnecessary.
Includes a 10-minute inactivity timeout; activity is any of:

  1. Message to server (if server has set a server message handler)
  2. Message to channel (if there's any peers in the channel)
  3. Message to peer

When kicked for inactivity, a message is sent from server -> client on subchannel 0 just before disconnect.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Flash policy will be looked for in the EXE folder, or generated if missing.
Code signing is used on the EXEs included, signed to Darkwire Software.

The ping timer issue of build 18 that originally appeared in the build 18 release was related to the Visual Studio preview version used to build. This issue is not in these zips, and there is a check for if the user is using a faulty version of VS in the ping timer code.

This server has an issue with client->server messages that cause the server to instantly crash (fixed in build 20). It's highly recommended you do not use this version.

Bluewing Server build 17 - Unstable ANSI build

06 Jul 20:02
Compare
Choose a tag to compare

ANSI build, with no caps on uploads/downloads, and with flash policy enabled.
These are x86 builds, while x64 is possible, the very low footprint of the server makes it unnecessary.

One download waits for you to enter a port on the console then press Enter.
The other uses port 6121, no user input required - good for if you want to automatically reboot your server.

Code can be easily modified to remove flash policy, or to use a fixed custom port.
Code signing is used on the EXEs included, signed to Darkwire Software.

This server has an issue with client->server messages that cause the server to instantly crash (fixed in build 20). It's highly recommended you do not use this version.