| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // Copyright (C) 2015 The Syncthing Authors.
- //
- // This Source Code Form is subject to the terms of the Mozilla Public
- // License, v. 2.0. If a copy of the MPL was not distributed with this file,
- // You can obtain one at http://mozilla.org/MPL/2.0/.
- package model
- import (
- "crypto/tls"
- "net"
- "github.com/syncthing/syncthing/lib/protocol"
- )
- type IntermediateConnection struct {
- *tls.Conn
- Type ConnectionType
- }
- type Connection struct {
- net.Conn
- protocol.Connection
- Type ConnectionType
- }
- const (
- ConnectionTypeDirectAccept ConnectionType = iota
- ConnectionTypeDirectDial
- ConnectionTypeRelayAccept
- ConnectionTypeRelayDial
- )
- type ConnectionType int
- func (t ConnectionType) String() string {
- switch t {
- case ConnectionTypeDirectAccept:
- return "direct-accept"
- case ConnectionTypeDirectDial:
- return "direct-dial"
- case ConnectionTypeRelayAccept:
- return "relay-accept"
- case ConnectionTypeRelayDial:
- return "relay-dial"
- }
- return "unknown"
- }
- func (t ConnectionType) IsDirect() bool {
- return t == ConnectionTypeDirectAccept || t == ConnectionTypeDirectDial
- }
|