• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / slirp / 23950819644
71%

Build:
DEFAULT BRANCH: master
Ran 03 Apr 2026 03:05PM UTC
Jobs 1
Files 27
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Apr 2026 03:04PM UTC coverage: 71.205% (-3.2%) from 74.441%
23950819644

push

github

MagicalTux
Fix 28 bugs: protocol correctness, race conditions, resource leaks

vtcp/conn.go:
- Fix OOO FIN causing premature state transition and data loss
- Send timestamps on all segments after negotiation (RFC 7323)
- Send SACK blocks in ACKs when OOO data exists (RFC 2018)
- Fix fast recovery exit using correct recovery point sequence
- Respect configured congestion control in handleSynSent
- Account for OOO data in rcvWindow (use RecvBuf.Window)
- Fix keepalive initial timer (use idle timeout, not probe interval)
- Enforce write deadlines in Write() matching Read() pattern
- Use configured send buffer size in AcceptSYN/SetupForHandshake
- Remove duplicate stopPersist() call in RST handling

vtcp/congestion.go:
- Track recovery point (sndNxt) for correct fast recovery exit
- Add RecoverySeq() to CongestionController interface

vtcp/sendbuf.go:
- Add SACK scoreboard: MarkSACKed, IsSACKed, prune on ACK
- RetransmitData skips SACK'd ranges

tcp_nat.go:
- Replace plain bool with sync.Once for goroutine-safe close

usernat.go + ipv6.go:
- Fix SYN retransmit race with pending-connection tracking
- Fix RST generation per RFC 9293 §3.10.7.1
- Abort vtcp.Conn on listener accept overflow instead of silent drop
- Skip TIME_WAIT in maintenance (let vtcp timer handle transition)
- Validate IPv6 payload length against actual packet
- Skip IPv6 extension headers to find transport protocol

vclient/udp.go:
- Fix Read/Close race condition (closedForRead under recvMu)
- Implement read deadlines with timer-based wakeup
- Validate UDP length field, trim payload accordingly

vclient/client.go: Port collision detection in allocPort
vclient/arp.go: Clean up ARP waiters on timeout/cancel/error
vclient/tcp.go: Abort on accept overflow; reject SYN+ACK
vclient/dns.go: Replace time.After with time.NewTimer
vtcp/nettest/stress_test.go: Fix data races (atomic operations)
README.md: Update stale documentation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

148 of 399 new or added lines in 11 files covered. (37.09%)

21 existing lines in 7 files now uncovered.

3044 of 4275 relevant lines covered (71.2%)

11769.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
65
57.31
-1.65% vtcp/conn.go
44
64.55
-9.98% ipv6.go
34
64.59
-2.97% usernat.go
33
64.35
-29.77% vtcp/sendbuf.go
31
76.62
-16.65% vclient/udp.go
19
76.47
-9.06% vclient/arp.go
9
81.71
-5.43% vclient/client.go
6
82.91
-3.7% vclient/tcp.go
6
81.53
-2.14% vtcp/congestion.go
4
56.76
-0.94% vclient/dns.go

Coverage Regressions

Lines Coverage ∆ File
8
57.31
-1.65% vtcp/conn.go
5
81.71
-5.43% vclient/client.go
4
64.35
-29.77% vtcp/sendbuf.go
1
76.47
-9.06% vclient/arp.go
1
82.91
-3.7% vclient/tcp.go
1
76.62
-16.65% vclient/udp.go
1
81.53
-2.14% vtcp/congestion.go
Jobs
ID Job ID Ran Files Coverage
1 23950819644.1 03 Apr 2026 03:05PM UTC 27
71.2
GitHub Action Run
Source Files on build 23950819644
  • Tree
  • List 27
  • Changed 11
  • Source Changed 11
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23950819644
  • 7bc4a780 on github
  • Prev Build on master (#23948700689)
  • Next Build on master (#23952021400)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc