summaryrefslogtreecommitdiff
path: root/pkg/server/socket/proxy.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/socket/proxy.go')
-rw-r--r--pkg/server/socket/proxy.go21
1 files changed, 11 insertions, 10 deletions
diff --git a/pkg/server/socket/proxy.go b/pkg/server/socket/proxy.go
index e4baec2..1be4bba 100644
--- a/pkg/server/socket/proxy.go
+++ b/pkg/server/socket/proxy.go
@@ -5,6 +5,7 @@ import (
"bytes"
"errors"
"fmt"
+
"tunnel/pkg/http"
"tunnel/pkg/server/env"
"tunnel/pkg/server/queue"
@@ -16,7 +17,7 @@ type status struct {
}
type proxySocket struct {
- proto string
+ Proto string `opts:"default:tcp"`
}
type proxyServer struct {
@@ -28,11 +29,7 @@ type proxyServer struct {
conn Conn
}
-func newProxySocket(proto string) (S, error) {
- return &proxySocket{proto}, nil
-}
-
-func (sock *proxySocket) Open(env env.Env) (Conn, error) {
+func (sock *proxySocket) New(env env.Env) (Conn, error) {
s := &proxyServer{
sock: sock,
auth: env.Value("proxy.auth"),
@@ -78,12 +75,12 @@ func (s *proxyServer) Send(wq queue.Q) error {
}
func (s *proxyServer) initConn(addr string) error {
- dial, err := newDialSocket(s.sock.proto, addr)
- if err != nil {
- return err
+ dial := dialSocket{
+ Proto: s.sock.Proto,
+ Addr: addr,
}
- conn, err := dial.Open(s.env)
+ conn, err := dial.New(s.env)
if err != nil {
dial.Close()
return err
@@ -138,3 +135,7 @@ func (s *proxyServer) Close() (err error) {
return
}
+
+func init() {
+ register("proxy", proxySocket{})
+}