Files
navi/internal/core/engine.go
T
NavisandCursor 2a57987aea Release 4.2.0+1: store-compliance формулировки и UX — убраны все цены/продажи из приложения (оффер «3 дня бесплатно» без ₽), «Активировать ключ» → «Добавить конфигурацию» (URL-ссылка, placeholder https://), блок «Ключ доступа» заменён статусом «Конфигурация добавлена/не добавлена» (URL не отображается), глобально Подписка→Конфигурация/Ваучер→URL-ссылка/Тариф→Профиль в UI и Go-строках; большая круглая кнопка ПОДКЛЮЧИТЬСЯ/ОТКЛЮЧИТЬСЯ со статусом, убран футер «Готово к подключению», протокол в списке — буквенный бейдж только при отличии от активного, трафик «ДОСТУПНО X ГБ» + «Активен до DD.MM.YYYY» + процент; пинг отдельного сервера кнопкой в строке, экран Статистика (за сегодня: трафик/время в сети/сессии + график 7 дней из localStorage), Kill Switch для VPN-режима (blackhole-маршруты сохраняются при обрыве туннеля, для прокси — системный прокси остаётся на мёртвый порт), тумблер «Авто-лучший сервер» в Настройках. Windows 4.2.0.1.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 22:34:43 +03:00

33 lines
1.1 KiB
Go

package core
import (
"context"
"vpnclient/internal/config"
)
// Engine runs one protocol backend (e.g. official naive.exe).
type Engine interface {
Protocol() config.Protocol
Start(ctx context.Context, profile config.Profile, binDir string) error
Stop() error
Running() bool
LocalHTTPProxy() (hostPort string, ok bool)
LocalSOCKSProxy() (hostPort string, ok bool)
}
// Status is a snapshot of the connection manager.
type Status struct {
Connected bool `json:"connected"`
Profile string `json:"profile,omitempty"`
Protocol config.Protocol `json:"protocol,omitempty"`
HTTPProxy string `json:"http_proxy,omitempty"`
SOCKSProxy string `json:"socks_proxy,omitempty"`
SystemProxy bool `json:"system_proxy"`
VPNActive bool `json:"vpn_active,omitempty"`
// KillSwitchActive: the tunnel died unexpectedly and traffic is being
// blocked on purpose until manual disconnect / reconnect.
KillSwitchActive bool `json:"kill_switch_active,omitempty"`
Extra map[string]string `json:"extra,omitempty"`
}