Commit Graph

650 Commits

Author SHA1 Message Date
Miroslav Šedivý
d0e283f1a9 do not log info about FE log messages. 2021-09-09 22:51:24 +02:00
Miroslav Šedivý
fb2c479325 logs: interface instead of string. 2021-09-09 22:51:03 +02:00
Miroslav Šedivý
afc79ed847 receive frontend logs using WS. 2021-09-09 22:08:39 +02:00
Miroslav Šedivý
9deb5adee1 MemberAlreadyExists returns UnprocessableEntity. 2021-09-09 00:33:11 +02:00
Miroslav Šedivý
e0f1857c51 fx WebRTC logging. 2021-09-05 22:44:16 +02:00
Miroslav Šedivý
75c1dd6d22 peer close simplified logging. 2021-09-02 21:58:00 +02:00
Miroslav Šedivý
c85d00e507 add websocket destroy reason. 2021-09-02 21:52:23 +02:00
Miroslav Šedivý
d7671942a6 code fmt change. 2021-09-02 21:37:24 +02:00
Miroslav Šedivý
00fc3afcd7 extract webrtc payload to own module. 2021-09-02 21:06:58 +02:00
Miroslav Šedivý
e812cb9fbf pionlog to own folder. 2021-09-02 20:48:15 +02:00
Miroslav Šedivý
1dab0bd859 remove session from websocket peer. 2021-09-02 20:30:50 +02:00
Miroslav Šedivý
f18ae2b972 add waitgroups. 2021-09-02 00:00:56 +02:00
Miroslav Šedivý
7e2f173460 unify shutdown logs. 2021-09-02 00:00:29 +02:00
Miroslav Šedivý
fd35254487 simplified logging. 2021-09-01 23:30:09 +02:00
Miroslav Šedivý
5130d94bbc websocket handler simplified logging. 2021-09-01 23:10:18 +02:00
Miroslav Šedivý
c2fe224562 audit errors and warnings. 2021-09-01 23:10:06 +02:00
Miroslav Šedivý
49c48b3200 remove event from messages. 2021-09-01 21:58:39 +02:00
Miroslav Šedivý
3ac1b481ad session websocket add event. 2021-09-01 21:16:36 +02:00
Miroslav Šedivý
5b5e541cc0 websocket peer add event. 2021-09-01 21:11:07 +02:00
Miroslav Šedivý
6a32dbadf4 updated websocket logging. 2021-08-29 23:03:04 +02:00
Miroslav Šedivý
402b8f1a08 rename WebSocket handler. 2021-08-29 23:01:51 +02:00
Miroslav Šedivý
c82a083fb6 use websocket message. 2021-08-29 23:00:51 +02:00
Miroslav Šedivý
47d0359106 remove unknown message from handler. 2021-08-29 19:28:01 +02:00
Miroslav Šedivý
a95a987fb6 Destroy() does not return error. 2021-08-29 19:17:10 +02:00
Miroslav Šedivý
a03507227d webrtc logging. 2021-08-29 18:59:46 +02:00
Miroslav Šedivý
8f8cd47e85 websockets logging. 2021-08-29 18:23:58 +02:00
Miroslav Šedivý
d00d66e0ec api forbidden if login disabled. 2021-08-29 17:23:49 +02:00
Miroslav Šedivý
0501091c96 remove io/ioutil. 2021-08-29 17:12:37 +02:00
Miroslav Šedivý
343b0c562a common errors as variable. 2021-08-29 17:09:13 +02:00
Miroslav Šedivý
530cc04805 http use config. 2021-08-29 15:40:58 +02:00
Miroslav Šedivý
8bb77166e8 stream use video_id in logs. 2021-08-28 20:15:54 +02:00
Miroslav Šedivý
b2ae808233 add merciful reconnect option. 2021-08-23 18:41:19 +02:00
Miroslav Šedivý
01c0f269ee use defer for ticker. 2021-08-19 21:19:02 +02:00
Miroslav Šedivý
bdff2ddabe lint fix errors. 2021-08-18 22:37:19 +02:00
Miroslav Šedivý
2329a940c8 fix logging. 2021-08-03 11:06:34 +02:00
Miroslav Šedivý
45ee1eef3e handle closed peerConnection. 2021-08-03 10:47:05 +02:00
Miroslav Šedivý
40d820a3e0 fix logging. 2021-08-02 18:37:54 +02:00
Miroslav Šedivý
3227978725 add screencast enabled bool to system init. 2021-07-14 14:23:51 +02:00
Miroslav Šedivý
7377e24abe zip: omit base dir. 2021-07-04 23:10:31 +02:00
Miroslav Šedivý
18e2ba6390 zip fix file check. 2021-07-04 21:36:42 +02:00
Miroslav Šedivý
d3206bfd24 add ZIP to utils. 2021-07-04 01:36:09 +02:00
Miroslav Šedivý
a852eddfb7 add mutex to webrtc peer. 2021-06-30 00:04:41 +02:00
Miroslav Šedivý
c2277c4917 webrtc: remove offer timeout as this is handled by lib. 2021-06-29 22:41:30 +02:00
Miroslav Šedivý
9176fe3782 cgo import not only for linux. 2021-06-28 18:10:48 +02:00
Miroslav Šedivý
7df642a346 add iceTrickle for restart from config. 2021-06-27 22:05:37 +02:00
Miroslav Šedivý
09fdea1b11 add ice restarts. 2021-06-27 22:02:05 +02:00
Miroslav Šedivý
014b757734 webrtc connect with selected video. 2021-04-30 14:05:07 +00:00
Miroslav Šedivý
ec18775e26 change error messages punctuation. 2021-04-24 21:37:43 +02:00
Miroslav Šedivý
4f1e3c879a read cookies only if enabled. 2021-04-24 21:11:07 +02:00
Miroslav Šedivý
04d2fa8863 cookie: enabled / disabled. 2021-04-24 20:53:37 +02:00
Miroslav Šedivý
45e85c8864 use exact XkbKeysymToKeycode from tigervnc. 2021-04-12 13:25:10 +00:00
Miroslav Šedivý
cb17046aee lint fix. 2021-04-11 19:06:56 +02:00
Miroslav Šedivý
cfdcafc611 xorg fix naming & KeyCode type. 2021-04-11 16:48:59 +02:00
Miroslav Šedivý
6b2b6594cd fix xorg headers file. 2021-04-11 16:42:57 +02:00
Miroslav Šedivý
7d06f33ff0 kecode to keysym respecting modifiers. 2021-04-10 01:10:14 +02:00
Miroslav Šedivý
5acfae72be Revert "workaround for "Keyboard bugs <> → >>"." 2021-04-10 01:07:19 +02:00
Miroslav Šedivý
536bab14e5 workaround for "Keyboard bugs <> → >>". 2021-04-08 00:08:21 +02:00
Miroslav Šedivý
b48998f3f9 bulk update members. 2021-04-05 23:03:49 +02:00
Miroslav Šedivý
d37933cc37 fmt edit. 2021-03-30 00:37:06 +02:00
Miroslav Šedivý
d84297fbec update pipelines config settings extractor. 2021-03-30 00:36:13 +02:00
Miroslav Šedivý
051ab9f426 always start pipelines with !. 2021-03-29 22:59:07 +02:00
Miroslav Šedivý
d8c031af4d add video config evaluation. 2021-03-29 00:58:51 +02:00
Miroslav Šedivý
78b6264494 split webrtc & WS destroy. 2021-03-25 14:08:26 +01:00
Miroslav Šedivý
a8e44160dc cursor cache log debug. 2021-03-25 12:20:30 +01:00
Miroslav Šedivý
5d00e0bdbd fix cursor index out of range error. 2021-03-25 11:59:57 +01:00
Miroslav Šedivý
bf6181764b clear cookie if non-existent session. 2021-03-25 10:29:28 +01:00
Miroslav Šedivý
da1d073846 websocket connection change. 2021-03-23 15:38:37 +01:00
Miroslav Šedivý
89081d9887 do not destroy WebRTC on WS disconnect. 2021-03-23 15:38:09 +01:00
Miroslav Šedivý
fb845a1f18 update pipelines. 2021-03-23 14:06:40 +01:00
Miroslav Šedivý
58854d38dd webrtc add interceptor. 2021-03-23 13:46:54 +01:00
Miroslav Šedivý
9fcc310685 pipelines adding buffer. 2021-03-22 16:45:17 +01:00
Miroslav Šedivý
7c9c7ec7cb video qualities: modify only FPS. 2021-03-22 16:37:37 +01:00
Miroslav Šedivý
52e586790e fix static files serving Path. 2021-03-21 21:42:53 +01:00
Miroslav Šedivý
e4d82673da fix 401 and 403 texts. 2021-03-21 21:32:52 +01:00
Miroslav Šedivý
0eef9d4d98 update auth middlewares. 2021-03-21 21:26:53 +01:00
Miroslav Šedivý
5a79212b32 add healthcheck. 2021-03-19 15:04:01 +01:00
Miroslav Šedivý
cd15e0b03e ice server omitempty credentials. 2021-03-19 11:28:06 +01:00
Miroslav Šedivý
77e31bb1bc fmt. 2021-03-18 13:38:32 +01:00
Miroslav Šedivý
aefb367505 fix initial image error & add cache max. 2021-03-18 13:38:27 +01:00
Miroslav Šedivý
9c6c107ee0 move broadcast constants to config. 2021-03-18 13:17:10 +01:00
Miroslav Šedivý
552223d031 iceservers with auth. 2021-03-17 15:47:49 +01:00
Miroslav Šedivý
4abe0a5dba move cookies to session + config. 2021-03-17 14:09:10 +01:00
Miroslav Šedivý
d06a5a2ac7 typo fix. 2021-03-17 11:19:35 +01:00
Miroslav Šedivý
c91e500f00 fix dummy member provider. 2021-03-16 15:38:51 +01:00
Miroslav Šedivý
0233daf125 members: direct providers config. 2021-03-16 15:28:40 +01:00
Miroslav Šedivý
524d895db8 scope config variables. 2021-03-16 15:24:58 +01:00
Miroslav Šedivý
0b4c6f50aa remove leftover code. 2021-03-16 13:57:43 +01:00
Miroslav Šedivý
a9aa62f062 lint & logging fixes. 2021-03-16 10:53:03 +01:00
Miroslav Šedivý
58d029f455 WS upgrade no returning error. 2021-03-16 10:45:22 +01:00
Miroslav Šedivý
971e3bff4e handler: log unknown event. 2021-03-16 10:25:13 +01:00
Miroslav Šedivý
3b0c16b308 handler: include event in error. 2021-03-16 10:22:03 +01:00
Miroslav Šedivý
c8328a56c0 Revert "ICE servers as URIs with auth." 2021-03-15 17:15:58 +01:00
Miroslav Šedivý
fd07597262 Revert "webrtc use ICEServers." 2021-03-15 17:15:34 +01:00
Miroslav Šedivý
3c3f50af68 webrtc use ICEServers. 2021-03-15 16:40:03 +01:00
Miroslav Šedivý
a1be9002f7 ICE servers as URIs with auth. 2021-03-15 16:34:13 +01:00
Miroslav Šedivý
0824c24bf6 add more privileges to API user. 2021-03-15 16:28:38 +01:00
Miroslav Šedivý
45c9d0c120 add API TOKEN to sessions. 2021-03-15 13:34:14 +01:00
Miroslav Šedivý
edfe9adde0 change authorization methods request priorities. 2021-03-15 13:01:35 +01:00
Miroslav Šedivý
900ae006b8 fmt. 2021-03-14 20:26:58 +01:00
Miroslav Šedivý
85bb26d77c member session mutexes & login if not connected. 2021-03-14 20:26:30 +01:00
Miroslav Šedivý
524c76ae3c member manager login & logout. 2021-03-14 19:59:34 +01:00
Miroslav Šedivý
304cb5d655 add CanLogin check for Authenticate. 2021-03-14 19:58:15 +01:00
Miroslav Šedivý
9483882c89 member mutex move to manager. 2021-03-14 19:36:30 +01:00
Miroslav Šedivý
4207775fb3 split member manager and provider. 2021-03-14 16:58:18 +01:00
Miroslav Šedivý
19e732f3ea fix typo. 2021-03-14 16:23:14 +01:00
Miroslav Šedivý
fad3ab0062 MemberData split ID and profile, return on create. 2021-03-14 16:19:23 +01:00
Miroslav Šedivý
4d2fb157f9 API implement members. 2021-03-14 14:44:32 +01:00
Miroslav Šedivý
4898cecd56 members minor bugfixes. 2021-03-14 14:44:03 +01:00
Miroslav Šedivý
8f277c61c9 members object provider default from config. 2021-03-14 13:11:26 +01:00
Miroslav Šedivý
00586baffc member providers extracted config. 2021-03-14 13:07:03 +01:00
Miroslav Šedivý
fceae3818b default object members provider. 2021-03-14 13:06:48 +01:00
Miroslav Šedivý
f57332ba2a dummy allow all logins. 2021-03-14 13:06:33 +01:00
Miroslav Šedivý
bf560d5289 implemented member manager. 2021-03-14 12:57:19 +01:00
Miroslav Šedivý
7c79b48750 added member provider. 2021-03-14 01:08:50 +01:00
Miroslav Šedivý
594404824f fmt. 2021-03-14 01:05:00 +01:00
Miroslav Šedivý
ecad2124fd session state decoupled. 2021-03-14 00:50:08 +01:00
Miroslav Šedivý
4a28307c1e session profile decoupled. 2021-03-14 00:45:51 +01:00
Miroslav Šedivý
7d4f7694b9 login username password. 2021-03-14 00:32:52 +01:00
Miroslav Šedivý
5101f0a9c3 fix logs. 2021-03-14 00:12:32 +01:00
Miroslav Šedivý
fb2078e1ff member -> session. 2021-03-14 00:05:31 +01:00
Miroslav Šedivý
fa687480a9 member events -> session events. 2021-03-13 23:48:07 +01:00
Miroslav Šedivý
dafebc79e5 memberState -> sessionState. 2021-03-13 23:42:16 +01:00
Miroslav Šedivý
b03a730c84 memberId to sessionId. 2021-03-13 23:32:10 +01:00
Miroslav Šedivý
d83e04e7ec fix logs, unified session_id. 2021-03-13 23:27:28 +01:00
Miroslav Šedivý
cacdd9e20a Revert 'autogenerate token.' 2021-03-13 22:54:34 +01:00
Miroslav Šedivý
3fcca6ab52 OnHostChanged event and add tokens to session. 2021-03-13 22:17:49 +01:00
Miroslav Šedivý
453a6905f7 fmt auth. 2021-03-13 21:44:38 +01:00
Miroslav Šedivý
93ac4e8332 autogenerate token. 2021-03-13 21:43:36 +01:00
Miroslav Šedivý
a6b66e4d55 OnHostChanged event. 2021-03-13 21:37:00 +01:00
Miroslav Šedivý
3aea0c7bf5 remove members from session. 2021-03-13 21:11:48 +01:00
Miroslav Šedivý
84f0b0aaeb move session database to member folder. 2021-03-13 21:07:51 +01:00
Miroslav Šedivý
58b00525cc refactor authenticate to use Token. 2021-03-13 20:42:56 +01:00
Miroslav Šedivý
6b638db825 capture use display from ENV. 2021-03-11 17:55:13 +01:00
Miroslav Šedivý
d24cea3535 desktop display from env. 2021-03-11 17:44:49 +01:00
Miroslav Šedivý
0ac2109275 add ip_retrieval_url. 2021-03-10 13:15:18 +01:00
Miroslav Šedivý
f6114cd410 pipelines: modify default bitrate ratio. 2021-03-03 22:30:45 +01:00
Miroslav Šedivý
13ffc59209 broadcast pipeline update. 2021-03-03 19:13:53 +01:00
Miroslav Šedivý
e98237a58c vp8 set CBR and undershoot values. 2021-03-03 19:10:48 +01:00
Miroslav Šedivý
b78132e6aa WebRTC: add rtp consumer. 2021-03-03 18:53:35 +01:00
Miroslav Šedivý
9dc96036ce fmt sessionCtx. 2021-03-03 18:46:08 +01:00
Miroslav Šedivý
0aa1237df9 change pingPeriod to 10s. 2021-03-03 18:35:58 +01:00
Miroslav Šedivý
fa16b28ac0 set secure cookies by default. 2021-03-01 18:52:05 +01:00
Miroslav Šedivý
c6a183f766 set AllowCredentials to true. 2021-03-01 18:20:17 +01:00
Miroslav Šedivý
8f9ad2cd9b capture stream remove listeners on shutdown. 2021-02-28 18:56:04 +01:00
Miroslav Šedivý
2204400282 cursor cache disable if not available. 2021-02-28 18:52:37 +01:00
Miroslav Šedivý
663270b0f5 cursor position bypass desktop module. 2021-02-28 18:50:32 +01:00
Miroslav Šedivý
66618b9e62 WebRTC cursor handler extracted + cache. 2021-02-28 18:37:35 +01:00
Miroslav Šedivý
9d60468aea xevent DRY, expose emitter. 2021-02-28 17:22:55 +01:00
Miroslav Šedivý
09625ecca5 session refactor state. 2021-02-26 15:04:50 +01:00
Miroslav Šedivý
93f8d7f05e adding WebRTC timeouts. 2021-02-25 17:16:37 +01:00
Miroslav Šedivý
e9840a9579 fmt edit. 2021-02-25 17:16:01 +01:00
Miroslav Šedivý
2410295ad4 cursor CreatePNGImage in event emitter. 2021-02-25 14:24:17 +01:00
Miroslav Šedivý
d2eda6f25f cursor utils changed to generic CreatePNGImage. 2021-02-25 14:15:18 +01:00
Miroslav Šedivý
8f142e4b91 GetCursorImage returns image structure. 2021-02-25 14:03:57 +01:00
Miroslav Šedivý
dc29f71b0c keysym as uint32. 2021-02-23 21:25:55 +01:00
Miroslav Šedivý
8f2639412d format code. 2021-02-21 00:41:04 +01:00
Miroslav Šedivý
7df1040439 remove not needed log message. 2021-02-18 16:59:36 +01:00
Miroslav Šedivý
c862711e6a update KeyboardModifiers WebSocket struct. 2021-02-18 16:52:49 +01:00
Miroslav Šedivý
ab34f4a53f WebRTC cursor: set initial state. 2021-02-17 21:55:21 +01:00
Miroslav Šedivý
5310acfbf0 implement xorg GetCursorPosition. 2021-02-17 21:55:11 +01:00
Miroslav Šedivý
2ac3f9876f audio start / stop in WebRTC. 2021-02-14 18:16:24 +01:00
Miroslav Šedivý
cd18a22655 WebRTC events only for active peer connection. 2021-02-14 17:17:06 +01:00
Miroslav Šedivý
2b693f4e52 fix naming convention. 2021-02-14 17:11:21 +01:00
Miroslav Šedivý
45679f1b86 format Go source code. 2021-02-14 14:40:17 +01:00
Miroslav Šedivý
732764991b fix linter errors. 2021-02-14 14:23:33 +01:00
Miroslav Šedivý
c9b2c93fb8 cursor image/position from WebRTC. 2021-02-13 18:25:40 +01:00
Miroslav Šedivý
061fbe60cf switch WebRTC to BigEndian. 2021-02-13 00:01:56 +01:00
Miroslav Šedivý
ed9f0276c7 fix WebRTC send: remove structures with dynamic size. 2021-02-12 23:46:57 +01:00
Miroslav Šedivý
8a3b3f14cb WebRTC channel from server. 2021-02-12 23:45:16 +01:00
Miroslav Šedivý
90aa2ce51a cursor utils: split to URI and bytes. 2021-02-12 23:43:52 +01:00
Miroslav Šedivý
af3a28274d add customized WebRTC send functions. 2021-02-12 22:13:55 +01:00
Miroslav Šedivý
c54703d7d7 destroy WS and WebRTC peers before assigning. 2021-02-12 21:48:47 +01:00
Miroslav Šedivý
c8200e3bb7 add WebRTC send function. 2021-02-12 21:06:42 +01:00
Miroslav Šedivý
f22922191a broadcast cursor position via WebSockets. 2021-02-11 18:36:27 +01:00
Miroslav Šedivý
e8286dec96 xorg: filter out all irrelevant screen rates. 2021-02-10 18:56:20 +01:00
Miroslav Šedivý
c0c14b3ac2 add screen-size aware pipelines. 2021-02-09 20:36:22 +01:00
Miroslav Šedivý
bac69a205f update qualities pipelines with fps. 2021-02-08 22:21:21 +01:00
Miroslav Šedivý
626164df89 SignalVideo reply. 2021-02-07 17:29:40 +01:00
Miroslav Šedivý
dd2ca03955 choose video with CreatePeer. 2021-02-07 17:07:55 +01:00
Miroslav Šedivý
5cdb6e074e send video IDs with signal provide. 2021-02-07 16:52:30 +01:00
Miroslav Šedivý
1838a74213 switch to VP8 with multiple qualities. 2021-02-06 18:18:49 +01:00
Miroslav Šedivý
eb88c8dc62 independent tracks for users & stream switching. 2021-02-06 18:16:24 +01:00
Miroslav Šedivý
417a3d1692 stream listeners as pointers. 2021-02-06 17:05:25 +01:00
Miroslav Šedivý
5d66dcdb7b unsubscribe listeners on shutdown. 2021-02-06 12:59:57 +01:00
Miroslav Šedivý
f05889bd56 Capture stream: Add- and RemoveListener. 2021-02-06 12:52:02 +01:00
Miroslav Šedivý
6756114e30 replace video track on demand. 2021-02-05 20:35:30 +01:00
Miroslav Šedivý
c81bca9b2f session GetWebRTCPeer. 2021-02-05 18:14:45 +01:00
Miroslav Šedivý
761f6d8a8f add Video error return. 2021-02-05 18:07:58 +01:00
Miroslav Šedivý
f62d36ac4f WebRTC SetVideoID. 2021-02-05 17:57:33 +01:00
Miroslav Šedivý
aa7a131da2 refactor single video track to an array. 2021-02-05 17:40:29 +01:00
Miroslav Šedivý
ebd7e7c065 move gst pipelines to codec. 2021-02-05 15:10:41 +01:00
Miroslav Šedivý
36b7eca43c name confusion Enabled -> Started. 2021-02-05 14:03:53 +01:00
Miroslav Šedivý
18b6fa0a03 remove config from capture managers. 2021-02-05 13:58:02 +01:00
Miroslav Šedivý
3515c67045 capture add mutexes. 2021-02-05 12:49:02 +01:00
Miroslav Šedivý
2b72f43c9e do not start pipeline when error. 2021-02-05 12:41:02 +01:00
Miroslav Šedivý
58ea3665b0 unify capture shutdown. 2021-02-05 12:18:46 +01:00
Miroslav Šedivý
7902d7b1f1 Implement Audio & Video using custom StreamManager. 2021-02-04 20:39:48 +00:00
Miroslav Šedivý
b488f01b16 vp9enc add properties from vp8enc. 2021-02-04 13:52:32 +01:00
Miroslav Šedivý
7e7a0c0617 tune gst pipelines. 2021-02-03 21:04:48 +01:00
Miroslav Šedivý
c2553b150c ICETrickle in config. 2021-02-02 21:12:11 +01:00