| 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
- }
|