mirror of
https://github.com/daeuniverse/dae.git
synced 2024-12-22 20:34:40 +07:00
51 lines
952 B
Go
51 lines
952 B
Go
|
/*
|
||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||
|
* Copyright (c) 2022-2024, daeuniverse Organization <dae@v2raya.org>
|
||
|
*/
|
||
|
|
||
|
package trace
|
||
|
|
||
|
import (
|
||
|
"encoding/binary"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func Htons(x uint16) uint16 {
|
||
|
data := make([]byte, 2)
|
||
|
nativeEndian.PutUint16(data, x)
|
||
|
return binary.BigEndian.Uint16(data)
|
||
|
}
|
||
|
|
||
|
func Ntohs(x uint16) uint16 {
|
||
|
data := make([]byte, 2)
|
||
|
binary.BigEndian.PutUint16(data, x)
|
||
|
return nativeEndian.Uint16(data)
|
||
|
}
|
||
|
|
||
|
func TrimNull(s string) string {
|
||
|
return strings.TrimRight(s, "\x00")
|
||
|
}
|
||
|
|
||
|
func TcpFlags(data uint8) string {
|
||
|
flags := []string{}
|
||
|
if data&0b00100000 != 0 {
|
||
|
flags = append(flags, "U")
|
||
|
}
|
||
|
if data&0b00010000 != 0 {
|
||
|
flags = append(flags, ".")
|
||
|
}
|
||
|
if data&0b00001000 != 0 {
|
||
|
flags = append(flags, "P")
|
||
|
}
|
||
|
if data&0b00000100 != 0 {
|
||
|
flags = append(flags, "R")
|
||
|
}
|
||
|
if data&0b00000010 != 0 {
|
||
|
flags = append(flags, "S")
|
||
|
}
|
||
|
if data&0b00000001 != 0 {
|
||
|
flags = append(flags, "F")
|
||
|
}
|
||
|
return strings.Join(flags, "")
|
||
|
}
|