1
Fork 0
Commit Graph

488 Commits

Author SHA1 Message Date
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 0aa77441bd Improve typing of javascript code.
We now enable typing of sfu.js.
2020-09-20 17:25:41 +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 eab848f2cf Add ability to receive nothing. 2020-09-18 20:09:52 +02:00
Juliusz Chroboczek 8a4b2f5d3f Implement studio and blackboard mode. 2020-09-18 19:58:05 +02:00
Juliusz Chroboczek b8011371cf Rework settings handling in sfu.js.
There is now a data structure that contains the ultimate truth
about the user's preferences.  We no longer grovel through the
UI components.
2020-09-18 19:58:05 +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 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