Commit graph

1406 commits

Author SHA1 Message Date
Joachim Bauch 040e663b37
Add examples on how to set "X-Real-IP" for Apache and Caddy. 2024-05-23 09:32:10 +02:00
Joachim Bauch 15b1214413
Add note that "X-Real-Ip" will take precedence. 2024-05-23 09:20:08 +02:00
Joachim Bauch 05810e10ce
Improve detection of actual client IP.
Based on recommendations from MDN.
2024-05-23 09:16:25 +02:00
Joachim Bauch 7e7a04ad6c
Merge pull request #746 from strukturag/dependabot/docker/docker/janus/alpine-3.20
Bump alpine from 3.19 to 3.20 in /docker/janus
2024-05-23 07:50:48 +02:00
dependabot[bot] d25169d0ff
Bump alpine from 3.19 to 3.20 in /docker/janus
Bumps alpine from 3.19 to 3.20.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 20:08:31 +00:00
Joachim Bauch 79b76b1ca4
Merge pull request #745 from strukturag/shellcheck
docker: Fix proxy entrypoint.
2024-05-22 14:12:50 +02:00
Joachim Bauch f8e37a1bca
docker: Add missing "fi" in proxy entrypoint. 2024-05-22 14:09:52 +02:00
Joachim Bauch b5cbb917c5
Fix shellcheck errors and make executable. 2024-05-22 14:09:52 +02:00
Joachim Bauch e2ac08ae67
CI: Run shellcheck on scripts. 2024-05-22 14:09:51 +02:00
Joachim Bauch 00d17bae97
Update changelog for 1.3.0 2024-05-22 11:05:10 +02:00
Joachim Bauch ff69a294a9
Add note on remote streams. 2024-05-22 10:59:34 +02:00
Joachim Bauch 5790e7a369
Merge pull request #744 from strukturag/backend-throttle
Add throttler for backend requests
2024-05-22 10:39:50 +02:00
Joachim Bauch 4c807c86e8
Throttle resume / internal hello. 2024-05-22 10:35:11 +02:00
Joachim Bauch e862392872
Add throttled requests to metrics. 2024-05-22 10:35:09 +02:00
Joachim Bauch 39f4b2eb11
server: Increase default write timeout so delayed responses can be sent out. 2024-05-22 10:34:29 +02:00
Joachim Bauch 7f8e44b3b5
Add bruteforce detection to backend server room handler. 2024-05-22 10:34:29 +02:00
Joachim Bauch 31b8c74d1c
Add throttler class. 2024-05-22 10:34:25 +02:00
Joachim Bauch 5f18913646
Merge pull request #743 from strukturag/dependabot/go_modules/github.com/nats-io/nats-server/v2-2.10.16
build(deps): Bump github.com/nats-io/nats-server/v2 from 2.10.15 to 2.10.16
2024-05-22 07:42:47 +02:00
dependabot[bot] 716a93538b
---
updated-dependencies:
- dependency-name: github.com/nats-io/nats-server/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 20:19:36 +00:00
Joachim Bauch 2cd3418f09
Merge pull request #708 from strukturag/proxy-features
Add support for remote streams
2024-05-21 09:49:47 +02:00
Joachim Bauch c6cbe88d0e
Pass contexts when creating / starting MCUs. 2024-05-21 09:29:23 +02:00
Joachim Bauch f73ad7b508
Add tests for publishers on different hubs. 2024-05-21 09:29:23 +02:00
Joachim Bauch efb722a55e
Use interface instead of concrete "Hub" class for GRPC server. 2024-05-21 09:29:22 +02:00
Joachim Bauch d63b1cf14a
proxy: Add more token tests. 2024-05-21 09:29:22 +02:00
Joachim Bauch 75060b25aa
Add testcase for subscriber in different country but same continent. 2024-05-21 09:29:21 +02:00
Joachim Bauch 7e7a6d5c09
Support bandwidth limits when selecting proxy to use. 2024-05-21 09:29:20 +02:00
Joachim Bauch a4b8a81734
Automatically reconnect proxy connections if interrupted. 2024-05-21 09:29:19 +02:00
Joachim Bauch 3ce963ee91
Re-create publisher with new endpoint if it already exists. 2024-05-21 09:29:19 +02:00
Joachim Bauch 24c1a09662
Add methods to unpublish remotely. 2024-05-21 09:29:18 +02:00
Joachim Bauch 56f5a72f61
Get list of remote streams from offer/answer SDP. 2024-05-21 09:29:17 +02:00
Joachim Bauch a66c1d82bf
Move Janus classes to separate files, no functional changes. 2024-05-21 09:29:17 +02:00
Joachim Bauch d9deddfda7
Move remote classes to separate files and add event handlers. 2024-05-21 09:29:16 +02:00
Joachim Bauch 9c99129242
Make "skipverify" configurable for remote proxy requests. 2024-05-21 09:29:15 +02:00
Joachim Bauch 63c42dd84c
First draft of remote subscriber streams. 2024-05-21 09:29:15 +02:00
Joachim Bauch 92cbc28065
Add basic tests for mcu proxy client. 2024-05-21 09:29:14 +02:00
Joachim Bauch 132cf0d474
Add "String()" method to messages to help with debugging. 2024-05-21 09:29:11 +02:00
Joachim Bauch 4fd929c15a
Merge pull request #733 from strukturag/relax-message-validation
Relax "MessageClientMessageData" validation.
2024-05-21 09:28:50 +02:00
Joachim Bauch 879469df19
Merge pull request #741 from strukturag/dependabot/go_modules/github.com/nats-io/nats-server/v2-2.10.15
build(deps): Bump github.com/nats-io/nats-server/v2 from 2.10.14 to 2.10.15
2024-05-21 09:27:59 +02:00
Joachim Bauch fe0a002adf
Merge pull request #739 from strukturag/rawmessage-pointer
Don't use unnecessary pointer to "json.RawMessage".
2024-05-21 09:27:31 +02:00
dependabot[bot] 7b555e91ec
build(deps): Bump github.com/nats-io/nats-server/v2
Bumps [github.com/nats-io/nats-server/v2](https://github.com/nats-io/nats-server) from 2.10.14 to 2.10.15.
- [Release notes](https://github.com/nats-io/nats-server/releases)
- [Changelog](https://github.com/nats-io/nats-server/blob/main/.goreleaser.yml)
- [Commits](https://github.com/nats-io/nats-server/commits)

---
updated-dependencies:
- dependency-name: github.com/nats-io/nats-server/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 07:21:47 +00:00
Joachim Bauch b2afa88bcc
Merge pull request #740 from strukturag/dependabot/go_modules/github.com/nats-io/nats.go-1.35.0
build(deps): Bump github.com/nats-io/nats.go from 1.34.1 to 1.35.0
2024-05-21 09:20:59 +02:00
Joachim Bauch 1bbc49351a
Merge pull request #742 from strukturag/leave-room-lock-order-inversion
Fix lock order inversion when leaving room / publishing room sessions.
2024-05-21 09:20:34 +02:00
Joachim Bauch dff78d0101
Fix lock order inversion when leaving room / publishing room sessions.
Deadlock could happen between

1 @ 0x44038e 0x451898 0x45186f 0x46f325 0x489f3d 0xbb7b76 0xbb7b45 0xc1fe52 0xc190f7 0x473461
0x46f324	sync.runtime_SemacquireMutex+0x24							/usr/lib/go-1.21/src/runtime/sema.go:77
0x489f3c	sync.(*Mutex).lockSlow+0x15c								/usr/lib/go-1.21/src/sync/mutex.go:171
0xbb7b75	sync.(*Mutex).Lock+0x55									/usr/lib/go-1.21/src/sync/mutex.go:90
0xbb7b44	github.com/strukturag/nextcloud-spreed-signaling.(*ClientSession).RoomSessionId+0x24	/build/nextcloud-spreed-signaling-1.2.3/clientsession.go:157
0xc1fe51	github.com/strukturag/nextcloud-spreed-signaling.(*Room).publishActiveSessions+0x231	/build/nextcloud-spreed-signaling-1.2.3/room.go:925
0xc190f6	github.com/strukturag/nextcloud-spreed-signaling.(*Room).run+0x36			/build/nextcloud-spreed-signaling-1.2.3/room.go:179

(which locks "mu" in the room and then "mu" in the client session) and

1 @ 0x44038e 0x451898 0x45186f 0x46f3e5 0x48b44a 0xc1ba76 0xbba37e 0xbe2aab 0xbdf8e5 0xbee0f8 0xbb6134 0x473461
0x46f3e4	sync.runtime_SemacquireRWMutex+0x24							/usr/lib/go-1.21/src/runtime/sema.go:87
0x48b449	sync.(*RWMutex).Lock+0x69								/usr/lib/go-1.21/src/sync/rwmutex.go:152
0xc1ba75	github.com/strukturag/nextcloud-spreed-signaling.(*Room).RemoveSession+0x35		/build/nextcloud-spreed-signaling-1.2.3/room.go:440
0xbba37d	github.com/strukturag/nextcloud-spreed-signaling.(*ClientSession).LeaveRoom+0xdd	/build/nextcloud-spreed-signaling-1.2.3/clientsession.go:489
0xbe2aaa	github.com/strukturag/nextcloud-spreed-signaling.(*Hub).processRoom+0x6a		/build/nextcloud-spreed-signaling-1.2.3/hub.go:1268
0xbdf8e4	github.com/strukturag/nextcloud-spreed-signaling.(*Hub).processMessage+0x984		/build/nextcloud-spreed-signaling-1.2.3/hub.go:909
0xbee0f7	github.com/strukturag/nextcloud-spreed-signaling.(*Hub).OnMessageReceived+0x17		/build/nextcloud-spreed-signaling-1.2.3/hub.go:2427
0xbb6133	github.com/strukturag/nextcloud-spreed-signaling.(*Client).processMessages+0x53		/build/nextcloud-spreed-signaling-1.2.3/client.go:347

(which locks "mu" in the client session and then "mu" in the room).
2024-05-21 09:09:10 +02:00
dependabot[bot] 2ad2327090
build(deps): Bump github.com/nats-io/nats.go from 1.34.1 to 1.35.0
Bumps [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go) from 1.34.1 to 1.35.0.
- [Release notes](https://github.com/nats-io/nats.go/releases)
- [Commits](https://github.com/nats-io/nats.go/compare/v1.34.1...v1.35.0)

---
updated-dependencies:
- dependency-name: github.com/nats-io/nats.go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-17 20:42:38 +00:00
Joachim Bauch 4b76a49355
Don't use unnecessary pointer to "json.RawMessage".
The slice is a pointer already.
2024-05-16 20:58:42 +02:00
Joachim Bauch f6125dac3f
docker: Make trusted proxies configurable.
Follow-up to #738
2024-05-16 16:31:08 +02:00
Joachim Bauch c2e93cd92a
Merge pull request #738 from strukturag/trusted-proxies
Make trusted proxies configurable and default to loopback / private IPs.
2024-05-16 16:24:44 +02:00
Joachim Bauch 4f8349d4c1
Update tests. 2024-05-16 14:51:28 +02:00
Joachim Bauch aac4874e72
Make trusted proxies configurable and default to loopback / private IPs. 2024-05-16 14:44:00 +02:00
Joachim Bauch 936f83feb9
Merge pull request #693 from strukturag/dependabot/go_modules/etcd-a88448dd84
build(deps): Bump the etcd group with 4 updates
2024-05-16 13:32:20 +02:00