MCPcopy Create free account
hub / github.com/bepass-org/proxy / writeAddr

Function writeAddr

pkg/socks5/common.go:218–273  ·  view source on GitHub ↗
(w io.Writer, addr *address)

Source from the content-addressed store, hash-verified

216}
217
218func writeAddr(w io.Writer, addr *address) error {
219 if addr == nil {
220 _, err := w.Write([]byte{ipv4Address, 0, 0, 0, 0, 0, 0})
221 if err != nil {
222 return err
223 }
224 return nil
225 }
226 if addr.IP != nil {
227 if ip4 := addr.IP.To4(); ip4 != nil {
228 _, err := w.Write([]byte{ipv4Address})
229 if err != nil {
230 return err
231 }
232 _, err = w.Write(ip4)
233 if err != nil {
234 return err
235 }
236 } else if ip6 := addr.IP.To16(); ip6 != nil {
237 _, err := w.Write([]byte{ipv6Address})
238 if err != nil {
239 return err
240 }
241 _, err = w.Write(ip6)
242 if err != nil {
243 return err
244 }
245 } else {
246 _, err := w.Write([]byte{ipv4Address, 0, 0, 0, 0})
247 if err != nil {
248 return err
249 }
250 }
251 } else if addr.Name != "" {
252 if len(addr.Name) > 255 {
253 return errStringTooLong
254 }
255 _, err := w.Write([]byte{fqdnAddress, byte(len(addr.Name))})
256 if err != nil {
257 return err
258 }
259 _, err = w.Write([]byte(addr.Name))
260 if err != nil {
261 return err
262 }
263 } else {
264 _, err := w.Write([]byte{ipv4Address, 0, 0, 0, 0})
265 if err != nil {
266 return err
267 }
268 }
269 var p [2]byte
270 binary.BigEndian.PutUint16(p[:], uint16(addr.Port))
271 _, err := w.Write(p[:])
272 return err
273}
274
275func writeAddrWithStr(w io.Writer, addr string) error {

Callers 2

sendReplyFunction · 0.70
writeAddrWithStrFunction · 0.70

Calls 1

WriteMethod · 0.45

Tested by

no test coverage detected