(PECL event >= 1.2.6-beta)
EventBufferEvent::sslError β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ OpenSSL, ΡΠΎΠΎΠ±ΡΡΠ½Π½ΡΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ OpenSSL, ΡΠΎΠΎΠ±ΡΡΠ½Π½ΡΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Π€ΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π°, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ
EventΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ OpenSSL.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΎΡΠΈΠ±ΠΊΠΈ OpenSSL, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ°Π»ΠΎΡΡ Π² Π±ΡΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ,
ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ EventBufferEvent::sslError()
<?php
// ΠΡΠ° callbac-ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ,
// Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΡΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°
function ssl_event_cb($bev, $events, $ctx) {
if ($events & EventBufferEvent::ERROR) {
// ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ SSL
while ($err = $bev->sslError()) {
fprintf(STDERR, "Bufferevent error %s.\n", $err);
}
}
if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
$bev->free();
}
}
?>