1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-10 09:50:43 +00:00
v2fly/common/net/address_json.go
2016-10-12 18:43:55 +02:00

28 lines
480 B
Go

// +build json
package net
import (
"encoding/json"
)
func (this *IPOrDomain) UnmarshalJSON(data []byte) error {
var rawStr string
if err := json.Unmarshal(data, &rawStr); err != nil {
return err
}
addr := ParseAddress(rawStr)
switch addr.Family() {
case AddressFamilyIPv4, AddressFamilyIPv6:
this.Address = &IPOrDomain_Ip{
Ip: []byte(addr.IP()),
}
case AddressFamilyDomain:
this.Address = &IPOrDomain_Domain{
Domain: addr.Domain(),
}
}
return nil
}