Browse Source

added custom ip or domain unmarshal logic

Shelikhoo 4 years ago
parent
commit
1876fbd6cd
1 changed files with 11 additions and 0 deletions
  1. 11 0
      common/net/address.go

+ 11 - 0
common/net/address.go

@@ -2,6 +2,8 @@ package net
 
 
 import (
 import (
 	"bytes"
 	"bytes"
+	"encoding/json"
+	"github.com/golang/protobuf/jsonpb"
 	"net"
 	"net"
 	"strings"
 	"strings"
 )
 )
@@ -209,3 +211,12 @@ func NewIPOrDomain(addr Address) *IPOrDomain {
 		panic("Unknown Address type.")
 		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
+}