How to set server TCP socket options such as `TCP_NODELAY`?

Offen
#48 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
rust
Bereich
networking

Rechercherichtung

Beginnen Sie mit dem hyper-rustls-Serverbeispiel in webserver/src/lib.rs um die Zeilen 328-338 und vergleichen Sie dessen umhüllten eingehenden Stream mit hyper's Builder::tcp_nodelay API. Ermitteln Sie, ob die Socket-Option vor dem TLS-Wrapping konfiguriert werden kann oder ob hyper-rustls eine API-Änderung benötigt; abgeschlossen ist die Aufgabe, wenn der unterstützte Ansatz dokumentiert oder die erforderliche Änderung eindeutig identifiziert wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

hyper has an API for that, see https://docs.rs/hyper/0.12.7/hyper/server/struct.Builder.html#method.tcp_nodelay. However based on the server example code of hyper-rustls, I do not get the required hyper::server::Builder<Incoming>, but a complex type hyper::server::Builder<futures::stream::filter_map::FilterMap<futures::stream::then::Then<futures::stream::and_then::AndThen<tokio_tcp::incoming::Incoming, [closure@webserver/src/lib.rs:328:19: 328:51 serverconfig:_], tokio_rustls::AcceptAsync<tokio_tcp::stream::TcpStream>>, [closure@webserver/src/lib.rs:329:15: 337:10], std::result::Result<std::option::Option<tokio_rustls::TlsStream<tokio_tcp::stream::TcpStream, rustls::server::ServerSession>>, std::io::Error>>, [closure@webserver/src/lib.rs:338:21: 338:26]>>. How to proceed?

Vorherrschende Sprache
Rust
Sterne
361
Forks
169
Ø Merge
9 Std. 35 Min.
Gemergte PRs (30 T.)
8

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus rustls/hyper-rustls

Alle Issues in rustls/hyper-rustls

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.