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

Keep a persistent connection between GUI and interface management daemon

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

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
grpc, rust

Direzione di ricerca

Inizia tracciando il confine gRPC di GUI-to-daemon e i request handler del daemon relativi alla configurazione dell’interfaccia wireguard-rs e allo streaming delle statistiche. Confronta il comportamento attuale della connessione e del ciclo di vita con i requisiti dello streaming bidirezionale; il lavoro è completato quando entrambi i componenti rilevano le disconnessioni dell’altro, la creazione dell’interfaccia è legata a una connessione GUI attiva e lo streaming delle statistiche non lascia più thread orfani.

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

Descrizione

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
Lingua principale
Rust
Stelle
371
Fork
41
Merge medio
16h 18m
PR unite (30g)
40

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

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 DefGuard/client

Tutte le issue di DefGuard/client

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.