| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- package policy
 
- import (
 
- 	"time"
 
- 	"v2ray.com/core"
 
- )
 
- // Duration converts Second to time.Duration.
 
- func (s *Second) Duration() time.Duration {
 
- 	if s == nil {
 
- 		return 0
 
- 	}
 
- 	return time.Second * time.Duration(s.Value)
 
- }
 
- // OverrideWith overrides current Policy with another one.
 
- func (p *Policy) OverrideWith(another *Policy) {
 
- 	if another.Timeout != nil {
 
- 		if another.Timeout.Handshake != nil {
 
- 			p.Timeout.Handshake = another.Timeout.Handshake
 
- 		}
 
- 		if another.Timeout.ConnectionIdle != nil {
 
- 			p.Timeout.ConnectionIdle = another.Timeout.ConnectionIdle
 
- 		}
 
- 		if another.Timeout.UplinkOnly != nil {
 
- 			p.Timeout.UplinkOnly = another.Timeout.UplinkOnly
 
- 		}
 
- 		if another.Timeout.DownlinkOnly != nil {
 
- 			p.Timeout.DownlinkOnly = another.Timeout.DownlinkOnly
 
- 		}
 
- 	}
 
- }
 
- func (p *Policy) ToCorePolicy() core.Policy {
 
- 	var cp core.Policy
 
- 	if p.Timeout != nil {
 
- 		cp.Timeouts.ConnectionIdle = p.Timeout.ConnectionIdle.Duration()
 
- 		cp.Timeouts.Handshake = p.Timeout.Handshake.Duration()
 
- 		cp.Timeouts.DownlinkOnly = p.Timeout.DownlinkOnly.Duration()
 
- 		cp.Timeouts.UplinkOnly = p.Timeout.UplinkOnly.Duration()
 
- 	}
 
- 	return cp
 
- }
 
 
  |