Commit Graph

95 Commits

Author SHA1 Message Date
Joachim Bauch 8ba2e0ad64
Switch dependency tracking to Go modules.
With that bump minimum required version to Go 1.13.
2021-04-09 16:15:00 +02:00
Joachim Bauch 43f0b1d598
Merge pull request #83 from strukturag/legacy-ptype
Stop using legacy ptype "listener".
2021-02-24 10:06:02 +01:00
Joachim Bauch 45b543d594
Stop using legacy ptype "listener". 2021-02-24 08:49:10 +01:00
Joachim Bauch 043691d703
Merge pull request #72 from strukturag/align-for-atomic
Align 64-bit members that are accessed atomically.
2021-01-21 13:38:16 +01:00
Joachim Bauch b89e017ae4
Merge pull request #67 from strukturag/limit-sessions
Support limiting number of sessions per backend.
2021-01-07 09:39:35 +01:00
Joachim Bauch f801fc8537
Include "meta" field in client OCS response (follow-up to #74). 2021-01-07 09:32:57 +01:00
Joachim Bauch 82c20ba930
Align 64-bit members that are accessed atomically. 2021-01-05 08:37:09 +01:00
Christian Loelkes 4af4a47ffd fix incorrect OCS response from auth backend
For compliance with the OCS standard, the OCS response structure MUST
be {ocs: {meta:{...}, data: {...}}}. Until now the temporary auth
backend from the client only responded with the data and triggered an
'Incomplete OCS response' from the signaling server.
2020-12-27 12:56:18 +01:00
Christian Loelkes f894837cd1 handle error message from server 2020-12-27 12:19:13 +01:00
Joachim Bauch af04cc956d
Add missing lock when accessing internal sessions map. 2021-01-05 09:10:24 +01:00
Joachim Bauch a3e34143c5
Support limiting number of sessions per backend. 2020-12-17 14:56:45 +01:00
Joachim Bauch b62beb2d31
Don't wrap Error object twice. 2020-12-17 14:32:27 +01:00
Joachim Bauch 64cccab641
Log all non-websocket close errors. 2020-12-16 15:29:22 +01:00
Joachim Bauch 559f1e28ae
Optionally disable certificate validation for proxy connections. 2020-12-16 15:17:44 +01:00
Joachim Bauch 9ad4a0c021
Update read deadline before reading. 2020-12-11 16:01:49 +01:00
Joachim Bauch d2b7fafde5
Send ping to proxy regularly to detect broken connection. 2020-12-11 15:58:35 +01:00
Joachim Bauch d9210b8b1f
Canonicalize all URLs before comparisons / lookups.
Otherwise urls like "https://server:443/foo/" will fail to find entries for
"https://server/foo/" and vice versa.
2020-11-30 11:43:43 +01:00
Joachim Bauch 5188c159c5
Update virtual sessions for SIP support in Talk. 2020-11-30 11:21:52 +01:00
Joachim Bauch b6ce723a8b
Make sure the backend URL always points to the signaling controller. 2020-11-30 11:21:52 +01:00
Joachim Bauch 669ec5c1af
Support "internal" messages to create/update/remove virtual sessions. 2020-11-30 11:21:51 +01:00
Joachim Bauch 2119993606
Use publisher/subscriber ids that stay the same across reconnections.
Otherwise it could happen that objects were kept in maps (e.g. on the
proxy server) if they reconnected to the WebRTC gateway during their
lifetime. This resulted in incorrect load calculations.
2020-10-26 09:51:33 +01:00
Joachim Bauch 7681e26fbb
Use publisher/subscriber objects as map keys. 2020-10-26 09:34:11 +01:00
Joachim Bauch e6f6f0a846
Check combining while building pending messages instead of while sending out. 2020-10-21 14:34:53 +02:00
Joachim Bauch dd327a841e
Send MCU messages through the session.
This helps with clients disconnecting / resuming while MCU responses
are being sent to them. With the change, the messages are stored in
the session and sent out when clients resume their session.
2020-10-21 14:19:57 +02:00
Joachim Bauch 644d9a1737
Include load in stats response. 2020-10-15 13:27:08 +02:00
Joachim Bauch 7d690d049f
Merge pull request #53 from strukturag/reload-improvements
Minor reload improvements
2020-10-14 16:18:44 +02:00
Joachim Bauch 52e5978b19
Handle old-style MCU configuration with type but no url.
In the past this disabled the MCU but now was triggering an error due to an
invalid (empty) URL. Keep old behaviour and disable MCU again.
2020-10-07 15:00:35 +02:00
Joachim Bauch 5797111033
Log what backends are added/changed/removed on reload. 2020-10-06 16:37:35 +02:00
Joachim Bauch cd4d930835
Update reload tests
- Add test that reloads without changes.
- Add test that removes backend from shared host.
2020-10-06 16:37:33 +02:00
Joachim Bauch aa0191ef7e
Don't allow reload with old-style backend configurations. 2020-10-06 16:36:53 +02:00
Joachim Bauch f7ed6addb7
Always load backends in the order they are configured. 2020-10-06 16:36:49 +02:00
Joachim Bauch bef54339e3
Merge pull request #52 from hosting-de-labs/feature/reload-backendconfigs
Feature: Reload Backends on SIGHUP
2020-10-06 15:37:59 +02:00
Oliver Dick 8d29c9cda9 Feature:
- Reload Backend Configuration without destroying unchanged backends
	- Only used when configured with backends parameter
2020-10-06 15:10:38 +02:00
Joachim Bauch 67e66c0e5a
Log something when proxy publisher/subscriber is deleted. 2020-09-24 12:43:27 +02:00
Joachim Bauch 76f327b919
Log session id when creating publish/subscriber. 2020-09-16 16:51:11 +02:00
Joachim Bauch 7e3a7af9a3
Use dedicated (shorter) timeout for proxy requests.
This will prevent the overall MCU timeout to expire on the first proxy
request if that takes too long. With the shorter proxy timeout, the other
proxy servers will be retried if the first request timed out.
2020-09-16 10:13:09 +02:00
Joachim Bauch 612b1d7217
Mark session as used on resume. 2020-09-16 10:11:52 +02:00
Joachim Bauch d437dbbc0e
Mark session as used when connection is closed to prevent from timing out too early. 2020-09-16 10:08:46 +02:00
Joachim Bauch 80194c4e1d
Don't perform request to proxy if context is already done. 2020-09-16 09:23:36 +02:00
Joachim Bauch 767d283600
Handle case where etcd cluster is not available during startup. 2020-09-09 14:42:18 +02:00
Joachim Bauch adce45162e
Default to proxy url type "static" if none is configured. 2020-09-07 17:07:48 +02:00
Joachim Bauch 5206490fef
Change log message if session was resumed. 2020-09-07 09:12:32 +02:00
Joachim Bauch 1e11eac284
proxy: Check complete session id when resuming. 2020-09-07 09:10:33 +02:00
Joachim Bauch bde0301637
proxy: Generate random session hash keys.
This is to ensure that session ids are only valid until the proxy is restarted.
2020-09-07 09:01:34 +02:00
Joachim Bauch 73903315a9
Handle "bye" proxy messages. 2020-09-07 08:56:17 +02:00
Joachim Bauch 34de2b9b58
Merge pull request #47 from strukturag/proxy-list-etcd
Add support for fetching proxy URLs from etcd cluster.
2020-09-01 12:48:46 +02:00
Joachim Bauch 64991a0a0e
Add option to override GeoIP lookups (e.g. for local addresses). 2020-09-01 12:41:00 +02:00
Joachim Bauch dcf533b8f1
Add support for fetching proxy URLs from etcd cluster. 2020-08-31 17:24:04 +02:00
Joachim Bauch 744b514e9f
Support multiple token key formats in proxy configurations. 2020-08-31 17:23:47 +02:00
Joachim Bauch 18bfb0daa1
Update logging flags.
Timestamp already enabled by etcd logger, so only add filename.
2020-08-31 15:51:53 +02:00