diff --git a/internal/route/types/port.go b/internal/route/types/port.go index a50a545f..e2a06ca3 100644 --- a/internal/route/types/port.go +++ b/internal/route/types/port.go @@ -27,7 +27,11 @@ func (p *Port) Parse(v string) (err error) { p.Proxy, err = strconv.Atoi(v) case 2: var err2 error - p.Listening, err = strconv.Atoi(parts[0]) + if parts[0] == "" { + p.Listening = 0 + } else { + p.Listening, err = strconv.Atoi(parts[0]) + } p.Proxy, err2 = strconv.Atoi(parts[1]) err = gperr.Join(err, err2) default: diff --git a/internal/route/types/port_test.go b/internal/route/types/port_test.go index 28b7d3e4..34ff870e 100644 --- a/internal/route/types/port_test.go +++ b/internal/route/types/port_test.go @@ -10,7 +10,6 @@ var invalidPorts = []string{ "", "123:", "0:", - ":1234", "qwerty", "asdfgh:asdfgh", "1234:asdfgh", @@ -78,6 +77,14 @@ func TestPortValid(t *testing.T) { Proxy: 5678, }, }, + { + name: "valid_lp_empty", + inputs: ":1234", + expect: Port{ + Listening: 0, + Proxy: 1234, + }, + }, { name: "valid_p", inputs: "5678",