sshnet / sshnet/SSH.NET

RemoveForwardedPort when disconnected

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

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
4.4k
Forks
993
Ø Merge
9 T. 21 Std.
Gemergte PRs (30 T.)
1

Beschreibung

Hi folks.
My scenario is long running SSH tunneling connection with a number of ForwardedPortRemote's.
I do
sshClient.ErrorOccurred += delegate (object sender, ExceptionEventArgs e){ . . . }
and
portRemote.Exception += delegate (Object source, ExceptionEventArgs args){ . . . }
and then handle these events.
Since it is long running connection, when it gets disrupted (cable plugged off, internet down etc), the software then tries to reconnect ssh client. As soon as the Internet access is again available, it reconnects.
When the connection gets interrupted and the above events fire, I want to stop/dispose/remove forwarded ports from the ssh client, so when the new connection is established, there are no leftover unused/stopped ports.
The problem is when I call SshClient.RemoveForwardedPort(port), it throws "Client not connected" exception. And it throws it both when its disconnected and after reconnection too. Thus I cannot remove "old" forwarded unused ports.
How or at what point can I remove those ports? Or eventually can I reuse them?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit SshClient.RemoveForwardedPort, ForwardedPortRemote und dem im Issue beschriebenen Ablauf der ErrorOccurred- und Exception-Ereignisse. Verfolgen Sie, wie sich weitergeleitete Ports bei Trennung und erneuter Verbindung verhalten, und überprüfen Sie anschließend, dass gestoppte Ports entfernt oder wiederverwendet werden können, ohne eine "Client not connected"-Exception auszulösen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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