fix issue #2: tls does not work anymore with 4k fix. the magic solution is to set the stream non-blocking after the first part of the packet has been received, and setting it back afterwards
This commit is contained in:
parent
bde088057d
commit
c74544c0cd
@ -457,7 +457,15 @@ class XMPPHP_XMLStream {
|
|||||||
} else if ($updated > 0) {
|
} else if ($updated > 0) {
|
||||||
$buff = '';
|
$buff = '';
|
||||||
do {
|
do {
|
||||||
$part = stream_socket_recvfrom($this->socket, 4096);
|
if ($buff != '') {
|
||||||
|
//disable blocking for now because fread() will
|
||||||
|
// block until the 4k are full if we already
|
||||||
|
// read a part of the packet
|
||||||
|
stream_set_blocking($this->socket, 0);
|
||||||
|
}
|
||||||
|
$part = fread($this->socket, 4096);
|
||||||
|
stream_set_blocking($this->socket, 1);
|
||||||
|
|
||||||
if (!$part) {
|
if (!$part) {
|
||||||
if($this->reconnect) {
|
if($this->reconnect) {
|
||||||
$this->doReconnect();
|
$this->doReconnect();
|
||||||
|
Loading…
Reference in New Issue
Block a user