summaryrefslogtreecommitdiff
path: root/pkg/server/socket/defer.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/socket/defer.go')
-rw-r--r--pkg/server/socket/defer.go23
1 files changed, 9 insertions, 14 deletions
diff --git a/pkg/server/socket/defer.go b/pkg/server/socket/defer.go
index 7ed303d..7c1436e 100644
--- a/pkg/server/socket/defer.go
+++ b/pkg/server/socket/defer.go
@@ -6,28 +6,19 @@ import (
)
type deferSocket struct {
- S
+ dialSocket `opts:"inline"`
}
type deferConn struct {
- sock *deferSocket
+ sock S
wait chan bool
env env.Env
conn Conn
}
-func newDeferSocket(proto, addr string) (S, error) {
- s, err := newDialSocket(proto, addr)
- if err != nil {
- return s, err
- }
-
- return &deferSocket{s}, nil
-}
-
-func (s *deferSocket) Open(env env.Env) (Conn, error) {
+func (s *deferSocket) New(env env.Env) (Conn, error) {
c := &deferConn{
- sock: s,
+ sock: &s.dialSocket,
wait: make(chan bool),
env: env,
}
@@ -54,7 +45,7 @@ func (c *deferConn) Recv(rq queue.Q) error {
return nil
}
- conn, err := c.sock.S.Open(c.env)
+ conn, err := c.sock.New(c.env)
if err != nil {
c.wait <- false
return err
@@ -83,3 +74,7 @@ func (c *deferConn) Close() (err error) {
return
}
+
+func init() {
+ register("defer", deferSocket{})
+}