MCPcopy Create free account
hub / github.com/SeeFlowerX/stackplz / Format

Method Format

user/config/config_struct.go:319–372  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

317}
318
319func (this *Arg_RawSockaddrUnix) Format() string {
320 var fields []string
321 if this.Family == syscall.AF_FILE {
322 fields = append(fields, "family=AF_FILE")
323 fields = append(fields, fmt.Sprintf("path=%s", util.B2S(this.Path[:])))
324 } else if this.Family == syscall.AF_INET {
325 fields = append(fields, "family=AF_INET")
326 sockaddr := (*syscall.RawSockaddrInet4)(unsafe.Pointer(&this.RawSockaddrUnix))
327 fields = append(fields, fmt.Sprintf("port=%d", sockaddr.Port))
328 fields = append(fields, fmt.Sprintf("addr=%s", net.IP(sockaddr.Addr[:]).String()))
329 // fields = append(fields, fmt.Sprintf("zero=%x", sockaddr.Zero))
330 } else if this.Family == syscall.AF_INET6 {
331 fields = append(fields, "family=AF_INET6")
332 buf := &bytes.Buffer{}
333 err := binary.Write(buf, binary.BigEndian, this.RawSockaddrUnix)
334 if err != nil {
335 panic(err)
336 }
337 var sockaddr6 syscall.RawSockaddrInet6
338 err = binary.Read(buf, binary.LittleEndian, &sockaddr6.Family)
339 if err != nil {
340 panic(err)
341 }
342 err = binary.Read(buf, binary.BigEndian, &sockaddr6.Port)
343 if err != nil {
344 panic(err)
345 }
346 err = binary.Read(buf, binary.BigEndian, &sockaddr6.Flowinfo)
347 if err != nil {
348 panic(err)
349 }
350 err = binary.Read(buf, binary.LittleEndian, &sockaddr6.Addr)
351 if err != nil {
352 panic(err)
353 }
354 err = binary.Read(buf, binary.LittleEndian, &sockaddr6.Scope_id)
355 if err != nil {
356 panic(err)
357 }
358 fields = append(fields, fmt.Sprintf("port=%d", sockaddr6.Port))
359 fields = append(fields, fmt.Sprintf("flowinfo=%d", sockaddr6.Flowinfo))
360 // 好像还是会解析成ipv4
361 fields = append(fields, fmt.Sprintf("addr=%s", net.IP(sockaddr6.Addr[:]).String()))
362 fields = append(fields, fmt.Sprintf("scope_id=%d", sockaddr6.Scope_id))
363 } else if this.Family == syscall.AF_UNSPEC {
364 // 暂时不知道这个怎么解析比较好
365 fields = append(fields, "family=AF_UNSPEC")
366 fields = append(fields, fmt.Sprintf("path=\n%s", util.HexDump(util.I2B(this.Path[:]), util.COLORGREEN)))
367 } else {
368 fields = append(fields, fmt.Sprintf("family=0x%x", this.Family))
369 fields = append(fields, fmt.Sprintf("path=\n%s", util.HexDump(util.I2B(this.Path[:]), util.COLORGREEN)))
370 }
371 return fmt.Sprintf("(%s)", strings.Join(fields, ", "))
372}
373
374type Arg_Iovec struct {
375 Index uint8

Callers

nothing calls this directly

Calls 5

B2SFunction · 0.92
HexDumpFunction · 0.92
I2BFunction · 0.92
StringMethod · 0.65
WriteMethod · 0.65

Tested by

no test coverage detected