remove TLS option in socket_client_open/3
This commit is contained in:
@@ -442,7 +442,7 @@ enum SystemClauseType {
|
|||||||
SkipMaxList,
|
SkipMaxList,
|
||||||
#[strum_discriminants(strum(props(Arity = "1", Name = "$sleep")))]
|
#[strum_discriminants(strum(props(Arity = "1", Name = "$sleep")))]
|
||||||
Sleep,
|
Sleep,
|
||||||
#[strum_discriminants(strum(props(Arity = "8", Name = "$socket_client_open")))]
|
#[strum_discriminants(strum(props(Arity = "7", Name = "$socket_client_open")))]
|
||||||
SocketClientOpen,
|
SocketClientOpen,
|
||||||
#[strum_discriminants(strum(props(Arity = "3", Name = "$socket_server_open")))]
|
#[strum_discriminants(strum(props(Arity = "3", Name = "$socket_server_open")))]
|
||||||
SocketServerOpen,
|
SocketServerOpen,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ socket_client_open(Addr, Stream, Options) :-
|
|||||||
builtins:parse_stream_options(Options,
|
builtins:parse_stream_options(Options,
|
||||||
[Alias, EOFAction, Reposition, Type],
|
[Alias, EOFAction, Reposition, Type],
|
||||||
socket_client_open/3),
|
socket_client_open/3),
|
||||||
'$socket_client_open'(Address, Port, Stream, Alias, EOFAction, Reposition, Type, false).
|
'$socket_client_open'(Address, Port, Stream, Alias, EOFAction, Reposition, Type).
|
||||||
|
|
||||||
|
|
||||||
socket_server_open(Addr, ServerSocket) :-
|
socket_server_open(Addr, ServerSocket) :-
|
||||||
|
|||||||
@@ -4161,42 +4161,7 @@ impl Machine {
|
|||||||
|
|
||||||
let stream = match TcpStream::connect(socket_addr.as_str()).map_err(|e| e.kind()) {
|
let stream = match TcpStream::connect(socket_addr.as_str()).map_err(|e| e.kind()) {
|
||||||
Ok(tcp_stream) => {
|
Ok(tcp_stream) => {
|
||||||
let mut stream = {
|
let mut stream = Stream::from_tcp_stream(socket_addr, tcp_stream, &mut self.machine_st.arena);
|
||||||
let tls = cell_as_atom!(self.machine_st.store(self.machine_st.deref(
|
|
||||||
self.machine_st.registers[8]
|
|
||||||
)));
|
|
||||||
|
|
||||||
match tls {
|
|
||||||
atom!("false") => {
|
|
||||||
Stream::from_tcp_stream(socket_addr, tcp_stream, &mut self.machine_st.arena)
|
|
||||||
}
|
|
||||||
atom!("true") => {
|
|
||||||
let connector = TlsConnector::new().unwrap();
|
|
||||||
let stream = Stream::from_tcp_stream(
|
|
||||||
socket_addr,
|
|
||||||
tcp_stream,
|
|
||||||
&mut self.machine_st.arena,
|
|
||||||
);
|
|
||||||
|
|
||||||
let stream =
|
|
||||||
match connector.connect(socket_atom.as_str(), stream) {
|
|
||||||
Ok(tls_stream) => tls_stream,
|
|
||||||
Err(_) => {
|
|
||||||
return Err(self.machine_st.open_permission_error(
|
|
||||||
addr,
|
|
||||||
atom!("socket_client_open"),
|
|
||||||
3,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Stream::from_tls_stream(atom!("TLS"), stream, &mut self.machine_st.arena)
|
|
||||||
}
|
|
||||||
_ => {
|
|
||||||
unreachable!()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
*stream.options_mut() = options;
|
*stream.options_mut() = options;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user