php / php/php-src

OpenSSL streams liveness check should be always non blocking

Aperta
#13,489 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Extension: openssl Feature
Lingua principale
C
Stelle
40.4k
Fork
8.1k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

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.

Guida per i contributori

Apri la 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.

Direzione di ricerca

Individua l’implementazione del controllo di liveness di OpenSSL ed esamina come vengono gestiti i percorsi timeout e non-blocking. Il lavoro è completo quando il controllo restituisce immediatamente senza la gestione del timeout, preservando il comportamento documentato per gli errori e gli stream non-blocking; identifica o esegui i test degli stream pertinenti se il repository li fornisce.

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

Valutazione

Stack tecnologico
c
Ambito
networking
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.