Skip to content

Commit 3bb6b0c

Browse files
add documentation for error returned by ParseRequest, use it in tests (#32)
1 parent b47ab75 commit 3bb6b0c

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

integration/proxy/proxy.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package main
55
import (
66
"context"
77
"crypto/tls"
8+
"errors"
89
"fmt"
910
"log"
1011
"net"
@@ -182,6 +183,11 @@ func run(bindTo netip.AddrPort, remoteAddr netip.Addr, route netip.Prefix, ipPro
182183
mux.HandleFunc("/vpn", func(w http.ResponseWriter, r *http.Request) {
183184
req, err := connectip.ParseRequest(r, template)
184185
if err != nil {
186+
var perr *connectip.RequestParseError
187+
if errors.As(err, &perr) {
188+
w.WriteHeader(perr.HTTPStatus)
189+
return
190+
}
185191
w.WriteHeader(http.StatusBadRequest)
186192
return
187193
}

request.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ type RequestParseError struct {
3838
func (e *RequestParseError) Error() string { return e.Err.Error() }
3939
func (e *RequestParseError) Unwrap() error { return e.Err }
4040

41+
// ParseRequest parses a CONNECT-IP request.
42+
// The template is the URI template that clients will use to configure this proxy.
4143
func ParseRequest(r *http.Request, template *uritemplate.Template) (*Request, error) {
4244
if len(template.Varnames()) > 0 {
4345
return nil, errors.New("connect-ip-go currently does not support IP flow forwarding")

0 commit comments

Comments
 (0)