Commit Graph
55 Commits
Author SHA1 Message Date
Alessandro RosandGitHub f453b59cd6 improve listener labels (#5635)
add a label after every "listener opened on :XXX" message that mentions
protocols of every listener.
2026-04-03 16:35:31 +02:00
Alessandro RosandGitHub 7418e51031 prevent directory traversal attacks (#5602)
Path names are used as part of paths in several components: in the
recorder, in the playback server and in every HTTP-based component
(WebRTC, HLS, API). Special characters that allow to escape from the
intended directory are now forbidden in order to prevent directory
traversal attacks.
2026-03-23 20:16:12 +01:00
Alessandro RosandGitHub 3381b196fb solve codec labels internally (#5603)
stop using gortsplib format.Format.Codec() for getting codec names.
2026-03-21 18:22:49 +01:00
Alessandro RosandGitHub c8e07b55d5 api: add new stats (#5582)
- RTSPSession.outboundRTPPacketsDiscarded
- Path.inboundFramesInError
- SRTConn.outboundFramesDiscarded
- WebRTCSession.outboundFramesDiscarded
- RTMPConn.outboundFramesDiscarded
- HLSMuxer.outboundFramesDiscarded
2026-03-17 17:22:15 +01:00
Alessandro RosandGitHub adf45596a3 api: rename WebRTC stats to match RTSP ones (#5581) 2026-03-16 23:29:25 +01:00
Alessandro RosandGitHub dfce20fefa api: add RTSP reported lost packets (#5198) (#5579)
The new outboundRtpPacketsReportedLost property allows to track RTP
packets that have been reported lost by readers. Furthermore, stats now
have a "inbound" or "outbound" prefix to improve readability.
2026-03-16 22:10:18 +01:00
Alessandro RosandGitHub 3bad7045c1 api: add missing enums and move all enums in dedicated components (#5576) 2026-03-15 22:09:00 +01:00
Alessandro RosandGitHub d1fd3df27c api: add user field to RTSP, RTMP, SRT, WebRTC conns and sessions (#5104) (#5565) 2026-03-14 00:03:58 +01:00
Alessandro RosandGitHub a6856e9e58 tests: fix race conditions (#5571) 2026-03-13 22:32:06 +01:00
Alessandro RosandGitHub 35e1f486c9 add integrated packet dumper (#5488)
this allows to dump any incoming and outgoing packet, to disk, in
pcapng format.
2026-02-22 13:34:05 +01:00
Alessandro RosandGitHub 46b4293e35 api: improve openapi definition (#5380)
add uint64, uint, uuid, move WebRTCICEServer into dedicated schema
2026-01-25 19:35:43 +01:00
Alessandro RosandGitHub 1a53e40bdc switch to reflect.Pointer (#5377) 2026-01-25 13:51:49 +01:00
Alessandro RosandGitHub 3de05c1330 api: always reply with JSON in case of success or failure (#5252)
Reply with "status": "ok" in case of success, and with "status":
"error" in case of error. This makes the API more accessible and user
friendly.
2025-12-07 10:37:55 +01:00
Alessandro RosandGitHub 8d3c4074d8 api: split implementation into multiple files (#5251) 2025-12-06 22:50:06 +01:00
ade0cddeb3 support multiple CORS origins (#5150)
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-11-21 02:00:46 +01:00
Alessandro RosandGitHub ff187b6d8a update golangci-lint configuration (#5182) 2025-11-11 23:57:52 +01:00
Alessandro RosandGitHub 7634370818 add read and write timeouts in HTTP servers (#5056)
this prevents zombie connections from piling up.
2025-10-04 10:01:21 +02:00
Alessandro RosandGitHub 2690ef8e71 api: add /info endpoint (#945) (#5045) 2025-09-30 10:39:27 +02:00
Alessandro RosandGitHub f987695d9d rtsp: log authentication failure reason (#4641) (#5017) 2025-09-23 10:18:13 +02:00
Alessandro RosandGitHub 5240bcb8ff log authentication errors of API, metrics, pprof (#4641) (#5015) 2025-09-23 09:51:22 +02:00
Alessandro RosandGitHub b517631b8f fix authentication failure reason not being displayed (#5007) 2025-09-22 09:48:51 +02:00
6ffa07e8e8 Add support for HTTP over unix sockets (#4241)
This adds support for using unix scheme in xxxAddress config options.
For example `hlsAddress: "unix://hls.sock"`.

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-08-03 12:30:26 +02:00
Alessandro RosandGitHub 74bfb988d7 allow disabling JWT in HTTP query parameters (#4518) 2025-05-11 10:21:08 +02:00
Alessandro RosandGitHub f97213ae6e support passing JWTs through the password field (#4516)
This is safer than passing JWTs through query parameters, unfortunately support is limited.
2025-05-10 22:54:24 +02:00
7360981aa7 Feat: Add JWKS rotation API endpoint (#4463)
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-05-10 13:44:02 +02:00
Alessandro RosandGitHub defee1eed9 hls: fix toggling hlsAlwaysRemux after server is started (#4503)
When hlsAlwaysRemux was switched from false to true, through API or hot
reloading, muxers of existing paths were not created. This fixes the
issue.
2025-05-09 22:50:11 +02:00
Alessandro RosandGitHub 386be42784 rtsp: rewrite authentication around ServerConn.VerifyCredentials (#4267) 2025-02-18 17:54:13 +01:00
Alessandro RosandGitHub 7ade2896e5 warn users when non-existent fields are used in conf (#4261) 2025-02-18 15:23:44 +01:00
Alessandro RosandGitHub 8f04264fe5 webrtxc: fix MTX_QUERY not set when reading or publishing (#4138) (#3937) (#4141) 2025-01-11 17:29:48 +01:00
Alessandro RosandGitHub b49acb1e00 accept durations expressed as days (i.e. '1d') (#4094) 2025-01-02 12:44:15 +01:00
Alessandro RosandGitHub d38b7e95fc playback: allow filtering timespans by start and end date (#3637) (#3489) (#4085) 2025-01-02 12:43:18 +01:00
Alessandro RosandGitHub df3362aef8 warn users if deprecated parameters are being used (#4080) 2024-12-25 19:28:54 +01:00
Alessandro RosandGitHub 576a117c7c bump Golang to 1.23 (#3702) 2024-11-04 14:02:05 +01:00
Alessandro RosandGitHub d13dc1074a make better use of Gin middleware system (#3849) 2024-10-08 17:02:16 +02:00
Alessandro RosandGitHub 534b637bc7 support using JWT in Authorization header with API, Metrics, PProf (#3630) (#3795) 2024-10-05 21:15:21 +02:00
Alessandro RosandGitHub 73a300afd0 fix cleaning of recordings in case of multiple recordDeleteAfter values (#3557) (#3741) 2024-09-08 20:33:18 +02:00
Alessandro RosandGitHub 3f1d182d2c fix support for HTTP preflight requests (#1792) (#3535) 2024-07-06 21:45:15 +02:00
Alessandro RosandGitHub 9554fc4ba0 prevent mixing together legacy and current auth mechanism (#3258) (#3460) 2024-06-12 17:38:55 +02:00
Alessandro RosandGitHub efb51044db api: fix crash when itemsPerPage is zero and there are items (#3425) 2024-06-04 23:09:50 +02:00
Alessandro RosandGitHub f4b7f147a5 api, playback: add CORS headers on non-existing pages too (#1792) (#3410) 2024-05-30 14:29:05 +02:00
Bouke van der BijlandGitHub 6793a12aff api: make replace paths idempotent (#3362)
Don't return a 404 error if the path doesn't exist yet
2024-05-19 14:40:50 +02:00
Alessandro RosandGitHub 85dd81698b support HTTPS, Allow-Origin and trusted proxies in API, playback server, metrics server and pprof server (#2658) (#2491) (#3235) (#3280) 2024-04-21 17:10:35 +02:00
2bd8ac7e19 fix support for JWT authentication in API, metrics, playback, pprof (#3253)
Co-authored-by: Rafael Scheidt <rafaelscheidt@Rafaels-MacBook-Air.local>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-04-18 23:55:48 +02:00
Alessandro RosandGitHub b84f0b90d0 add JWT authentication tests (#3272) 2024-04-18 22:58:37 +02:00
Alessandro RosandGitHub 0b5519d30c deprecate path.playback parameter (#3217)
this has become useless after the introduction of the new
authentication system, that already allows to select which paths are
available for playback
2024-04-09 10:04:12 +02:00
Alessandro RosandGitHub 24cc62e344 hls: decrease number of idle connections kept open after a reconnection (#3128) 2024-03-10 11:51:15 +01:00
Alessandro RosandGitHub 9c6ba7e2c7 New authentication system (#1341) (#1992) (#2205) (#3081)
This is a new authentication system that covers all the features exposed by the server, including playback, API, metrics and PPROF, improves internal authentication by adding permissions, improves HTTP-based authentication by adding the ability to exclude certain actions from being authenticated, adds an additional method (JWT-based authentication).
2024-03-04 14:20:34 +01:00
Alessandro RosandGitHub 9e5de737f0 move SRT tests into internal/servers/srt (#3037) 2024-02-17 20:42:41 +01:00
Alessandro RosandGitHub 3161e73a58 rename httpserv into httpp (#3014) 2024-02-13 13:04:56 +01:00
Alessandro RosandGitHub fcf649cdaf tests: make sure that dates with decimal seconds can be parsed correctly (#3007) 2024-02-12 00:20:35 +01:00