php / php/php-src

OpenSSL streams liveness check should be always non blocking

Offen
#13,489 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Extension: openssl Feature
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

Currently all OpenSSL streams use TCP connection. There is no point for liveness check to ever use timeout and it makes the check with and without timeout inconsistent because if it's used without timeout (which is always the case for internal PHP function like php_stream_eof), then it succeed even if no data is read - it fails only if there is an error - this is especially important for non blocking mode. However if it's used with timeout and the timeout expires, it return false. There does not seem much advantage to do that and considering that it is unused and it makes the code significantly more complex, we should remove this handling and always return immediately.

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

Suchen Sie die Implementierung der OpenSSL-Stream-Liveness-Prüfung und untersuchen Sie, wie Timeout- und Non-Blocking-Pfade behandelt werden. Die Arbeit ist abgeschlossen, wenn die Prüfung sofort ohne Timeout-Behandlung zurückkehrt und dabei das dokumentierte Verhalten für Fehler und Non-Blocking-Streams beibehält; identifizieren oder führen Sie die relevanten Stream-Tests aus, falls das Repository solche bereitstellt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c
Bereich
networking
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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