mirror of
https://github.com/syncthing/syncthing.git
synced 2024-11-16 18:41:59 -07:00
34c04babbe
1. Change listen addresses to URIs 2. Break out connectionSvc to support listeners and dialers based on schema 3. Add relay announcement and lookups part of discovery service
28 lines
704 B
Go
28 lines
704 B
Go
// 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 osutil
|
|
|
|
import (
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
// TCPPing returns the duration required to establish a TCP connection
|
|
// to the given host. ICMP packets require root priviledges, hence why we use
|
|
// tcp.
|
|
func TCPPing(address string) (time.Duration, error) {
|
|
dialer := net.Dialer{
|
|
Deadline: time.Now().Add(time.Second),
|
|
}
|
|
start := time.Now()
|
|
conn, err := dialer.Dial("tcp", address)
|
|
if conn != nil {
|
|
conn.Close()
|
|
}
|
|
return time.Since(start), err
|
|
}
|