51 Commits

Author SHA1 Message Date
Alexander Anisimov
87f2b7c08b Merge remote-tracking branch 'origin/master' into refactor/universal-carrier
# Conflicts:
#	mobile/mobile_test.go
2026-05-22 22:38:00 +03:00
Alexander Anisimov
7457467aef test(mobile): reuse room fixture 2026-05-22 22:20:18 +03:00
Alexander Anisimov
0f177badfc mobile: configure SOCKS listen host 2026-05-22 22:11:37 +03:00
zarazaex69
958c6bed91 test(mobile): extract "room" string literal into testRoomID constant 2026-05-21 23:47:27 +03:00
Alexander Anisimov
5222d8a211 fix(mobile): preserve raw room id for vp8 binding 2026-05-21 23:35:50 +03:00
zarazaex69
9bf81248c4 docs: replace 1.1.1.1 with 8.8.8.8 as default DNS server 2026-05-21 19:01:10 +03:00
zarazaex69
ccf3ff0988 fix: golangci 2026-05-19 22:02:56 +03:00
zarazaex69
085aadcad7 refactor: remove SaluteJazz carrier support 2026-05-19 21:39:07 +03:00
zarazaex69
80cc3bafe4 chore(lint): satisfy golangci-lint after big refactor
Address 25 issues reported by golangci-lint following the structural
refactor:

- cyclop: split common.Reassembler.Push into upsert/storeChunk/deliver
  helpers (12→5). Move seichannel option-default fill into Options.
  withDefaults so New stays under the limit.
- exhaustive: enumerate ResultPartial / ResultIgnore explicitly in
  seichannel and videochannel switches over common.Result.
- gosec G115: annotate the test-fixture int→uint16/uint32 conversions
  in common_test.go with //nolint:gosec.
- lll: break up the 130+ character one-liners in transport
  unit/integration tests and the videochannel track-ID construction.
- nolintlint: drop the stale //nolint:cyclop in mobile_test.go where
  the underlying complexity already cleared the limit.
- wrapcheck: wrap errors returned from internal/framing and
  internal/runtime in their public callers (handshake, control,
  server.setupCipher, client.setupCipher) so they carry the layer name.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 14:38:03 +03:00
zarazaex69
e7657b2619 refactor: remove link layer
internal/link and internal/link/direct were a single-implementation
abstraction layer where directLink mechanically proxied every method to
transport.Transport — only Features() lived above transport.Transport,
and even that was a Features() alias. Six layers of plumbing for zero
behavioural value.

Drop the layer entirely:
- muxconn.Conn now takes a transport.Transport directly.
- server.Server and client.Client store transport.Transport, call
  transport.New, and expose Features() through transport.Transport's
  built-in method.
- server.Config and client.Config lose their Link string field.
- session.Config loses Link + validateLink + ErrLinkRequired/ErrUnsupportedLink.
- config.File and config.Profile lose the link YAML key.
- pkg/olcrtc/tunnel.Config loses Link.
- mobile drops defaultLink, SetLink, and mobileConfig.link.

Two e2e tests that exercised link.New directly are renamed to call
transport.New (TestTransportCreatesAllProviderTransportCombinations and
TestTransportConnectsFastProviderTransportMatrix); behaviour is unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 13:51:02 +03:00
zarazaex69
74fb1d81b7 refactor: introduce typed per-transport options
transport.Config used to carry a flat union of video+vp8+sei tuning fields
that every transport ignored except its own. Replace with an opaque
transport.Options marker interface and per-transport Options structs
(videochannel.Options, vp8channel.Options, seichannel.Options). Datachannel
keeps an unset Options.

link.Config gains TransportOptions and drops the 16 transport-specific
fields. server.Config and client.Config follow suit. session.Config is
left untouched in this commit — buildTransportOptions packs its existing
flat fields into the typed Options bundle before calling server/client
(session.Config is rebuilt in a later commit when YAML config moves to
typed sections).

Tests that synthesized link/server/client/transport configs are updated
to pass typed Options bundles. The shared e2eTransportOptions helper
replaces three copies of the flat field bundle in e2e/tunnel_test.go.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 07:01:07 +03:00
zarazaex69
6222896921 refactor: improve error context and test clarity 2026-05-16 04:06:55 +03:00
cyber-debug
d16cd0686a feat: expose mobile liveness options 2026-05-16 02:10:33 +03:00
zarazaex69
76c709f9a5 fix: golangci lint fix 2026-05-14 04:21:11 +03:00
zarazaex69
bcc6b2ee5c feat: remove unused client ID from config 2026-05-13 20:03:58 +03:00
zarazaex69
51e6e8a39c refactor: configuration structures instead of 27 arguments 2026-05-13 16:16:56 +03:00
zarazaex69
dc1fe0f19c refactor: replace -carrier with -auth/-engine/-url/-token (stage E)
Break CLI backwards compatibility as planned for refactor/universal-carrier:

- Drop -carrier flag; add -auth (auth provider name), -engine (engine
  name for -auth none), -url and -token (SFU endpoint + access token for
  direct/none auth mode).
- session.Config.Carrier → Auth + Engine + URL + Token.
- session.Gen() is now generic: auth.Get(cfg.Auth).(auth.RoomCreator)
  replaces the hard-coded switch on carrier names.
- Register a "none" carrier in builtin (registerDirect) that bypasses
  auth and connects directly to any engine with caller-supplied URL+Token.
- auth/telemost.Provider.Issue now accepts a raw room-ID hash in addition
  to a full https://telemost.yandex.ru/j/<id> URL.
- Plumb Engine/URL/Token from session.Config through server.Run,
  client.Run/RunWithReady, bringUpLink, link.Config, transport.Config, and
  carrier.Config so the "none" carrier has access to them end-to-end.
- Update all tests and mobile.go call sites.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:31:07 +03:00
zarazaex69
0723ddf2f5 fix: golangci errors 2026-05-11 02:21:41 +03:00
zarazaex69
f6b82da099 feat: remove nolint 2026-05-10 23:02:00 +03:00
Alexander Anisimov
7d1a367904 lint fix 2026-05-10 16:16:24 +03:00
Alexander Anisimov
e0dd953c5a add http ping to mobile 2026-05-10 16:09:02 +03:00
zarazaex69
87a546605c fix: golangci 2026-05-07 16:36:30 +03:00
zarazaex69
9c992d6fe4 refactor: remove legacy code 2026-05-07 14:28:32 +03:00
zarazaex69
e4212b346b feat(sei): add sei config 2026-05-07 01:08:35 +03:00
zarazaex69
9d8f063ce3 feat(test): up test coverage 2026-05-07 00:06:28 +03:00
zarazaex69
2907bf9a85 fix: bug lint 2026-05-06 22:39:33 +03:00
zarazaex69
aa49808e68 feat(test): init base test 2026-05-06 22:33:29 +03:00
Alexander Anisimov
cd0a2fce46 fix: satisfy mobile lint checks 2026-05-06 22:24:51 +03:00
Alexander Anisimov
5795e58586 fix mobile conection check 2026-05-06 22:07:59 +03:00
zarazaex69
8be56493f0 feat: add clientid key 2026-05-06 19:23:16 +03:00
Alexander
7c32586ca3 Update mobile.go
сук забыл убрать тут 32 лимит, а то скорость залупа
2026-05-03 18:42:23 +03:00
zarazaex69
254613fb51 fix: golangci 2026-05-03 12:03:58 +03:00
zarazaex69
a9fdf6c831 fix: string wbstream has 3 occurrences 2026-05-03 12:02:02 +03:00
zarazaex69
c8029b5239 feat(mobile): fix name wb_stream -> wbstream 2026-05-03 11:57:41 +03:00
Alexander Anisimov
1fe085d7be fix mobile android build 2026-05-03 11:06:09 +03:00
Alexander Anisimov
7e454c619a add mobile provider configuration 2026-05-03 10:42:17 +03:00
zarazaex69
ad7c9a5c3e feat: add tile as videochannel visual codec via -video-codec tile 2026-04-30 06:55:34 +03:00
zarazaex69
689441a7f4 Add configurable QR error correction level for video transpor 2026-04-27 18:53:39 +03:00
zarazaex69
a2d1b95ffa feat: add support for 'b' visual codec in videochannel 2026-04-22 21:26:50 +03:00
zarazaex69
6379fa527e feat: add vp8-fps and vp8-batch settings for vp8channel throughput tuning 2026-04-22 17:17:08 +03:00
zarazaex69
01a3b3a9d6 feat: add vp8channel transport for data tunneling via VP8 payload 2026-04-22 17:02:40 +03:00
zarazaex69
12d02d743c fix: update mobile constructor call to include missing configuration parameters 2026-04-21 02:56:10 +03:00
zarazaex69
ea249091c4 refactor: make link selectable at runtime 2026-04-20 20:18:23 +03:00
zarazaex69
fffb90e321 refactor: introduce transport layer 2026-04-20 20:05:23 +03:00
zarazaex69
a58e343331 refactor: improve SOCKS5 error handling, refactor client connection logic, and add documentation to internal packages. 2026-04-20 05:46:27 +03:00
zarazaex69
acf0bad227 style(server,mobile): format function signatures and add provider name 2026-04-14 02:12:27 +03:00
zarazaex69
1c36033a1a fix(ci): add golang.org/x/mobile/bind to dependencies to fix gomobile bindings issue 2026-04-13 12:42:02 +03:00
zarazaex69
8026d9cf7a refactor: remove dual channel (duo) mode functionality 2026-04-12 23:11:42 +03:00
Qtozdec
245c6688ca Address PR review feedback 2026-04-11 20:07:22 +03:00
Qtozdec
11b57071f2 Update olcRTC mobile bridge 2026-04-10 22:21:04 +03:00