summaryrefslogtreecommitdiff
path: root/pkg/server/module/hex.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-02-17 11:56:43 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-02-19 23:51:31 +0300
commitbd5339bff8bf5f5e877e94dfef265a22570a69c7 (patch)
tree5902df7a9f21c00d9c414f6b0c2b79aadfd84752 /pkg/server/module/hex.go
parentdf935315c7201b7d42eb361b3ac3d36fe83e53e6 (diff)
first working version
Diffstat (limited to 'pkg/server/module/hex.go')
-rw-r--r--pkg/server/module/hex.go27
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))
+}