From 8effb0b8b971d3904ad88a5c90da26aca47ee06a Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Wed, 30 Nov 2022 10:47:27 +0800 Subject: [PATCH] add protocol option for node --- chain/hop.go | 11 +++++++++-- chain/node.go | 7 +++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/chain/hop.go b/chain/hop.go index b7200a0..4cf5a64 100644 --- a/chain/hop.go +++ b/chain/hop.go @@ -3,8 +3,9 @@ package chain import "context" type SelectOptions struct { - Addr string - Host string + Addr string + Host string + Protocol string } type SelectOption func(*SelectOptions) @@ -21,6 +22,12 @@ func HostSelectOption(host string) SelectOption { } } +func ProtocolSelectOption(protocol string) SelectOption { + return func(o *SelectOptions) { + o.Protocol = protocol + } +} + type Hop interface { Nodes() []*Node Select(ctx context.Context, opts ...SelectOption) *Node diff --git a/chain/node.go b/chain/node.go index c975e2f..4bea0e3 100644 --- a/chain/node.go +++ b/chain/node.go @@ -15,6 +15,7 @@ type NodeOptions struct { HostMapper hosts.HostMapper Metadata metadata.Metadata Host string + Protocol string } type NodeOption func(*NodeOptions) @@ -49,6 +50,12 @@ func HostNodeOption(host string) NodeOption { } } +func ProtocolNodeOption(protocol string) NodeOption { + return func(o *NodeOptions) { + o.Protocol = protocol + } +} + func MetadataNodeOption(md metadata.Metadata) NodeOption { return func(o *NodeOptions) { o.Metadata = md