Skip to main content

Module stream

Module stream 

Source
Expand description

Fluxo (stream) de pacotes enquadrado, opcionalmente criptografado, sobre uma conexão TCP.

O Firebird não tem um prefixo de comprimento geral para o pacote: cada operação é uma sequência de campos XDR cujo formato depende do op code. Por isso lemos os campos sob demanda diretamente do socket em vez de armazenar pacotes inteiros em buffer.

Após o handshake de wire-crypt (op_crypt) cada byte subsequente em ambas as direções passa por uma Cipher de fluxo (stream). Como as cifras de fluxo (stream) são dependentes de posição, a cifra é aplicada aos bytes brutos exatamente uma vez, em ordem, conforme atravessam o socket.

Structs§

FbStream
A conexão enquadrada com um servidor Firebird.

Traits§

Cipher
Uma cifra de fluxo (stream) simétrica aplicada ao protocolo de comunicação (wire protocol) após op_crypt.

Functions§

info_payload
Auxiliar: constrói uma verificação do terminador do resultado de uma info-request. Retorna os itens até (mas excluindo) o byte isc_info_end, validando que não está truncado.
op_name
Os nomes dos op codes, para diagnóstico.
op_packet
Conveniência para construir o corpo de um pacote de operação única.