summaryrefslogtreecommitdiffhomepage
path: root/server/sockopt_linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/sockopt_linux.go')
-rw-r--r--server/sockopt_linux.go22
1 files changed, 14 insertions, 8 deletions
diff --git a/server/sockopt_linux.go b/server/sockopt_linux.go
index 336caf15..9fe02ba5 100644
--- a/server/sockopt_linux.go
+++ b/server/sockopt_linux.go
@@ -32,10 +32,12 @@ const (
type tcpmd5sig struct {
ss_family uint16
ss [126]byte
- pad1 uint16
- keylen uint16
- pad2 uint32
- key [80]byte
+ // padding the struct
+ _ uint16
+ keylen uint16
+ // padding the struct
+ _ uint32
+ key [80]byte
}
func buildTcpMD5Sig(address string, key string) (tcpmd5sig, error) {
@@ -66,10 +68,11 @@ func setsockoptTcpMD5Sig(fd int, address string, key string) error {
func SetTcpMD5SigSockopt(l *net.TCPListener, address string, key string) error {
fi, _, err := extractFileAndFamilyFromTCPListener(l)
- defer fi.Close()
if err != nil {
return err
}
+ defer fi.Close()
+
return setsockoptTcpMD5Sig(int(fi.Fd()), address, key)
}
@@ -85,19 +88,21 @@ func setsockoptIpTtl(fd int, family int, value int) error {
func SetListenTcpTTLSockopt(l *net.TCPListener, ttl int) error {
fi, family, err := extractFileAndFamilyFromTCPListener(l)
- defer fi.Close()
if err != nil {
return err
}
+ defer fi.Close()
+
return setsockoptIpTtl(int(fi.Fd()), family, ttl)
}
func SetTcpTTLSockopt(conn *net.TCPConn, ttl int) error {
fi, family, err := extractFileAndFamilyFromTCPConn(conn)
- defer fi.Close()
if err != nil {
return err
}
+ defer fi.Close()
+
return setsockoptIpTtl(int(fi.Fd()), family, ttl)
}
@@ -113,10 +118,11 @@ func setsockoptIpMinTtl(fd int, family int, value int) error {
func SetTcpMinTTLSockopt(conn *net.TCPConn, ttl int) error {
fi, family, err := extractFileAndFamilyFromTCPConn(conn)
- defer fi.Close()
if err != nil {
return err
}
+ defer fi.Close()
+
return setsockoptIpMinTtl(int(fi.Fd()), family, ttl)
}