github.com/ader1990/go@v0.0.0-20140630135419-8c24447fa791/src/pkg/net/tcpsockopt_solaris.go (about) 1 // Copyright 2013 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 // TCP socket options for solaris 6 7 package net 8 9 import ( 10 "os" 11 "syscall" 12 "time" 13 ) 14 15 // Set keep alive period. 16 func setKeepAlivePeriod(fd *netFD, d time.Duration) error { 17 if err := fd.incref(); err != nil { 18 return err 19 } 20 defer fd.decref() 21 22 // The kernel expects seconds so round to next highest second. 23 d += (time.Second - time.Nanosecond) 24 secs := int(d.Seconds()) 25 26 return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.SO_KEEPALIVE, secs)) 27 }