Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Keep a persistent connection between GUI and interface management daemon

Ouverte
#505 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
30/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
À l'abandon
Stack technique
grpc, rust

Piste de recherche

Commencez par suivre la frontière gRPC de GUI-to-daemon et les gestionnaires de requêtes du daemon autour de la configuration de l’interface wireguard-rs et du streaming des statistiques. Comparez le comportement actuel de connexion et de cycle de vie aux exigences du streaming bidirectionnel ; le travail est terminé lorsque les deux composants observent les déconnexions de l’autre, que la création de l’interface est liée à une connexion GUI active et que le streaming des statistiques ne laisse plus de threads orphelins.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

optional for release refactoring

Context

The desktop client is split into a GUI and a separate service that runs in the background with elevated privileges to manage network interfaces.

At the moment the daemon is "dumb" and mostly stateless. It just listens for incoming gRPC requests and exposes basic functions from our wireguard-rs library.

When a request to configure a wireguard interface is received there is no notion of this request being related to any previously created interface. Each time we start with a blank slate (that's why we must provide the interface name for each request).
The daemon also has no knowledge of the state of the GUI client.

Proposal

My proposal is to leverage the bidirectional streaming functionality of gRPC to establish a persistent connection between the GUI and interface management daemon.

This would have the following advantages:

  • make both components immediately aware of any issues with the other side
  • prevent any possibility of the background service creating any interfaces unless the GUI is active (no network interface without a Defguard icon in the tray bar)
  • simplify interface stats streaming (no additional issues with dangling threads)
  • prevent constant errors in the background service caused by stats streaming thread not being aware that an interface has been disconnected
Langage dominant
Rust
Étoiles
370
Forks
41
Merge moyen
11 h 38 min
PR mergées (30 j)
41

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de DefGuard/client

Toutes les issues de DefGuard/client

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.