Skip to content

feat: SOCKS proxy support, auth-less batch import, and proxy pool fixes - #2053

Open
dimaslanjaka wants to merge 4 commits into
decolua:masterfrom
dimaslanjaka:proxy-enhancements
Open

dimaslanjaka wants to merge 4 commits into
decolua:masterfrom
dimaslanjaka:proxy-enhancements

Conversation

@dimaslanjaka

@dimaslanjaka dimaslanjaka commented Jun 24, 2026 •

Copy link
Copy Markdown

Changes

1. Auth-less proxy support in batch import

  • Batch import now supports more proxy formats:
    • host:port
    • user:pass@host:port
    • host:port:user:pass
    • protocol://user:pass@ip:port
    • protocol://ip:port
  • Updated input placeholder and help text accordingly
  • Enables importing public proxies (IP:PORT) without authentication fields

2. SOCKS4/SOCKS5 proxy support

  • proxyFetch.js: getDispatcher auto-detects socks4:// / socks5:// URLs and creates the appropriate SocksProxyAgent from socks-proxy-agent
  • proxyTest.js: New testSocksProxy function for testing SOCKS proxies
  • Supports socks4, socks5, and socks5h protocols

3. Fix snackbar color for failed proxy test

  • Green snackbar on pass, red snackbar on failure
  • Previously used green notify.success() for both pass and fail

4. Delete dead proxies feature

  • "Delete Dead Proxies" button in card header with dead count badge
  • Modal listing proxies with testStatus === "error" (name, URL, last error)
  • Per-item remove/undo toggle to exclude proxies from deletion
  • Sequential bulk-delete via DELETE /api/proxy-pools/:id
  • Summary notification: deleted, bound (status 409), and failed counts

Files changed

  • open-sse/utils/proxyFetch.js — SOCKS detection in dispatcher
  • src/lib/network/proxyTest.js — SOCKS proxy testing
  • src/app/dashboard/proxy-pools/page.js — auth-less import + snackbar fix + delete dead modal

@dimaslanjaka dimaslanjaka changed the title Proxy enhancements: SOCKS support, auth-less import, delete dead proxies feat: add SOCKS proxy, improve batch import formats, fix test notifications, delete dead proxies Jun 24, 2026
@dimaslanjaka dimaslanjaka changed the title feat: add SOCKS proxy, improve batch import formats, fix test notifications, delete dead proxies feat: SOCKS proxy support, auth-less batch import, and proxy pool fixes Jun 24, 2026
dimaslanjaka added a commit to dimaslanjaka/OmniRoute that referenced this pull request Jun 26, 2026
Extract parseBulkImportText into a standalone parseBulkProxyImport.ts
module so the pure parse logic is testable without a React/Next.js
environment. Add a second branch for the auth-less HOST:PORT shorthand
(no pipe characters): parses host + port, auto-generates the name as
"Imported HOST:PORT", defaults type to http and status to active.

The existing pipe-delimited NAME|HOST|PORT|… format is unchanged
(regression-guarded by 7 tests). New format covered by 5 tests.

Update BULK_IMPORT_TEMPLATE and bulkImportDescription i18n key to
document the new shorthand.

SOCKS proxy support: already present in open-sse/utils/proxyDispatcher.ts
+ socksConnectorWithFamily.ts — not re-ported.
notify.error on proxy-test failure: ProxyRegistryManager does not use
notify.* at all (uses setError() state) — not applicable.

Co-authored-by: dimaslanjaka <dimaslanjaka@gmail.com>
Inspired-by: decolua/9router#2053
diegosouzapw pushed a commit to diegosouzapw/OmniRoute that referenced this pull request Jun 26, 2026
Extract parseBulkImportText into a standalone parseBulkProxyImport.ts
module so the pure parse logic is testable without a React/Next.js
environment. Add a second branch for the auth-less HOST:PORT shorthand
(no pipe characters): parses host + port, auto-generates the name as
"Imported HOST:PORT", defaults type to http and status to active.

The existing pipe-delimited NAME|HOST|PORT|… format is unchanged
(regression-guarded by 7 tests). New format covered by 5 tests.

Update BULK_IMPORT_TEMPLATE and bulkImportDescription i18n key to
document the new shorthand.

SOCKS proxy support: already present in open-sse/utils/proxyDispatcher.ts
+ socksConnectorWithFamily.ts — not re-ported.
notify.error on proxy-test failure: ProxyRegistryManager does not use
notify.* at all (uses setError() state) — not applicable.

Co-authored-by: dimaslanjaka <dimaslanjaka@gmail.com>
Inspired-by: decolua/9router#2053
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant