100 Commits
Author SHA1 Message Date
Juliusz Chroboczek 122db74fb8 Use message passing for changing permissions.
We used to handle permission change commands by directly mutating
the permissions field from the source client's thread, which is
racy.  We now use message passing.

Thanks to Vinayak Mishra.
2026-04-30 00:50:22 +02:00
Juliusz Chroboczek e3f098e189 Use constant time comparison for WHIP tokens.
Thanks to Vinayak Mishra.
2026-04-30 00:18:29 +02:00
Juliusz Chroboczek ab44a661cb Export group.ConstantTimeCompare. 2026-04-30 00:18:16 +02:00
Juliusz Chroboczek 4683c3c126 Minor tweaks to galene.js. 2026-04-29 19:43:36 +02:00
Juliusz Chroboczek fb546d8b96 Fix guard in parseCommand. 2026-04-29 19:43:14 +02:00
Juliusz Chroboczek 56220bb942 Update this.frameRate in filters.
We weren't correctly updating the framerate, which caused us to
recheck every 30 frames.
2026-04-29 19:41:02 +02:00
Juliusz Chroboczek b0ce21defe Use EncodeURIComponent in setChangePassword. 2026-04-29 19:40:33 +02:00
Juliusz Chroboczek 213e3e5c6d Limit message size in keyHandler.
Thanks to Vinayak Mishra.
2026-04-07 17:41:24 +02:00
Juliusz Chroboczek eea92c5ac5 Fix CORS headers for key handler. 2026-04-07 17:40:16 +02:00
Juliusz Chroboczek c28a24aa32 Update CHANGES. 2026-04-07 15:51:20 +02:00
Juliusz Chroboczek d76f594130 Limit the size of API requests.
Thanks to Vinayak Mishra.
2026-04-07 15:47:11 +02:00
Juliusz Chroboczek 2b4952fcf1 Protect websocket against oversized messages.
The maximum message size of 1MB is probably overkill, but SDP
can grow pretty large.  Thanks to Vinayak Mishra.
2026-04-07 15:45:24 +02:00
Juliusz Chroboczek a4c917f9ca Fix width of invite dialog.
Reported by on6zq.
2026-03-14 13:23:20 +01:00
Juliusz Chroboczek 888aa9bcd1 Add congtributing section to README. 2026-03-08 13:14:04 +01:00
Juliusz Chroboczek 4cf2c9e14c Rework include-subgroups for cryptographic tokens. 2025-11-20 18:13:09 +01:00
Juliusz Chroboczek 24ee1f6a18 Update CHANGES. 2025-11-20 17:29:03 +01:00
Juliusz Chroboczek f9b86db9fb Fix incorrect error message in galenectl. 2025-11-20 17:28:07 +01:00
Juliusz Chroboczek 783502be6a Fix typo in documentation.
Thanks to CompuRoot.
2025-10-28 14:02:08 +01:00
Juliusz Chroboczek efcb2c04e7 Create configuration directory if needed.
This would cause "galenectl initial-setup" to fail if the configuration
directory didn't exist.  Thanks to CompuRoot.
2025-10-28 13:59:50 +01:00
Juliusz Chroboczek 82275d03e0 Mention curl -O as an alternative to wget. 2025-10-13 01:41:01 +02:00
Juliusz Chroboczek fff2acf1f0 Improve logging of authorisation errors. 2025-09-17 12:08:12 +02:00
Juliusz Chroboczek 594e1c2032 Remove references to form.active.
HTMLFormElement does not have an "active" member.
2025-08-22 12:18:37 +02:00
Juliusz Chroboczek 7bf098a57c Use binaryType=blob for file transfer.
This was the intended behaviour, but the default value changed
at some point.  This should in principle allow receiving files
larger than available RAM.
2025-08-21 22:55:41 +02:00
Juliusz Chroboczek b40dcd2fc8 More proof-reading of documentation. 2025-08-21 16:48:10 +02:00
Juliusz Chroboczek efc153788c Update CHANGES. 2025-08-21 15:42:12 +02:00
Juliusz Chroboczek a631975df3 Proof-read galene.md and galene-install.md. 2025-08-21 15:36:32 +02:00
Juliusz Chroboczek 23575ea122 Fix caching of stateful tokens after an addition. 2025-08-18 13:00:22 +02:00
Juliusz Chroboczek 22af4567e9 Documentation rework. 2025-08-17 16:30:05 +02:00
Juliusz Chroboczek 5bbfd287e5 Implement galenectl show-group. 2025-08-14 17:42:06 +02:00
Juliusz Chroboczek caaf0b168b Add options unrestricted-tokens and auto-subgroups. 2025-08-14 17:13:22 +02:00
Juliusz Chroboczek bde8f01b52 Implement boolOption in galenectl. 2025-08-14 16:47:33 +02:00
Juliusz Chroboczek 135630ba5c Remove trailing whitespace in INSTALL. 2025-08-13 15:43:44 +02:00
Juliusz Chroboczek ea5ad4a725 Improve error handling in web server. 2025-08-13 14:32:33 +02:00
Juliusz Chroboczek e19900b45e Protect against nil stringOption. 2025-08-12 22:53:50 +02:00
Juliusz Chroboczek 377f32bd0b Implement global tokens in galenectl. 2025-08-12 21:31:18 +02:00
Juliusz Chroboczek 164bedc73d Rework optional flags in galenectl. 2025-08-12 21:22:48 +02:00
Juliusz Chroboczek b78b2c040d Implement global tokens. 2025-08-12 18:13:14 +02:00
Juliusz Chroboczek 630a316baf Remove special treatment of "" in stateful.List. 2025-08-12 17:35:21 +02:00
Juliusz Chroboczek 1ebb993fab Simplify apiHandler. 2025-08-12 16:02:04 +02:00
Juliusz Chroboczek f5cd385530 Implement galenectl initial-setup. 2025-08-11 17:58:09 +02:00
Juliusz Chroboczek bcd4b09a17 Fix typo in error message. 2025-08-10 18:44:28 +02:00
Juliusz Chroboczek e6e750d06d Improve error handling in background blur worker. 2025-08-10 16:47:16 +02:00
Juliusz Chroboczek 49dd875ad7 Improve error handling in workerSendReceive. 2025-08-10 16:24:06 +02:00
Juliusz Chroboczek c782102567 Remove stray debugging message. 2025-08-10 16:22:28 +02:00
Juliusz Chroboczek fcdf8bc0ad Update CHANGES for 1.0. 2025-08-09 16:26:35 +02:00
Juliusz Chroboczek 3d1e1f35f4 Allow deleting keys in JSON templates. 2025-08-02 23:30:15 +02:00
Juliusz Chroboczek 66f70429e2 Implement JSON templates in galenectl.
This allows setting and updating arbitrary fields in the group and
user definitions by passing a JSON template on standard input.
2025-08-02 23:21:05 +02:00
Juliusz Chroboczek 9babc3e415 Update CHANGES. 2025-08-01 17:48:05 +02:00
Juliusz Chroboczek abfb1e550b Update dependencies. 2025-08-01 17:42:59 +02:00
Juliusz Chroboczek 4a15207b0a Hierarchical tokens in galenectl. 2025-08-01 15:07:43 +02:00
Juliusz Chroboczek a217b7bbc4 Hierarchical tokens. 2025-08-01 15:07:34 +02:00
Juliusz Chroboczek b88e2f4d93 Implement /sharescreen.
Also rename /stopshare to /unsharescreen.
2025-07-30 14:18:44 +02:00
Juliusz Chroboczek e7162642a7 Clone Group.Data and Client.Data.
This avoids a race condition.  Thanks to git-lul.
2025-07-09 23:39:37 +02:00
Juliusz Chroboczek 78872f3f6c Require Go 1.21.
This is required in order to use the maps package.
2025-07-09 23:38:26 +02:00
Juliusz Chroboczek 70d10e81b3 Fixes to documentation.
Thanks to the kind people on the Yunohost forums for pointing
out the issues.
2025-07-09 23:21:56 +02:00
Juliusz Chroboczek 150e4fe5e7 Update CHANGES. 2025-06-13 15:07:00 +02:00
Juliusz Chroboczek a6410b5a68 Implement CORS for the administrative interface. 2025-06-13 15:00:16 +02:00
Juliusz Chroboczek 7204889085 Better implementation of CORS. 2025-06-13 14:26:40 +02:00
Juliusz Chroboczek 321b2686af Update dependencies. 2025-06-13 12:16:36 +02:00
Juliusz Chroboczek 6da48f712c Update CHANGES. 2025-05-15 19:12:41 +02:00
Juliusz Chroboczek 5cfbc0f641 Upgrade pion/turn to v4.0.2.
This avoids spamming the logs with per-packet messages.
2025-05-15 19:06:38 +02:00
Juliusz Chroboczek 37710a1994 Update dependencies. 2025-05-15 18:43:07 +02:00
Juliusz Chroboczek 094eb94784 Rephrase the copy operation in prose. 2025-05-04 20:44:24 +02:00
Juliusz Chroboczek c32286c42f Add rotate filter. 2025-04-08 15:22:56 +02:00
Juliusz Chroboczek ea30dd3b40 Fix typo in README. 2025-04-07 14:05:07 +02:00
Juliusz Chroboczek b0f72a0346 Fix typo in README.
Thanks to Guido Vanden Wyngaerd.
2025-04-06 11:44:04 +02:00
Juliusz Chroboczek a7fbe6a2ae Use -udp-range for both range and multiplexing. 2025-03-30 23:20:39 +02:00
Juliusz Chroboczek c17cca15e9 Minor cleanups in galene.js. 2025-03-23 22:14:56 +01:00
Juliusz Chroboczek 3f5cdc7653 Fix typo in setMediaStatus.
The warning would never trigger.
2025-03-23 22:14:15 +01:00
Juliusz Chroboczek 48b9e82d3d Fix syntax of typing in protocol.js. 2025-03-23 22:05:54 +01:00
Juliusz Chroboczek 9617c68fd6 Work around TypeScript being too smart. 2025-03-23 12:43:47 +01:00
Juliusz Chroboczek 4f215f8e3c Update dependencies. 2025-03-22 22:39:43 +01:00
Juliusz Chroboczek 491fac6d37 Update CHANGES. 2025-03-22 20:57:40 +01:00
Juliusz Chroboczek 85c32897ad Implement UDP muxing. 2025-03-22 20:56:03 +01:00
Juliusz Chroboczek e09b135cd2 Run gofmt. 2025-03-21 15:15:41 +01:00
Juliusz Chroboczek 3b83044d67 Implement ICE restarts for WHIP. 2025-03-10 13:43:10 +01:00
Juliusz Chroboczek 8bfea927d3 Implement processing of trickle-ice-sdpfrag.
This is required for WHIP restarts.
2025-03-10 13:15:04 +01:00
Juliusz Chroboczek 9892ddbc5e Add ETag support to WHIP server. 2025-03-08 22:45:28 +01:00
Juliusz Chroboczek 078332f73a Check ICE ufrag and pwd in WHIP PATCH requests. 2025-03-08 22:44:55 +01:00
Juliusz Chroboczek dcbdfebf2a Simplify and extend parseSDPFrag.
We now return a list of candidates instead of using a callback.  Also
return the ICE ufrag and pwd.
2025-03-08 22:18:59 +01:00
Juliusz Chroboczek 8f0850d0f0 Upgrade to Pion v4. 2025-03-08 18:41:52 +01:00
Juliusz Chroboczek 26f7ac0b21 Use empty interceptor registry.
This is the default in Pion v3, but not in v4.  This is required
since we do our own NACK handling and congestion control.
2025-03-08 18:38:55 +01:00
Juliusz Chroboczek d7edd802b6 Update CHANGES for 0.96.3. 2025-03-08 18:29:27 +01:00
Juliusz Chroboczek 43de0cd559 Revert "Move chat button to the left on mobile."
This reverts commit 6f6cce94fa.

Reason for commit: this caused the chat button to disappear on mobile.
2025-03-08 18:26:57 +01:00
Juliusz Chroboczek bbc154b68f Update CHANGES. 2025-03-08 18:13:14 +01:00
Juliusz Chroboczek 3dfc19a051 Allow empty usernames again. 2025-03-01 19:00:15 +01:00
Juliusz Chroboczek 377ab0efcf Add unit test for constantTimeCompare. 2025-01-22 00:28:26 +01:00
Juliusz Chroboczek e8538bdf3b Add unit test for constantTimeCompare. 2025-01-22 00:28:26 +01:00
Juliusz Chroboczek 7bb70b4339 Add omitted entry to CHANGES. 2025-01-22 00:28:22 +01:00
Juliusz Chroboczek 7ef2ac1561 Update CHANGES for 0.96.2. 2025-01-22 00:01:19 +01:00
Juliusz Chroboczek 3b875702d8 Set default password hashing to bcrypt in set-password.
We had switched hash-password, but not set-password.
2025-01-21 23:53:22 +01:00
Juliusz Chroboczek aebe91ddac Fix constantTimeCompare. 2025-01-21 23:40:49 +01:00
Juliusz Chroboczek df71f66fdf Disable TLS 1.0 and 1.1.
Suggested by Stefan Vink of Radically Open Security.
2025-01-20 17:36:18 +01:00
Juliusz Chroboczek 910b60f3c4 Change default password hashing algorithm to bcrypt.
Now that we limit the number of concurrent password hashing
operations, it is safe to use an algorithm that uses a fait
amount of memory.  We use strength 8, which is below the recommended
default, in order to keep password hashing time below 25ms.
2025-01-20 16:47:49 +01:00
Juliusz Chroboczek 7a99668c6d Limit the number of concurrent password hashing operations.
This avoids running out of memory when doing too many BCrypt
operations at the same time.
2025-01-19 12:21:03 +01:00
Juliusz Chroboczek 5fa945b073 Implement background blur on Safari.
Safari doesn't implement filtered drawing on HTML canvas,
it silently ignores the "filter" property of Context2D.
We implement our own blurring by scaling the background down
and then back up.
2025-01-19 11:49:23 +01:00
Juliusz Chroboczek 590af61ba8 Update CHANGES for 0.96.1. 2025-01-18 16:44:33 +01:00
Juliusz Chroboczek edd91a8f3f Delay opening safariStream until after join.
Also close the stream when we leave.
2025-01-18 02:42:34 +01:00
Juliusz Chroboczek 4d6a7a9241 Update CHANGES. 2025-01-17 16:01:36 +01:00
Juliusz Chroboczek 947ce61d3c Remove "data:" from CSP header.
This hasn't been needed for a long time.
2025-01-17 12:29:39 +01:00