MCPcopy
hub / github.com/golang/net / validate

Method validate

route/route_test.go:101–152  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

99type msgs []Message
100
101func (ms msgs) validate() ([]string, error) {
102 var ss []string
103 for _, m := range ms {
104 switch m := m.(type) {
105 case *RouteMessage:
106 if err := addrs(m.Addrs).match(addrAttrs(nativeEndian.Uint32(m.raw[12:16]))); err != nil {
107 return nil, err
108 }
109 sys := m.Sys()
110 if sys == nil {
111 return nil, fmt.Errorf("no sys for %s", m.String())
112 }
113 ss = append(ss, m.String()+" "+syss(sys).String()+" "+addrs(m.Addrs).String())
114 case *InterfaceMessage:
115 var attrs addrAttrs
116 if runtime.GOOS == "openbsd" {
117 attrs = addrAttrs(nativeEndian.Uint32(m.raw[12:16]))
118 } else {
119 attrs = addrAttrs(nativeEndian.Uint32(m.raw[4:8]))
120 }
121 if err := addrs(m.Addrs).match(attrs); err != nil {
122 return nil, err
123 }
124 sys := m.Sys()
125 if sys == nil {
126 return nil, fmt.Errorf("no sys for %s", m.String())
127 }
128 ss = append(ss, m.String()+" "+syss(sys).String()+" "+addrs(m.Addrs).String())
129 case *InterfaceAddrMessage:
130 var attrs addrAttrs
131 if runtime.GOOS == "openbsd" {
132 attrs = addrAttrs(nativeEndian.Uint32(m.raw[12:16]))
133 } else {
134 attrs = addrAttrs(nativeEndian.Uint32(m.raw[4:8]))
135 }
136 if err := addrs(m.Addrs).match(attrs); err != nil {
137 return nil, err
138 }
139 ss = append(ss, m.String()+" "+addrs(m.Addrs).String())
140 case *InterfaceMulticastAddrMessage:
141 if err := addrs(m.Addrs).match(addrAttrs(nativeEndian.Uint32(m.raw[4:8]))); err != nil {
142 return nil, err
143 }
144 ss = append(ss, m.String()+" "+addrs(m.Addrs).String())
145 case *InterfaceAnnounceMessage:
146 ss = append(ss, m.String())
147 default:
148 ss = append(ss, fmt.Sprintf("%+v", m))
149 }
150 }
151 return ss, nil
152}
153
154type syss []Sys
155

Callers 6

TestFetchAndParseRIBFunction · 0.80
TestMonitorAndParseRIBFunction · 0.80
TestRouteMessageFunction · 0.80

Calls 8

addrsTypeAlias · 0.85
addrAttrsTypeAlias · 0.85
syssTypeAlias · 0.85
matchMethod · 0.65
Uint32Method · 0.65
SysMethod · 0.65
ErrorfMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected