Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c7fff1f
packet conn wrapper: Adjust requirements (temporarily)
vnxme Aug 6, 2025
f81fce3
packet conn wrapper: Backbone
vnxme Aug 14, 2025
4163c3c
packet conn wrapper: Integration tests
vnxme Aug 14, 2025
c316a5b
implement packet conn handler
WeidiDeng Aug 15, 2025
848137d
set idle timeout
WeidiDeng Aug 18, 2025
1fd23a0
Merge branch 'master' into packet-conn-wrapper
mholt Aug 18, 2025
af51a04
packet conn wrapper: Create Server before populating its fields
vnxme Aug 20, 2025
b7bbad4
create server only if needed
WeidiDeng Aug 25, 2025
1def5ee
embed configuration parameter in PacketConnWrapper, use server only t…
WeidiDeng Aug 25, 2025
a345fd2
packet conn wrapper: Bump Go and Caddy
vnxme Aug 25, 2025
47dae02
Merge branch 'master' into packet-conn-wrapper
vnxme Aug 25, 2025
a3a26e0
packet conn wrapper: Restore field comments
vnxme Aug 25, 2025
970900f
packet conn wrapper: Rearrange code
vnxme Aug 25, 2025
7900c19
use atomic to count the number of goroutines handling packet associat…
WeidiDeng Aug 26, 2025
6d0c5b6
Merge remote-tracking branch 'vnxme/packet-conn-wrapper' into fork/vn…
WeidiDeng Aug 26, 2025
f899c48
packet conn wrapper: Add complex tests
vnxme Aug 31, 2025
6c0830b
Merge branch 'master' into packet-conn-wrapper
vnxme Aug 31, 2025
9c3c912
packet conn wrapper: Minor test adjustments
vnxme Aug 31, 2025
a552a5c
packet conn wrapper: Fix UDP response checker
vnxme Aug 31, 2025
8c9217c
close channel only once
WeidiDeng Sep 1, 2025
503e36a
packet conn wrapper: Fix UDP part of PCW test
vnxme Sep 1, 2025
9d0e4f5
packet conn wrapper: Disable DNS part, enable UDP part of PCW test
vnxme Sep 1, 2025
ed1d58e
packet conn wrapper: Rename wait to delay
vnxme Sep 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ module github.com/mholt/caddy-l4

go 1.25

replace github.com/caddyserver/caddy/v2 v2.10.1 => github.com/vnxme/caddy/v2 v2.0.0-20250822175201-1e2ae1b66bee

require (
github.com/caddyserver/caddy/v2 v2.10.1
github.com/fsnotify/fsnotify v1.9.0
Expand Down
8 changes: 6 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/caddyserver/caddy/v2 v2.10.1 h1:j//AmT4hh88we6HWjzTIxk2Y7jOypsUvmZH1K1AOh38=
github.com/caddyserver/caddy/v2 v2.10.1/go.mod h1:TXLQHx+ev4HDpkO6PnVVHUbL6OXt6Dfe7VcIBdQnPL0=
github.com/caddyserver/certmagic v0.23.0 h1:CfpZ/50jMfG4+1J/u2LV6piJq4HOfO6ppOnOf7DkFEU=
github.com/caddyserver/certmagic v0.23.0/go.mod h1:9mEZIWqqWoI+Gf+4Trh04MOVPD0tGSxtqsxg87hAIH4=
github.com/caddyserver/certmagic v0.24.0 h1:EfXTWpxHAUKgDfOj6MHImJN8Jm4AMFfMT6ITuKhrDF0=
github.com/caddyserver/certmagic v0.24.0/go.mod h1:xPT7dC1DuHHnS2yuEQCEyks+b89sUkMENh8dJF+InLE=
github.com/caddyserver/zerossl v0.1.3 h1:onS+pxp3M8HnHpN5MMbOMyNjmTheJyWRaZYwn+YTAyA=
Expand Down Expand Up @@ -436,6 +436,10 @@ github.com/urfave/cli v1.22.17 h1:SYzXoiPfQjHBbkYxbew5prZHS1TOLT3ierW8SYLqtVQ=
github.com/urfave/cli v1.22.17/go.mod h1:b0ht0aqgH/6pBYzzxURyrM4xXNgsoT/n2ZzwQiEhNVo=
github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU=
github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=
github.com/vnxme/caddy/v2 v2.0.0-20250813194301-985e05d95dee h1:jzcXTnn8nOlIX0aazdAiHPmYyaXjpCEvYaai7bqqAb0=
github.com/vnxme/caddy/v2 v2.0.0-20250813194301-985e05d95dee/go.mod h1:ly5YIVCbxP8LITj7dMu33zMd9EwvLdcuuQoUwzNiQ0Y=
github.com/vnxme/caddy/v2 v2.0.0-20250822175201-1e2ae1b66bee h1:Thr+OARAP3gHUQhWCW0/bU97gBW9V7wfrK2TeglVTLU=
github.com/vnxme/caddy/v2 v2.0.0-20250822175201-1e2ae1b66bee/go.mod h1:TXLQHx+ev4HDpkO6PnVVHUbL6OXt6Dfe7VcIBdQnPL0=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
Expand Down
76 changes: 76 additions & 0 deletions integration/caddyfile_adapt/pcw_empty.caddytest
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
servers {
packet_conn_wrappers {
layer4
}
}
}
https://localhost {
tls {
issuer internal
}
respond "OK" 200
}
----------
{
"apps": {
"http": {
"servers": {
"srv0": {
"listen": [
":443"
],
"packet_conn_wrappers": [
{
"wrapper": "layer4"
}
],
"routes": [
{
"match": [
{
"host": [
"localhost"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"body": "OK",
"handler": "static_response",
"status_code": 200
}
]
}
]
}
],
"terminal": true
}
]
}
}
},
"tls": {
"automation": {
"policies": [
{
"subjects": [
"localhost"
],
"issuers": [
{
"module": "internal"
}
]
}
]
}
}
}
}
125 changes: 125 additions & 0 deletions integration/caddyfile_adapt/pcw_matcher_sets.caddytest
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
{
servers {
packet_conn_wrappers {
layer4 {
@d dns
route @d {
proxy udp/one.one.one.one:53
}
@w wireguard
route @w {
proxy udp/192.168.1.1:51820
}
}
}
}
}
https://localhost {
tls {
issuer internal
}
respond "OK" 200
}
----------
{
"apps": {
"http": {
"servers": {
"srv0": {
"listen": [
":443"
],
"packet_conn_wrappers": [
{
"routes": [
{
"handle": [
{
"handler": "proxy",
"upstreams": [
{
"dial": [
"udp/one.one.one.one:53"
]
}
]
}
],
"match": [
{
"dns": {}
}
]
},
{
"handle": [
{
"handler": "proxy",
"upstreams": [
{
"dial": [
"udp/192.168.1.1:51820"
]
}
]
}
],
"match": [
{
"wireguard": {}
}
]
}
],
"wrapper": "layer4"
}
],
"routes": [
{
"match": [
{
"host": [
"localhost"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"body": "OK",
"handler": "static_response",
"status_code": 200
}
]
}
]
}
],
"terminal": true
}
]
}
}
},
"tls": {
"automation": {
"policies": [
{
"subjects": [
"localhost"
],
"issuers": [
{
"module": "internal"
}
]
}
]
}
}
}
}
Loading
Loading