Initial commit

This commit is contained in:
2026-05-26 16:32:55 +03:00
commit 4f2d899130
427 changed files with 231313 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
package dialer
import (
"crypto/tls"
"fmt"
"net"
"net/url"
)
func (d *Dialer) Dial() (net.Conn, error) {
if d.dialURL.Scheme == "https" {
return tls.Dial("tcp", d.dialURL.Host, &tls.Config{
ServerName: d.dialURL.Hostname(),
InsecureSkipVerify: d.app.Config().Upstream.InsecureTLS,
})
}
return net.Dial("tcp", d.dialURL.Host)
}
func (d *Dialer) UpstreamURL() (*url.URL, error) {
if d.app.Config().Upstream.URL == "" {
return nil, fmt.Errorf(
"%w: %w (%s)", ErrDialer, ErrParseURL,
"upstream URL is empty",
)
}
u, err := url.Parse(d.app.Config().Upstream.URL)
if err != nil {
return nil, fmt.Errorf(
"%w: %w (%w)", ErrDialer, ErrParseURL, err,
)
}
return u, nil
}

View File

@@ -0,0 +1,43 @@
package dialer
import (
"fmt"
"net/url"
"source.hodakov.me/hdkv/deconnect/internal/application"
"source.hodakov.me/hdkv/deconnect/internal/domains"
)
var (
_ domains.Dialer = new(Dialer)
_ domains.Domain = new(Dialer)
)
type Dialer struct {
app *application.App
dialURL *url.URL
}
func New(app *application.App) *Dialer {
return &Dialer{
app: app,
}
}
func (d *Dialer) ConnectDependencies() error {
dialURL, err := d.UpstreamURL()
if err != nil {
return fmt.Errorf(
"%w: %w (%w)", ErrDialer, ErrConnectDependencies, err,
)
}
d.dialURL = dialURL
return nil
}
func (d *Dialer) Start() error {
return nil
}

View File

@@ -0,0 +1,9 @@
package dialer
import "errors"
var (
ErrDialer = errors.New("dialer")
ErrConnectDependencies = errors.New("failed to connect dependencies")
ErrParseURL = errors.New("failed to parse URL")
)