Prechádzať zdrojové kódy

go.net/ipv4: update TODOs

TODOs for stub files are unnecessary because they are stubs.
Also adds TODOs that need to be treated for spurious word
boundary access on some CPU architecture such as ARM, Power.

LGTM=iant
R=iant
CC=golang-codereviews
https://golang.org/cl/171110043
Mikio Hara 11 rokov pred
rodič
commit
63ee83b038

+ 0 - 4
ipv4/control_stub.go

@@ -7,21 +7,17 @@
 package ipv4
 package ipv4
 
 
 func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
 func setControlMessage(fd int, opt *rawOpt, cf ControlFlags, on bool) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }
 
 
 func newControlMessage(opt *rawOpt) []byte {
 func newControlMessage(opt *rawOpt) []byte {
-	// TODO(mikio): Implement this
 	return nil
 	return nil
 }
 }
 
 
 func parseControlMessage(b []byte) (*ControlMessage, error) {
 func parseControlMessage(b []byte) (*ControlMessage, error) {
-	// TODO(mikio): Implement this
 	return nil, errOpNoSupport
 	return nil, errOpNoSupport
 }
 }
 
 
 func marshalControlMessage(cm *ControlMessage) []byte {
 func marshalControlMessage(cm *ControlMessage) []byte {
-	// TODO(mikio): Implement this
 	return nil
 	return nil
 }
 }

+ 4 - 4
ipv4/control_windows.go

@@ -7,21 +7,21 @@ package ipv4
 import "syscall"
 import "syscall"
 
 
 func setControlMessage(fd syscall.Handle, opt *rawOpt, cf ControlFlags, on bool) error {
 func setControlMessage(fd syscall.Handle, opt *rawOpt, cf ControlFlags, on bool) error {
-	// TODO(mikio): Implement this
+	// TODO(mikio): implement this
 	return syscall.EWINDOWS
 	return syscall.EWINDOWS
 }
 }
 
 
 func newControlMessage(opt *rawOpt) []byte {
 func newControlMessage(opt *rawOpt) []byte {
-	// TODO(mikio): Implement this
+	// TODO(mikio): implement this
 	return nil
 	return nil
 }
 }
 
 
 func parseControlMessage(b []byte) (*ControlMessage, error) {
 func parseControlMessage(b []byte) (*ControlMessage, error) {
-	// TODO(mikio): Implement this
+	// TODO(mikio): implement this
 	return nil, syscall.EWINDOWS
 	return nil, syscall.EWINDOWS
 }
 }
 
 
 func marshalControlMessage(cm *ControlMessage) []byte {
 func marshalControlMessage(cm *ControlMessage) []byte {
-	// TODO(mikio): Implement this
+	// TODO(mikio): implement this
 	return nil
 	return nil
 }
 }

+ 0 - 8
ipv4/dgramopt_stub.go

@@ -9,41 +9,33 @@ package ipv4
 import "net"
 import "net"
 
 
 func (c *dgramOpt) MulticastTTL() (int, error) {
 func (c *dgramOpt) MulticastTTL() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) SetMulticastTTL(ttl int) error {
 func (c *dgramOpt) SetMulticastTTL(ttl int) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) MulticastInterface() (*net.Interface, error) {
 func (c *dgramOpt) MulticastInterface() (*net.Interface, error) {
-	// TODO(mikio): Implement this
 	return nil, errOpNoSupport
 	return nil, errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error {
 func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) MulticastLoopback() (bool, error) {
 func (c *dgramOpt) MulticastLoopback() (bool, error) {
-	// TODO(mikio): Implement this
 	return false, errOpNoSupport
 	return false, errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) SetMulticastLoopback(on bool) error {
 func (c *dgramOpt) SetMulticastLoopback(on bool) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) JoinGroup(ifi *net.Interface, grp net.Addr) error {
 func (c *dgramOpt) JoinGroup(ifi *net.Interface, grp net.Addr) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) LeaveGroup(ifi *net.Interface, grp net.Addr) error {
 func (c *dgramOpt) LeaveGroup(ifi *net.Interface, grp net.Addr) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }

+ 0 - 4
ipv4/genericopt_stub.go

@@ -7,21 +7,17 @@
 package ipv4
 package ipv4
 
 
 func (c *genericOpt) TOS() (int, error) {
 func (c *genericOpt) TOS() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }
 
 
 func (c *genericOpt) SetTOS(tos int) error {
 func (c *genericOpt) SetTOS(tos int) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }
 
 
 func (c *genericOpt) TTL() (int, error) {
 func (c *genericOpt) TTL() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }
 
 
 func (c *genericOpt) SetTTL(ttl int) error {
 func (c *genericOpt) SetTTL(ttl int) error {
-	// TODO(mikio): Implement this
 	return errOpNoSupport
 	return errOpNoSupport
 }
 }

+ 3 - 0
ipv4/header.go

@@ -100,6 +100,7 @@ func (h *Header) Marshal() ([]byte, error) {
 		b[posTotalLen], b[posTotalLen+1] = byte(h.TotalLen>>8), byte(h.TotalLen)
 		b[posTotalLen], b[posTotalLen+1] = byte(h.TotalLen>>8), byte(h.TotalLen)
 		b[posFragOff], b[posFragOff+1] = byte(flagsAndFragOff>>8), byte(flagsAndFragOff)
 		b[posFragOff], b[posFragOff+1] = byte(flagsAndFragOff>>8), byte(flagsAndFragOff)
 	} else {
 	} else {
+		// TODO(mikio): fix spurious word boundary access
 		*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])) = uint16(h.TotalLen)
 		*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])) = uint16(h.TotalLen)
 		*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])) = uint16(flagsAndFragOff)
 		*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])) = uint16(flagsAndFragOff)
 	}
 	}
@@ -141,10 +142,12 @@ func ParseHeader(b []byte) (*Header, error) {
 		h.TotalLen = int(b[posTotalLen])<<8 | int(b[posTotalLen+1])
 		h.TotalLen = int(b[posTotalLen])<<8 | int(b[posTotalLen+1])
 		h.FragOff = int(b[posFragOff])<<8 | int(b[posFragOff+1])
 		h.FragOff = int(b[posFragOff])<<8 | int(b[posFragOff+1])
 	} else {
 	} else {
+		// TODO(mikio): fix spurious word boundary access
 		h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])))
 		h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])))
 		if runtime.GOOS != "freebsd" || freebsdVersion < 1000000 {
 		if runtime.GOOS != "freebsd" || freebsdVersion < 1000000 {
 			h.TotalLen += hdrlen
 			h.TotalLen += hdrlen
 		}
 		}
+		// TODO(mikio): fix spurious word boundary access
 		h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])))
 		h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])))
 	}
 	}
 	h.Flags = HeaderFlags(h.FragOff&0xe000) >> 13
 	h.Flags = HeaderFlags(h.FragOff&0xe000) >> 13

+ 0 - 4
ipv4/helper_stub.go

@@ -7,21 +7,17 @@
 package ipv4
 package ipv4
 
 
 func (c *genericOpt) sysfd() (int, error) {
 func (c *genericOpt) sysfd() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }
 
 
 func (c *dgramOpt) sysfd() (int, error) {
 func (c *dgramOpt) sysfd() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }
 
 
 func (c *payloadHandler) sysfd() (int, error) {
 func (c *payloadHandler) sysfd() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }
 
 
 func (c *packetHandler) sysfd() (int, error) {
 func (c *packetHandler) sysfd() (int, error) {
-	// TODO(mikio): Implement this
 	return 0, errOpNoSupport
 	return 0, errOpNoSupport
 }
 }