Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

transport read

Aperta
#310 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
rust
Ambito
networking

Direzione di ricerca

Inizia riproducendo il malfunzionamento dell’esempio Rust in src/main.rs:30, usando il trace di libssh2 fornito e la chiamata channel.read_to_string come punti di ingresso. Segui l’errore di lettura del trasporto attraverso ssh2-rs e libssh2, quindi stabilisci se il comando dovrebbe completarsi senza restituire l’errore segnalato; l’issue è completata quando la causa e il comportamento previsto sono confermati da un test di regressione o da una limitazione chiaramente documentata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

code:

use ssh2::Session;
use ssh2::TraceFlags;
use std::io::prelude::*;
use std::net::TcpStream;

fn main() {
let tcp = TcpStream::connect("XXXXXX:22").unwrap();

let mut sess = Session::new().unwrap();
sess.trace(TraceFlags::all());
sess.set_tcp_stream(tcp);
sess.handshake().unwrap();

let username = "XXX";

let password = "XXXXX";

sess.userauth_password(username, password).unwrap();

println!("{:?}", sess.authenticated());

let mut channel = sess.channel_session().unwrap();

let command = "display interface brief";
// let command = "hostname";
channel.exec(command).unwrap();

let mut s = String::new();
channel.read_to_string(&mut s).unwrap();
println!("{}", s);
channel.wait_close().unwrap();
println!("{}", channel.exit_status().unwrap());

}

trace:
libssh2] 1.964524 Transport: Packet type 94 received, length=18
[libssh2] 1.964533 Conn: 9 bytes packet_add() for 0/1/0
[libssh2] 1.964547 Conn: increasing read_avail by 9 bytes to 89/2095097
[libssh2] 1.964562 Conn: channel_read() got 80 of data from 0/1/0 [ul]
[libssh2] 1.964573 Conn: channel_read() got 9 of data from 0/1/0 [ul]
[libssh2] 1.964592 Conn: channel_read() wants 1952 bytes from channel 0/1 stream #0
[libssh2] 1.964608 Failure Event: -37 - would block
[libssh2] 1.997268 Conn: channel_read() wants 1952 bytes from channel 0/1 stream #0
[libssh2] 1.997332 Socket: Error recving 16384 bytes (got 104)
[libssh2] 1.997344 Failure Event: -43 - transport read
thread 'main' panicked at src/main.rs:30:36:
called Result::unwrap() on an Err value: Custom { kind: Other, error: "transport read" }
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
[libssh2] 1.997885 Conn: Freeing channel 0/1 resources
[libssh2] 1.997899 Conn: Sending EOF on channel 0/1

Lingua principale
Rust
Stelle
571
Fork
166
Merge medio
1g 18h
PR unite (30g)
5

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di rust-lang/ssh2-rs

Tutte le issue di rust-lang/ssh2-rs

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.