2017-04-10 11:32:00 +00:00
|
|
|
// Copyright 2015 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
2022-10-27 18:55:19 +00:00
|
|
|
//go:build !plan9
|
2017-04-10 11:32:00 +00:00
|
|
|
|
|
|
|
package socktest
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"syscall"
|
|
|
|
)
|
|
|
|
|
|
|
|
func familyString(family int) string {
|
|
|
|
switch family {
|
|
|
|
case syscall.AF_INET:
|
|
|
|
return "inet4"
|
|
|
|
case syscall.AF_INET6:
|
|
|
|
return "inet6"
|
|
|
|
case syscall.AF_UNIX:
|
|
|
|
return "local"
|
|
|
|
default:
|
|
|
|
return fmt.Sprintf("%d", family)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func typeString(sotype int) string {
|
|
|
|
var s string
|
|
|
|
switch sotype & 0xff {
|
|
|
|
case syscall.SOCK_STREAM:
|
|
|
|
s = "stream"
|
|
|
|
case syscall.SOCK_DGRAM:
|
|
|
|
s = "datagram"
|
|
|
|
case syscall.SOCK_RAW:
|
|
|
|
s = "raw"
|
|
|
|
case syscall.SOCK_SEQPACKET:
|
|
|
|
s = "seqpacket"
|
|
|
|
default:
|
|
|
|
s = fmt.Sprintf("%d", sotype&0xff)
|
|
|
|
}
|
|
|
|
if flags := uint(sotype) & ^uint(0xff); flags != 0 {
|
|
|
|
s += fmt.Sprintf("|%#x", flags)
|
|
|
|
}
|
|
|
|
return s
|
|
|
|
}
|
|
|
|
|
|
|
|
func protocolString(proto int) string {
|
|
|
|
switch proto {
|
|
|
|
case 0:
|
|
|
|
return "default"
|
|
|
|
case syscall.IPPROTO_TCP:
|
|
|
|
return "tcp"
|
|
|
|
case syscall.IPPROTO_UDP:
|
|
|
|
return "udp"
|
|
|
|
default:
|
|
|
|
return fmt.Sprintf("%d", proto)
|
|
|
|
}
|
|
|
|
}
|