...
Run Format

Source file src/net/tcpsockopt_unix.go

     1	// Copyright 2009 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	// +build freebsd linux netbsd
     6	
     7	package net
     8	
     9	import (
    10		"os"
    11		"syscall"
    12		"time"
    13	)
    14	
    15	func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
    16		if err := fd.incref(); err != nil {
    17			return err
    18		}
    19		defer fd.decref()
    20		// The kernel expects seconds so round to next highest second.
    21		d += (time.Second - time.Nanosecond)
    22		secs := int(d.Seconds())
    23		if err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, secs); err != nil {
    24			return os.NewSyscallError("setsockopt", err)
    25		}
    26		return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, secs))
    27	}
    28	

View as plain text