Juliusz Chroboczek
dc34350d8f
Complete parsing of WHIP candidates.
2023-12-20 01:42:11 +01:00
Juliusz Chroboczek
be2d3ab4ca
Fix error handing in WHIP resource handler.
2023-12-20 00:40:30 +01:00
Juliusz Chroboczek
5c2e5ee5c0
Add test for parsing bearer tokens.
2023-12-09 20:50:39 +01:00
Juliusz Chroboczek
bee1c3d0c3
Use url.JoinPath in webserver.
2023-12-09 17:40:04 +01:00
Juliusz Chroboczek
1f3b349ea2
Use MaxBytesReader in whip.
2023-12-09 16:17:48 +01:00
Juliusz Chroboczek
1e050fa4e3
Implement the WHIP protocol.
2023-07-11 17:25:58 +02:00
Juliusz Chroboczek
90e2de0b2d
Add configuration option publicServer.
2023-07-10 23:59:24 +02:00
Juliusz Chroboczek
aa53b78b2c
Distinguish between no username and empty username.
2023-04-03 22:58:38 +02:00
Alexandre Iooss
02e7c7e824
Add Referrer-Policy and X-Content-Type-Options headers
2023-04-01 15:32:23 +02:00
Juliusz Chroboczek
be0f05dac8
Fix incorrect formatting of error message.
2022-10-21 19:05:37 +02:00
Juliusz Chroboczek
10c57c7596
Don't use url.JoinPath.
...
It was introduced in Go 1.19.
2022-10-21 19:03:42 +02:00
Juliusz Chroboczek
16e2888d56
Add new configuration directive proxyURL.
...
The strategy of computing the base URL from the request doesn't
necessarily work if we're behind a reverse proxy. proxyURL
can be set in cases where our guess is incorrect.
Thanks to Dianne Skoll.
2022-10-21 13:28:11 +02:00
Juliusz Chroboczek
31ed146a95
Fix computation of group URL in webserver.
...
We were computing the scheme incorrectly, which caused us
to compute the wrong websocket URL when -insecure is set.
Thanks to Fabien de Montgolfier.
2022-10-09 12:37:13 +02:00
Juliusz Chroboczek
6bdcd504a7
Make GetPermission a method of Group.
2022-09-08 20:55:35 +02:00
Juliusz Chroboczek
b55e531aa5
Encode group location in the status.json file.
2022-09-01 15:38:29 +02:00
Juliusz Chroboczek
4bc873a574
Publish websocket endpoint in group status.
2022-09-01 14:55:52 +02:00
Juliusz Chroboczek
dcb370677f
Allow running the web server on a Unix domain socket.
...
Thanks to Martin Pépin.
2022-08-04 18:36:07 +02:00
Juliusz Chroboczek
fc9f28fd68
Minor cleanups.
2022-04-23 18:43:01 +02:00
Juliusz Chroboczek
de3a016f4d
Set the username in the server when using tokens.
...
This avoids the need to pass the username in the URL without
requiring the client to parse tokens.
2022-02-20 15:33:11 +01:00
Juliusz Chroboczek
a86fb08f6c
Replace ClientPermissions with a list of strings.
...
Now that we support external auth, the permissions list is
open-ended. Make it a list for simplicity.
2022-02-19 23:44:57 +01:00
Juliusz Chroboczek
03811db37d
Implement token authentication.
2022-02-18 13:35:17 +01:00
Juliusz Chroboczek
d2dff184d1
Move fontawesome to external, upgrade to 6.0.0.
2022-02-16 19:24:32 +01:00
Juliusz Chroboczek
62fb6d853c
Move toastify into separate dir, upgrade.
2022-02-16 18:56:21 +01:00
Juliusz Chroboczek
24187430e8
Rename client status to data, add group data.
...
We now distinguish between status, which is maintained by the server,
and data, which is provided by the client. In addition to client data,
we now support group data.
2022-01-29 23:28:08 +01:00
Juliusz Chroboczek
5c2e27b21d
Rename mungeHeader to cspHeader.
2021-11-06 00:07:18 +01:00
Juliusz Chroboczek
c00f84bd9d
Fix typo in handling of redirects.
2021-10-30 19:25:18 +02:00
Juliusz Chroboczek
c7c3c9c6b0
Export group status in .status.json.
2021-10-30 19:12:06 +02:00
Juliusz Chroboczek
5e39c3a2a7
Move -redirect into the configuration file.
2021-10-30 18:54:39 +02:00
Juliusz Chroboczek
c0b30c8557
Move administrator password to data/config.json.
2021-10-30 18:54:39 +02:00
Juliusz Chroboczek
019f365981
Remove accessors for group description fields.
...
Consult the description directly.
2021-10-30 18:34:35 +02:00
Juliusz Chroboczek
8c21ede9d2
Don't allow group names to start with a period.
2021-10-28 20:01:11 +02:00
Juliusz Chroboczek
d440cdf898
Don't redirect inexistent groups.
2021-10-28 19:55:40 +02:00
Juliusz Chroboczek
869eb9b839
Move password checking into group.go.
...
It used to be delegated to clients.
2021-10-27 04:15:44 +02:00
Juliusz Chroboczek
de7dc9252f
Use /group/name/ as the main page for the group.
...
We used to omit the slash, which users found confusing.
2021-10-26 19:36:05 +02:00
Juliusz Chroboczek
c860fb96a3
Move server shutdown into group.go.
2021-09-11 15:42:14 +02:00
Juliusz Chroboczek
f1a8f2a307
Normalise recordings URLs.
2021-08-23 20:41:24 +02:00
Juliusz Chroboczek
f837c59d60
Move certificate handling into a separate module.
2021-08-20 01:20:57 +02:00
Juliusz Chroboczek
10becd3828
Minor tweaks to web server.
2021-08-18 18:30:45 +02:00
Juliusz Chroboczek
86b6c71ca0
Reformat stats display, protect against division by zero.
2021-05-07 02:23:10 +02:00
Juliusz Chroboczek
3a6ade988d
Export stats as JSON.
2021-04-30 20:17:10 +02:00
Juliusz Chroboczek
e8bc42d84c
Add certificate_test.go.
2021-02-26 12:52:54 +01:00
Juliusz Chroboczek
b3727824b3
Protect against simultaneous generation of certificates.
2021-02-26 12:38:18 +01:00
Juliusz Chroboczek
c19b356e54
Fail the connection if only one of cert.pem and key.pem exists.
2021-02-24 22:23:38 +01:00
Juliusz Chroboczek
b1babf5b77
Update TLS certificates, generate certificate if not found.
...
We now notice that a TLS certificate on disk has changed, and we
generate a self-signed certificate if none is found.
2021-02-24 20:29:03 +01:00
Juliusz Chroboczek
8f89ac0bcf
Clean up path handling in webserver.
2021-02-07 01:43:40 +01:00
Juliusz Chroboczek
5735322627
Add websocket handshake timeout.
2021-01-04 18:28:54 +01:00
Juliusz Chroboczek
a0418d26ec
Send RTC configuration with joined message.
...
This avoids one HTTP request, and is potentially more flexible.
2020-12-28 02:55:19 +01:00
Jeroen van Veen
fece9287e2
Make https optional.
2020-12-27 16:01:29 +01:00
Juliusz Chroboczek
325f288189
Move to github.
2020-12-19 17:37:48 +01:00
Juliusz Chroboczek
f8e2f755d6
Implement redirection to canonical host.
2020-12-07 03:01:24 +01:00
Juliusz Chroboczek
ef1c211b7f
SFU is now called Galène.
2020-12-06 19:51:02 +01:00
Juliusz Chroboczek
b134bfcf13
Improve error handling on join failure.
...
Solves the issue of groups with a name ending in "/".
2020-12-04 22:56:29 +01:00
Juliusz Chroboczek
b30d4fe537
Add delay after login failure.
2020-12-02 00:07:31 +01:00
Juliusz Chroboczek
4c0fd01258
Implement hashed passwords.
2020-11-29 22:17:51 +01:00
Juliusz Chroboczek
3167c217db
Implement playing of local files.
2020-11-24 19:36:11 +01:00
Juliusz Chroboczek
865848c7bc
Sort files in web interface.
2020-10-08 13:32:50 +02:00
Juliusz Chroboczek
bda58b42c6
Rename disk to diskwriter.
2020-10-04 21:08:34 +02:00
Juliusz Chroboczek
0a49dc4569
Store HTTP server in atomic.Value.
...
Keeps the race detector from complaining.
2020-10-01 19:47:04 +02:00
Juliusz Chroboczek
cca19444d6
Mark paths in recordings server as relative.
...
Since paths may contain colons, they could otherwise be mistaken for
URLs with a scheme.
2020-09-21 23:03:03 +02:00
Juliusz Chroboczek
4e14c29fbb
Rework recordings server.
...
Simplifies the code, makes the files cachable, fixes permission issues.
2020-09-19 14:54:17 +02:00
Juliusz Chroboczek
f5cb2ff328
Rework synchronisation between webserver and main.
...
We now exit with an error code if the webserver couldn't start.
2020-09-18 14:47:33 +02:00
Juliusz Chroboczek
6e84b641e6
Improve cachability of the web server.
2020-09-18 14:47:33 +02:00
Juliusz Chroboczek
4d79d10d6e
Reimplement http.FileServer.
...
http.FileServer is inflexible, it is better to reimplement it
rather than trying to work around its limitations.
2020-09-18 13:40:37 +02:00
Juliusz Chroboczek
6d3932b491
Move webserver into its own package.
2020-09-18 13:11:21 +02:00