diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-29 00:58:01 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-29 00:58:01 +0300 |
| commit | c55afd2de177f128fae6e1c52d0c56af17096258 (patch) | |
| tree | 2b06eeabf4db3a6c7ef357fb1569c4e8f72aab68 /pkg/server/hook/hex.go | |
| parent | 11501b56a751d2959480aaeaf2036eff586e5629 (diff) | |
rename module to hook
Diffstat (limited to 'pkg/server/hook/hex.go')
| -rw-r--r-- | pkg/server/hook/hex.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pkg/server/hook/hex.go b/pkg/server/hook/hex.go new file mode 100644 index 0000000..beaadeb --- /dev/null +++ b/pkg/server/hook/hex.go @@ -0,0 +1,37 @@ +package hook + +import ( + "encoding/hex" + "tunnel/pkg/server/env" + "tunnel/pkg/server/opts" + "tunnel/pkg/server/queue" +) + +type hexHook struct{} + +func (h hexHook) Send(rq, wq queue.Q) error { + enc := hex.NewEncoder(wq.Writer()) + + for b := range rq { + enc.Write(b) + } + + return nil +} + +func (h hexHook) Recv(rq, wq queue.Q) error { + r := hex.NewDecoder(rq.Reader()) + return queue.IoCopy(r, wq.Writer()) +} + +func (h hexHook) Open(env.Env) (interface{}, error) { + return h, nil +} + +func newHexHook(opts.Opts, env.Env) (hook, error) { + return hexHook{}, nil +} + +func init() { + register("hex", newHexHook) +} |
