chore: use Go1.26
Some checks are pending
Build / Build (push) Waiting to run

This commit is contained in:
nadoo 2026-06-26 00:58:58 +08:00
parent e7b12e36a9
commit 38b34030bc
11 changed files with 13 additions and 36 deletions

View File

@ -1,5 +1,5 @@
# Build Stage # Build Stage
FROM golang:1.24-alpine AS build-env FROM golang:1.26-alpine AS build-env
ADD . /src ADD . /src
RUN apk --no-cache add git \ RUN apk --no-cache add git \
&& cd /src && go build -v -ldflags "-s -w" && cd /src && go build -v -ldflags "-s -w"

View File

@ -443,7 +443,7 @@ func (m *Message) UnmarshalRR(start int, rr *RR) (n int, err error) {
// MarshalDomainTo marshals domain string struct to []byte and write to w. // MarshalDomainTo marshals domain string struct to []byte and write to w.
func MarshalDomainTo(w io.Writer, domain string) (n int, err error) { func MarshalDomainTo(w io.Writer, domain string) (n int, err error) {
nn := 0 nn := 0
for _, seg := range strings.Split(domain, ".") { for seg := range strings.SplitSeq(domain, ".") {
nn, err = w.Write([]byte{byte(len(seg))}) nn, err = w.Write([]byte{byte(len(seg))})
if err != nil { if err != nil {
return return

View File

@ -20,7 +20,7 @@ func parsePaddingScheme(raw string) (paddingScheme, error) {
raw = defaultPaddingScheme raw = defaultPaddingScheme
} }
ps := paddingScheme{raw: raw, authRange: [2]int{0, 0}} ps := paddingScheme{raw: raw, authRange: [2]int{0, 0}}
for _, line := range strings.Split(raw, "\n") { for line := range strings.SplitSeq(raw, "\n") {
line = strings.TrimSpace(line) line = strings.TrimSpace(line)
if line == "" { if line == "" {
continue continue

View File

@ -26,7 +26,7 @@ func encodeSettings(m map[string]string) []byte {
func parseSettings(data []byte) map[string]string { func parseSettings(data []byte) map[string]string {
out := map[string]string{} out := map[string]string{}
for _, line := range strings.Split(string(data), "\n") { for line := range strings.SplitSeq(string(data), "\n") {
if line == "" { if line == "" {
continue continue
} }

View File

@ -49,10 +49,7 @@ func (st *stream) Write(p []byte) (int, error) {
} }
written := 0 written := 0
for len(p) > 0 { for len(p) > 0 {
n := len(p) n := min(len(p), maxFrameData)
if n > maxFrameData {
n = maxFrameData
}
if err := st.s.writeFrame(frame{command: cmdPSH, streamID: st.id, data: p[:n]}); err != nil { if err := st.s.writeFrame(frame{command: cmdPSH, streamID: st.id, data: p[:n]}); err != nil {
return written, err return written, err
} }

View File

@ -57,12 +57,10 @@ func Relay(left, right net.Conn) error {
var wg sync.WaitGroup var wg sync.WaitGroup
var wait = 5 * time.Second var wait = 5 * time.Second
wg.Add(1) wg.Go(func() {
go func() {
defer wg.Done()
_, err1 = Copy(right, left) _, err1 = Copy(right, left)
right.SetReadDeadline(time.Now().Add(wait)) // unblock read on right right.SetReadDeadline(time.Now().Add(wait)) // unblock read on right
}() })
_, err = Copy(left, right) _, err = Copy(left, right)
left.SetReadDeadline(time.Now().Add(wait)) // unblock read on left left.SetReadDeadline(time.Now().Add(wait)) // unblock read on left

View File

@ -104,10 +104,7 @@ func (c *TLSObfsConn) Read(b []byte) (int, error) {
c.leftBytes = int(binary.BigEndian.Uint16(c.buf[:lenSize])) c.leftBytes = int(binary.BigEndian.Uint16(c.buf[:lenSize]))
} }
readLen := len(b) readLen := min(len(b), c.leftBytes)
if readLen > c.leftBytes {
readLen = c.leftBytes
}
m, err := c.reader.Read(b[:readLen]) m, err := c.reader.Read(b[:readLen])
if err != nil { if err != nil {

View File

@ -24,10 +24,7 @@ func (w *writer) Write(p []byte) (n int, err error) {
defer pool.PutBuffer(buf) defer pool.PutBuffer(buf)
for nw := 0; n < len(p) && err == nil; n += nw { for nw := 0; n < len(p) && err == nil; n += nw {
end := n + len(buf) end := min(n+len(buf), len(p))
if end > len(p) {
end = len(p)
}
w.XORKeyStream(buf, p[n:end]) w.XORKeyStream(buf, p[n:end])
nw, err = w.Writer.Write(buf[:end-n]) nw, err = w.Writer.Write(buf[:end-n])
} }

View File

@ -39,10 +39,7 @@ func (w *aeadWriter) Write(b []byte) (n int, err error) {
nonce := w.nonce[:w.NonceSize()] nonce := w.nonce[:w.NonceSize()]
for left := len(b); left != 0; { for left := len(b); left != 0; {
writeLen = left + w.Overhead() writeLen = min(left+w.Overhead(), chunkSize)
if writeLen > chunkSize {
writeLen = chunkSize
}
dataLen = writeLen - w.Overhead() dataLen = writeLen - w.Overhead()
w.chunkSizeEncoder.Encode(uint16(writeLen), lenBuf) w.chunkSizeEncoder.Encode(uint16(writeLen), lenBuf)

View File

@ -23,10 +23,7 @@ func ChunkedWriter(w io.Writer, chunkSizeEncoder ChunkSizeEncoder) io.Writer {
func (w *chunkedWriter) Write(p []byte) (n int, err error) { func (w *chunkedWriter) Write(p []byte) (n int, err error) {
var dataLen int var dataLen int
for left := len(p); left != 0; { for left := len(p); left != 0; {
dataLen = left dataLen = min(left, chunkSize)
if dataLen > chunkSize {
dataLen = chunkSize
}
w.chunkSizeEncoder.Encode(uint16(dataLen), w.buf) w.chunkSizeEncoder.Encode(uint16(dataLen), w.buf)
if _, err = (&net.Buffers{w.buf[:], p[n : n+dataLen]}).WriteTo(w.Writer); err != nil { if _, err = (&net.Buffers{w.buf[:], p[n : n+dataLen]}).WriteTo(w.Writer); err != nil {
break break
@ -69,10 +66,7 @@ func (r *chunkedReader) Read(p []byte) (int, error) {
} }
} }
readLen := len(p) readLen := min(len(p), r.left)
if readLen > r.left {
readLen = r.left
}
n, err := r.Reader.Read(p[:readLen]) n, err := r.Reader.Read(p[:readLen])
if err != nil { if err != nil {

View File

@ -151,10 +151,7 @@ func (r *frameReader) Read(b []byte) (int, error) {
} }
} }
readLen := int64(len(b)) readLen := min(int64(len(b)), r.left)
if readLen > r.left {
readLen = r.left
}
m, err := io.ReadFull(r.Reader, b[:readLen]) m, err := io.ReadFull(r.Reader, b[:readLen])
if err != nil { if err != nil {