1package xmpp
2
3import (
4	gotls "crypto/tls"
5	"net"
6	"time"
7
8	"github.com/coyim/coyim/tls"
9)
10
11type tlsMock1 struct {
12	returnFromHandshake error
13	returnFromConnState gotls.ConnectionState
14	returnFromRead1     int
15	returnFromRead2     error
16}
17
18func (t *tlsMock1) Handshake() error {
19	return t.returnFromHandshake
20}
21
22func (t *tlsMock1) ConnectionState() gotls.ConnectionState {
23	return t.returnFromConnState
24}
25
26func (t *tlsMock1) Read(b []byte) (n int, err error) {
27	return t.returnFromRead1, t.returnFromRead2
28}
29
30func (t *tlsMock1) Write(b []byte) (n int, err error) {
31	return 0, nil
32}
33
34func (t *tlsMock1) Close() error {
35	return nil
36}
37
38func (t *tlsMock1) LocalAddr() net.Addr {
39	return nil
40}
41
42func (t *tlsMock1) RemoteAddr() net.Addr {
43	return nil
44}
45
46func (t *tlsMock1) SetDeadline(t2 time.Time) error {
47	return nil
48}
49
50func (t *tlsMock1) SetReadDeadline(t2 time.Time) error {
51	return nil
52}
53
54func (t *tlsMock1) SetWriteDeadline(t2 time.Time) error {
55	return nil
56}
57
58func fixedTlsFactory(t tls.Conn) tls.Factory {
59	return func(net.Conn, *gotls.Config) tls.Conn {
60		return t
61	}
62}
63
64type mockTLSVerifier struct {
65	verifyCalled int
66	state        gotls.ConnectionState
67	conf         *gotls.Config
68	originDomain string
69
70	toReturn error
71}
72
73func (v *mockTLSVerifier) Verify(state gotls.ConnectionState, conf *gotls.Config, originDomain string) error {
74	v.verifyCalled++
75	v.state = state
76	v.conf = conf
77	v.originDomain = originDomain
78
79	return v.toReturn
80}
81