summaryrefslogtreecommitdiff
path: root/extendedstats/darwin.go
diff options
context:
space:
mode:
authorWill Hawkins <[email protected]>2023-02-22 19:17:09 -0800
committerGitHub <[email protected]>2023-02-22 19:17:09 -0800
commite59ddfd3672750351f80fb35c804827b2f726642 (patch)
treeff8a9707caf844be368106ee8000ce7c6e0b57db /extendedstats/darwin.go
parentad8b4dac1ad3500904747a090de2d99f2f774156 (diff)
parentbfa2e2b0fa93b6059fba0581b52d6d60a53b5a4a (diff)
Merge pull request #44 from network-quality/connect_to_secure_merged
A grab bag of changes
Diffstat (limited to 'extendedstats/darwin.go')
-rw-r--r--extendedstats/darwin.go22
1 files changed, 7 insertions, 15 deletions
diff --git a/extendedstats/darwin.go b/extendedstats/darwin.go
index 59d6e38..19c5bc0 100644
--- a/extendedstats/darwin.go
+++ b/extendedstats/darwin.go
@@ -28,8 +28,6 @@ import (
type AggregateExtendedStats struct {
Maxseg uint64
- MaxSendMss uint64
- MaxRecvMss uint64
TotalRetransmissions uint64
totalSent uint64
TotalReorderings uint64
@@ -44,12 +42,8 @@ func ExtendedStatsAvailable() bool {
}
type TCPInfo struct {
- Rxoutoforderbytes uint64
- Txretransmitbytes uint64
- Txbytes uint64
- Rtt uint32
- Maxseg uint32
- Snd_cwnd uint32
+ unix.TCPConnectionInfo
+ Rtt uint32 // Srtt under Darwin
}
func (es *AggregateExtendedStats) IncorporateConnectionStats(basicConn net.Conn) error {
@@ -98,20 +92,18 @@ func GetTCPInfo(basicConn net.Conn) (*TCPInfo, error) {
var rawInfo *unix.TCPConnectionInfo = nil
var tcpInfo *TCPInfo = nil
- rawConn.Control(func(fd uintptr) {
+ rerr := rawConn.Control(func(fd uintptr) {
rawInfo, err = unix.GetsockoptTCPConnectionInfo(
int(fd),
unix.IPPROTO_TCP,
unix.TCP_CONNECTION_INFO,
)
})
+ if rerr != nil {
+ return nil, rerr
+ }
if rawInfo != nil && err == nil {
- tcpInfo = &TCPInfo{}
- tcpInfo.Rxoutoforderbytes = rawInfo.Rxoutoforderbytes
- tcpInfo.Txretransmitbytes = rawInfo.Txretransmitbytes
- tcpInfo.Rtt = rawInfo.Srtt
- tcpInfo.Snd_cwnd = rawInfo.Snd_cwnd
- tcpInfo.Maxseg = rawInfo.Maxseg
+ tcpInfo = &TCPInfo{TCPConnectionInfo: *rawInfo, Rtt: rawInfo.Srtt}
}
return tcpInfo, err
}