summaryrefslogtreecommitdiff
path: root/rpc/config.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-10 17:06:06 +0300
committerWolfy-J <[email protected]>2018-06-10 17:06:06 +0300
commit232aa8f3c20a060e556ab431467f4f7b3f83bfbf (patch)
treea9dacbc142020cabae6a0708733aadb7e789aea5 /rpc/config.go
parent3fe85e9d92f5f98337e8f7fd9a14e6b66b9694bd (diff)
http service
Diffstat (limited to 'rpc/config.go')
-rw-r--r--rpc/config.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/rpc/config.go b/rpc/config.go
new file mode 100644
index 00000000..8a34752a
--- /dev/null
+++ b/rpc/config.go
@@ -0,0 +1,35 @@
+package rpc
+
+import (
+ "errors"
+ "net"
+ "strings"
+)
+
+type config struct {
+ // Indicates if RPC connection is enabled.
+ Enable bool
+
+ // Listen string
+ Listen string
+}
+
+// listener creates new rpc socket listener.
+func (cfg *config) listener() (net.Listener, error) {
+ dsn := strings.Split(cfg.Listen, "://")
+ if len(dsn) != 2 {
+ return nil, errors.New("invalid socket DSN (tcp://:6001, unix://rpc.sock)")
+ }
+
+ return net.Listen(dsn[0], dsn[1])
+}
+
+// dialer creates rpc socket dialer.
+func (cfg *config) dialer() (net.Conn, error) {
+ dsn := strings.Split(cfg.Listen, "://")
+ if len(dsn) != 2 {
+ return nil, errors.New("invalid socket DSN (tcp://:6001, unix://rpc.sock)")
+ }
+
+ return net.Dial(dsn[0], dsn[1])
+}