function _receive()
    {
        switch ($this->mode) {
            case self::MODE_SSH2:
                return $this->ssh->_get_channel_packet(SSH2::CHANNEL_EXEC, true);
            case self::MODE_SSH1:
                if (!$this->ssh->bitmap) {
                    return false;
                }
                while (true) {
                    $response = $this->ssh->_get_binary_packet();
                    switch ($response[SSH1::RESPONSE_TYPE]) {
                        case NET_SSH1_SMSG_STDOUT_DATA:
                            if (strlen($response[SSH1::RESPONSE_DATA]) < 4) {
                                return false;
                            }
                            extract(unpack('Nlength', $response[SSH1::RESPONSE_DATA]));
                            return $this->ssh->_string_shift($response[SSH1::RESPONSE_DATA], $length);
                        case NET_SSH1_SMSG_STDERR_DATA:
                            break;
                        case NET_SSH1_SMSG_EXITSTATUS:
                            $this->ssh->_send_binary_packet(chr(NET_SSH1_CMSG_EXIT_CONFIRMATION));
                            fclose($this->ssh->fsock);
                            $this->ssh->bitmap = 0;
                            return false;
                        default:
                            user_error('Unknown packet received', E_USER_NOTICE);
                            return false;
                    }
                }
        }
    }
function _receive()
    {
        switch ($this->mode) {
            case self::MODE_SSH2:
                return $this->ssh->_get_channel_packet(SSH2::CHANNEL_EXEC, true);
            case self::MODE_SSH1:
                if (!$this->ssh->bitmap) {
                    return false;
                }
                while (true) {
                    $response = $this->ssh->_get_binary_packet();
                    switch ($response[SSH1::RESPONSE_TYPE]) {
                        case NET_SSH1_SMSG_STDOUT_DATA:
                            if (strlen($response[SSH1::RESPONSE_DATA]) < 4) {
                                return false;
                            }
                            extract(unpack('Nlength', $response[SSH1::RESPONSE_DATA]));
                            return $this->ssh->_string_shift($response[SSH1::RESPONSE_DATA], $length);
                        case NET_SSH1_SMSG_STDERR_DATA:
                            break;
                        case NET_SSH1_SMSG_EXITSTATUS:
                            $this->ssh->_send_binary_packet(chr(NET_SSH1_CMSG_EXIT_CONFIRMATION));
                            fclose($this->ssh->fsock);
                            $this->ssh->bitmap = 0;
                            return false;
                        default:
                            user_error('Unknown packet received', E_USER_NOTICE);
                            return false;
                    }
                }
        }
    }
function _receive ( ) { switch ( $ this -> mode ) { case self :: MODE_SSH2 : return $ this -> ssh -> _get_channel_packet ( SSH2 :: CHANNEL_EXEC , true ) ; case self :: MODE_SSH1 : if ( ! $ this -> ssh -> bitmap ) { return false ; } while ( true ) { $ response = $ this -> ssh -> _get_binary_packet ( ) ; switch ( $ response [ SSH1 :: RESPONSE_TYPE ] ) { case NET_SSH1_SMSG_STDOUT_DATA : if ( strlen ( $ response [ SSH1 :: RESPONSE_DATA ] ) < 4 ) { return false ; } extract ( unpack ( 'Nlength' , $ response [ SSH1 :: RESPONSE_DATA ] ) ) ; return $ this -> ssh -> _string_shift ( $ response [ SSH1 :: RESPONSE_DATA ] , $ length ) ; case NET_SSH1_SMSG_STDERR_DATA : break ; case NET_SSH1_SMSG_EXITSTATUS : $ this -> ssh -> _send_binary_packet ( chr ( NET_SSH1_CMSG_EXIT_CONFIRMATION ) ) ; fclose ( $ this -> ssh -> fsock ) ; $ this -> ssh -> bitmap = 0 ; return false ; default : user_error ( 'Unknown packet received' , E_USER_NOTICE ) ; return false ; } } } }
Receives a packet from an SSH server

@return string
@access private
Receives a packet from an SSH server