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
aeb8540ad4
Fix kickability.
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
Juliusz Chroboczek
211845564e
Increase the saved chat history.
2020-09-18 11:48:21 +02:00
Juliusz Chroboczek
f8ae908d7a
Implement message for locked groups.
2020-09-18 11:40:00 +02:00
Juliusz Chroboczek
e824b93584
Improve error handling in ServerConnection.connect.
2020-09-18 11:28:13 +02:00
Juliusz Chroboczek
b2f01a528e
Fix URL in ServerConnection.connect.
2020-09-18 11:24:33 +02:00
Juliusz Chroboczek
5a4db62873
Call context cancel function after shutdown.
...
Keeps go vet from complaining.
2020-09-18 10:36:05 +02:00
Juliusz Chroboczek
2347417f83
Merge branch 'modular' into master
2020-09-18 10:33:17 +02:00
Juliusz Chroboczek
709a6857d3
Update .gitignore.
2020-09-18 10:31:42 +02:00
Juliusz Chroboczek
6f5ae12f14
Move RTP-specific code into its own package.
2020-09-18 10:28:05 +02:00
Juliusz Chroboczek
98245cbd24
Draw recorder ids randomly.
2020-09-18 10:26:00 +02:00
Juliusz Chroboczek
7ce61a1100
Move stats code into its own module.
...
Move RTP-specific code into its own file.
2020-09-18 10:26:00 +02:00
Juliusz Chroboczek
714a0939d6
Fix formatting of /me.
2020-09-16 01:47:36 +02:00
Juliusz Chroboczek
77179c3db9
Allow usernames with spaces.
...
This requires a proper parser for commands.
2020-09-16 01:42:39 +02:00
Juliusz Chroboczek
1672f13230
Don't login automatically.
...
Users find it confusing, especially when the browser disables autoplay.
2020-09-16 01:02:46 +02:00
Antonin Décimo
5ad4df5a45
Add missing semicolons.
2020-09-14 17:23:06 +02:00
Antonin Décimo
c6d065aa20
Println doesn't support formats.
2020-09-14 17:22:22 +02:00
Juliusz Chroboczek
aa3e094f65
Fix checkbox for activity detection, increase interval to 200ms.
2020-09-14 17:15:44 +02:00
Juliusz Chroboczek
813d89b60d
Move disk writer to its own package.
2020-09-13 20:51:18 +02:00
Juliusz Chroboczek
c608723394
Move group and client to their own package.
2020-09-13 20:51:15 +02:00
Juliusz Chroboczek
d9cf32eda7
Move connections to their own package.
2020-09-13 20:40:33 +02:00
Juliusz Chroboczek
7148ea1864
Make AllowRecording into a method of group.
2020-09-13 20:40:33 +02:00
Juliusz Chroboczek
03e57aac90
Make Redirect a method of group.
2020-09-13 20:40:33 +02:00
Juliusz Chroboczek
f2fcc09e61
Implement NewDiskClient.
2020-09-13 20:33:53 +02:00
Juliusz Chroboczek
7126394e65
Fix locking in group.go.
...
Also export some fields as thread-safe methods.
2020-09-13 20:33:53 +02:00
Juliusz Chroboczek
938d231b30
Make API a method of group.
2020-09-13 13:09:34 +02:00
Juliusz Chroboczek
22c6ad6b8c
Implement ranging over groups.
2020-09-13 12:24:06 +02:00
Juliusz Chroboczek
fb02c6fe1f
Move client actions to webclient.go.
...
These are specific to webclients.
2020-09-13 11:57:33 +02:00
Juliusz Chroboczek
78e9c96a53
Make SetPermissions part of the client interface.
2020-09-13 10:45:16 +02:00
Juliusz Chroboczek
0064aa6fd2
Split out statistics functions into stats.go.
2020-09-13 10:10:35 +02:00
Juliusz Chroboczek
1fe64e15f0
Remove packet pacing.
...
It's not obvious that it's useful, especially now that the writer
is split into multiple threads. Do retain the dynamically computed
delay in case of audio congestion.
2020-09-13 09:40:49 +02:00
Juliusz Chroboczek
96dbcd9dcb
Release lock early in newUpConn.
...
Otherwise recording to disk causes a deadlock.
2020-09-13 02:27:50 +02:00
Juliusz Chroboczek
fa29e50f8b
Split writer loop into multiple threads.
...
This improves both scaling and fairness in the case where a single
track is being sent to large numbers of receivers. We avoid
communication overhead by growing the number of threads as the
square root of the number of receivers.
2020-09-13 02:02:11 +02:00
Juliusz Chroboczek
8d58571d4c
Create webserver structure in main thread.
...
Avoids a race.
2020-09-13 02:02:11 +02:00
Juliusz Chroboczek
71022f4b58
Remove ErrWriterDead, replace with ErrClientDead.
2020-09-13 02:02:11 +02:00
Juliusz Chroboczek
abb8b70a0d
Load toastify before its users.
2020-09-12 18:31:04 +02:00
Juliusz Chroboczek
66a721a55c
Improve typing of sfu.js.
2020-09-12 16:44:42 +02:00
Juliusz Chroboczek
6a554831a1
Sort users lexicographically.
2020-09-12 16:44:42 +02:00
Juliusz Chroboczek
c9b61ab532
Remove unused function getTimestamp.
2020-09-12 14:47:09 +02:00
Juliusz Chroboczek
6f120f0333
Make disk recording clients kickable.
...
Kick can no longer be called with groups locked.
2020-09-12 14:00:14 +02:00
Juliusz Chroboczek
e37e27036e
Implement graceful server shutdown.
...
This gives the user a friendly message when the server shuts down.
2020-09-12 13:59:55 +02:00
Juliusz Chroboczek
7707775cca
Implement user-readable message for kick.
2020-09-12 12:26:07 +02:00
Juliusz Chroboczek
5c97e739a6
Implement activity detection.
2020-09-11 23:43:30 +02:00
Juliusz Chroboczek
d35f599922
Minor fixes to sfu.js.
2020-09-11 22:46:23 +02:00
Juliusz Chroboczek
0b5416f617
Revert blurring failed media.
...
Failed media must still be usable.
2020-09-11 21:53:53 +02:00
Juliusz Chroboczek
8d9c3d7d1c
Add userdata field to ServerConnection and Stream.
2020-09-11 21:39:18 +02:00
Juliusz Chroboczek
e698e187e6
Merge branch 'design' into master
2020-09-11 19:03:23 +02:00