File: client.rs

package info (click to toggle)
rust-nbd 0.3.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 152 kB
  • sloc: makefile: 2
file content (25 lines) | stat: -rw-r--r-- 597 bytes parent folder | download
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
extern crate nbd;

use std::io::{Read, Result, Seek, SeekFrom, Write};
use std::net::TcpStream;

use nbd::client::{handshake, NbdClient};

/// Read second 1024-byte block from an NBD export named "sda1"
fn run() -> Result<()> {
    let mut buf = vec![0; 1024];

    let mut tcp = TcpStream::connect("127.0.0.1:10809")?;
    let export = handshake(&mut tcp, b"sda1")?;
    let mut client = NbdClient::new(&mut tcp, &export);

    client.seek(SeekFrom::Start(1024))?;
    client.read_exact(&mut buf[..])?;
    std::io::stdout().write_all(&buf[..])?;

    Ok(())
}

fn main() {
    run().unwrap();
}