socksv5_future 0.2.1

Socks v5 futures for Server and Client
Documentation
extern crate futures;
extern crate tokio_io;
extern crate tokio_core;
extern crate socksv5_future;

use std::net::SocketAddr;
use socksv5_future::socks_handshake;
use futures::{Future,Stream};
use tokio_core::reactor::Core;
use tokio_core::net::{TcpListener,TcpStream};

#[test]
fn test_tcp_connection() {
    let mut lp = Core::new().unwrap();
    let addr: SocketAddr = "127.0.0.1:64000".parse().unwrap();
    let handle = lp.handle();
    let handle2= handle.clone();
    let listener = TcpListener::bind(&addr, &handle).unwrap();
    let server = listener.incoming().for_each(move |(stream, _addr)| {
        handle2.spawn(
            socks_handshake(stream)
                    .then( |_| { Ok(())})
        );
        Ok(())
    }).then( |_| { Ok(())});
    handle.clone().spawn(server);

    let test_conn = TcpStream::connect(&addr, &handle);
    lp.run(test_conn).unwrap();
}