Something went wrong. Try again.
Cloudflare Tunnel client with NetBSD support
Something went wrong. Try again.
1.9 kB · 69 lines
Go
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970package socks
import ( "bytes" "encoding/binary" "net" "testing"
"github.com/stretchr/testify/assert")
func createRequestData(version, command uint8, ip net.IP, port uint16) []byte { // set the command b := []byte{version, command, 0}
// append the ip if len(ip) == net.IPv4len { b = append(b, 1) b = append(b, ip.To4()...) } else { b = append(b, 4) b = append(b, ip.To16()...) }
// append the port p := []byte{0, 0} binary.BigEndian.PutUint16(p, port) b = append(b, p...)
return b}
func createRequest(t *testing.T, version, command uint8, ipStr string, port uint16, shouldFail bool) *Request { ip := net.ParseIP(ipStr) data := createRequestData(version, command, ip, port) reader := bytes.NewReader(data) req, err := NewRequest(reader) if shouldFail { assert.Error(t, err) return nil } assert.NoError(t, err) assert.True(t, req.Version == socks5Version, "version doesn't match expectation: %v", req.Version) assert.True(t, req.Command == command, "command doesn't match expectation: %v", req.Command) assert.True(t, req.DestAddr.Port == int(port), "port doesn't match expectation: %v", req.DestAddr.Port) assert.True(t, req.DestAddr.IP.String() == ipStr, "ip doesn't match expectation: %v", req.DestAddr.IP.String())
return req}
func TestValidConnectRequest(t *testing.T) { createRequest(t, socks5Version, connectCommand, "127.0.0.1", 1337, false)}
func TestValidBindRequest(t *testing.T) { createRequest(t, socks5Version, bindCommand, "2001:db8::68", 1337, false)}
func TestValidAssociateRequest(t *testing.T) { createRequest(t, socks5Version, associateCommand, "127.0.0.1", 1234, false)}
func TestInValidVersionRequest(t *testing.T) { createRequest(t, 4, connectCommand, "127.0.0.1", 1337, true)}
func TestInValidIPRequest(t *testing.T) { createRequest(t, 4, connectCommand, "127.0.01", 1337, true)}