diff options
Diffstat (limited to 'pkg/server/module/hex.go')
| -rw-r--r-- | pkg/server/module/hex.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pkg/server/module/hex.go b/pkg/server/module/hex.go new file mode 100644 index 0000000..2ffd1fc --- /dev/null +++ b/pkg/server/module/hex.go @@ -0,0 +1,27 @@ +package module + +import ( + "tunnel/pkg/server/queue" + "encoding/hex" +) + +func hexEncoder(rq, wq queue.Q) error { + enc := hex.NewEncoder(wq.Writer()) + + for b := range rq { + enc.Write(b) + } + + return nil +} + +func hexDecoder(rq, wq queue.Q) error { + r := hex.NewDecoder(rq.Reader()) + w := wq.Writer() + return queue.IoCopy(r, w) +} + +func init() { + register("hex", pipe(hexEncoder)) + register("unhex", pipe(hexDecoder)) +} |
