123456789101112131415161718192021222324252627282930 |
- package option
- import (
- "github.com/sagernet/sing/common/json"
- "github.com/sagernet/sing/common/uot"
- )
- type _UDPOverTCPOptions struct {
- Enabled bool `json:"enabled,omitempty"`
- Version uint8 `json:"version,omitempty"`
- }
- type UDPOverTCPOptions _UDPOverTCPOptions
- func (o UDPOverTCPOptions) MarshalJSON() ([]byte, error) {
- switch o.Version {
- case 0, uot.Version:
- return json.Marshal(o.Enabled)
- default:
- return json.Marshal(_UDPOverTCPOptions(o))
- }
- }
- func (o *UDPOverTCPOptions) UnmarshalJSON(bytes []byte) error {
- err := json.Unmarshal(bytes, &o.Enabled)
- if err == nil {
- return nil
- }
- return json.UnmarshalDisallowUnknownFields(bytes, (*_UDPOverTCPOptions)(o))
- }
|