diff options
Diffstat (limited to 'src/libextra/net/tcp.rs')
| -rw-r--r-- | src/libextra/net/tcp.rs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/libextra/net/tcp.rs b/src/libextra/net/tcp.rs index d262304298d..eebb8490aa2 100644 --- a/src/libextra/net/tcp.rs +++ b/src/libextra/net/tcp.rs @@ -86,6 +86,7 @@ pub fn TcpSocketBuf(data: @mut TcpBufferedSocketData) -> TcpSocketBuf { } /// Contains raw, string-based, error information returned from libuv +#[deriving(Clone)] pub struct TcpErrData { err_name: ~str, err_msg: ~str, @@ -278,8 +279,8 @@ pub fn connect(input_ip: ip::IpAddr, port: uint, as *libc::c_void); let tcp_conn_err = match err_data.err_name { ~"ECONNREFUSED" => ConnectionRefused, - _ => GenericConnectErr(copy err_data.err_name, - copy err_data.err_msg) + _ => GenericConnectErr(err_data.err_name.clone(), + err_data.err_msg.clone()) }; result::Err(tcp_conn_err) } @@ -343,7 +344,7 @@ pub fn write_future(sock: &TcpSocket, raw_write_data: ~[u8]) { let socket_data_ptr: *TcpSocketData = &*sock.socket_data; do future_spawn { - let data_copy = copy(raw_write_data); + let data_copy = raw_write_data.clone(); write_common_impl(socket_data_ptr, data_copy) } } @@ -770,8 +771,8 @@ fn listen_common(host_ip: ip::IpAddr, debug!("Got '%s' '%s' libuv error", err_data.err_name, err_data.err_msg); result::Err( - GenericListenErr(copy err_data.err_name, - copy err_data.err_msg)) + GenericListenErr(err_data.err_name.clone(), + err_data.err_msg.clone())) } } } @@ -791,8 +792,8 @@ fn listen_common(host_ip: ip::IpAddr, match kill_result { // some failure post bind/listen Some(ref err_data) => result::Err(GenericListenErr( - copy err_data.err_name, - copy err_data.err_msg)), + err_data.err_name.clone(), + err_data.err_msg.clone())), // clean exit None => result::Ok(()) } @@ -1263,7 +1264,10 @@ trait ToTcpErr { impl ToTcpErr for uv::ll::uv_err_data { fn to_tcp_err(&self) -> TcpErrData { - TcpErrData { err_name: copy self.err_name, err_msg: copy self.err_msg } + TcpErrData { + err_name: self.err_name.clone(), + err_msg: self.err_msg.clone(), + } } } |
