go.net/ipv6: add deadline methods to PacketConn
Update golang/go#5538
R=dave, r
CC=golang-dev
https://golang.org/cl/10089046
diff --git a/ipv6/endpoint.go b/ipv6/endpoint.go
index ac816c8..04eee35 100644
--- a/ipv6/endpoint.go
+++ b/ipv6/endpoint.go
@@ -7,6 +7,7 @@
import (
"net"
"syscall"
+ "time"
)
// A Conn represents a network endpoint that uses IPv6 transport.
@@ -72,12 +73,39 @@
return setControlMessage(fd, &c.payloadHandler.rawOpt, cf, on)
}
+// SetDeadline sets the read and write deadlines associated with the
+// endpoint.
+func (c *PacketConn) SetDeadline(t time.Time) error {
+ if !c.payloadHandler.ok() {
+ return syscall.EINVAL
+ }
+ return c.payloadHandler.SetDeadline(t)
+}
+
+// SetReadDeadline sets the read deadline associated with the
+// endpoint.
+func (c *PacketConn) SetReadDeadline(t time.Time) error {
+ if !c.payloadHandler.ok() {
+ return syscall.EINVAL
+ }
+ return c.payloadHandler.SetReadDeadline(t)
+}
+
+// SetWriteDeadline sets the write deadline associated with the
+// endpoint.
+func (c *PacketConn) SetWriteDeadline(t time.Time) error {
+ if !c.payloadHandler.ok() {
+ return syscall.EINVAL
+ }
+ return c.payloadHandler.SetWriteDeadline(t)
+}
+
// Close closes the endpoint.
func (c *PacketConn) Close() error {
if !c.payloadHandler.ok() {
return syscall.EINVAL
}
- return c.payloadHandler.PacketConn.Close()
+ return c.payloadHandler.Close()
}
// NewPacketConn returns a new PacketConn using c as its underlying