blob: 1d2f733972012549501227a7a7a755d5dc7f5b59 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
public class Xmpp.DirectTlsXmppStream : TlsXmppStream {
string host;
uint16 port;
public DirectTlsXmppStream(Jid remote, string host, uint16 port) {
this.remote_name = remote;
this.host = host;
this.port = port;
}
public override async void connect() throws IOStreamError {
SocketClient client = new SocketClient();
try {
debug("Connecting to %s %i (tls)", host, port);
IOStream? io_stream = yield client.connect_to_host_async(host, port);
TlsConnection tls_connection = TlsClientConnection.new(io_stream, new NetworkAddress(remote_name.to_string(), port));
#if ALPN_SUPPORT
tls_connection.set_advertised_protocols(new string[]{"xmpp-client"});
#endif
tls_connection.accept_certificate.connect(on_invalid_certificate);
reset_stream(tls_connection);
yield setup();
attach_negotation_modules();
} catch (Error e) {
throw new IOStreamError.CONNECT("Failed connecting to %s:%i (tls): %s", host, port, e.message);
}
}
}
|