diff options
author | Zachary Dremann <dremann@gmail.com> | 2014-06-13 12:23:39 -0400 |
---|---|---|
committer | Zachary Dremann <dremann@gmail.com> | 2014-06-13 12:23:39 -0400 |
commit | 01d32fd1fe05d87e5814f2efd9171aa47ef7f664 (patch) | |
tree | 2849929ffdd309a3a357c229c763369b12d6729a /src | |
parent | 0a3f5acd4df4a48b10c4f0d63ea4a7070c39c0b5 (diff) | |
download | rusty-irc-01d32fd1fe05d87e5814f2efd9171aa47ef7f664.tar.gz rusty-irc-01d32fd1fe05d87e5814f2efd9171aa47ef7f664.zip |
Do not throw out buffered data by dropping a buffered reader
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -73,14 +73,14 @@ impl IrcClient <state::Disconnected> { }); spawn(proc() { - let mut reader = reader; + let mut reader = BufferedReader::new(reader); loop { - fn reader_by_ref<'a, R: Reader>(reader: &'a mut R) -> std::io::RefReader<'a, R> { reader.by_ref() } - - reader.set_read_timeout(Some(500)); - let mut buf_reader = BufferedReader::new(reader_by_ref(&mut reader)); + unsafe { + let raw: *mut TcpStream = reader.get_ref() as *_ as *mut _; + (*raw).set_read_timeout(Some(500)); + } - let line = buf_reader.read_line(); + let line = reader.read_line(); match line { Ok(line) => match from_str::<Message>(line.as_slice().trim_right()) { Some(msg) => { |