func websocketDial(tt *tunneltest.TunnelTest, ident string) (*websocket.Conn, error) { req := tt.Request(ident, nil) if req == nil { return nil, fmt.Errorf("no client found for ident %q", ident) } h := http.Header{"Host": {req.Host}} wsurl := fmt.Sprintf("ws://%s", tt.ServerAddr()) conn, _, err := dialer.Dial(wsurl, h) return conn, err }
func echoHTTP(tt *tunneltest.TunnelTest, echo string) (string, error) { req := tt.Request("http", url.Values{"echo": []string{echo}}) if req == nil { return "", fmt.Errorf(`tunnel "http" does not exist`) } req.Close = rand.Int()%2 == 0 resp, err := http.DefaultClient.Do(req) if err != nil { return "", err } defer resp.Body.Close() p, err := ioutil.ReadAll(resp.Body) if err != nil { return "", err } return string(bytes.TrimSpace(p)), nil }