func TestCapabilitiesExchangeTLS(t *testing.T) { errc := make(chan error, 1) smux := diam.NewServeMux() smux.Handle("CER", handleCER(errc, true)) srv := diamtest.NewUnstartedServer(smux, nil) tm := 100 * time.Millisecond srv.Config.ReadTimeout = tm srv.Config.WriteTimeout = tm srv.StartTLS() defer srv.Close() wait := make(chan struct{}) cmux := diam.NewServeMux() cmux.Handle("CEA", handleCEA(errc, wait)) cli, err := diam.DialTLS(srv.Addr, "", "", cmux, nil) if err != nil { t.Fatal(err) } sendCER(cli) select { case <-wait: case err := <-errc: t.Fatal(err) case <-time.After(time.Second): t.Fatal("Timed out: no CER or CEA received") } }
// DialTLS is like Dial, but using TLS. func (cli *Client) DialTLS(addr, certFile, keyFile string) (diam.Conn, error) { return cli.dial(func() (diam.Conn, error) { return diam.DialTLS(addr, certFile, keyFile, cli.Handler, cli.Dict) }) }