diff --git a/common/net/address.go b/common/net/address.go index 9ba8c4734..c9bf5e4fa 100644 --- a/common/net/address.go +++ b/common/net/address.go @@ -2,6 +2,8 @@ package net import ( "bytes" + "encoding/json" + "github.com/golang/protobuf/jsonpb" "net" "strings" ) @@ -209,3 +211,12 @@ func NewIPOrDomain(addr Address) *IPOrDomain { panic("Unknown Address type.") } } + +func (d *IPOrDomain) UnmarshalJSONPB(unmarshaler *jsonpb.Unmarshaler, bytes []byte) error { + var ipOrDomain string + if err := json.Unmarshal(bytes, &ipOrDomain); err != nil { + return err + } + d = NewIPOrDomain(ParseAddress(ipOrDomain)) + return nil +}