axa  2.2.0
Farsight Security Advanced Exchange Access (AXA)
axa_io Struct Reference

AXA I/O context. More...

Data Fields

axa_io_type_t type
 type More...
 
bool is_rad
 true=server is radd, not srad More...
 
bool is_client
 true=client instead of server More...
 
bool nonblock
 non-blocking I/O More...
 
axa_socku_t su
 peer IP or UDS address More...
 
char * addr
 [user@]sshhost, host,port, socket path, or whatever of peer More...
 
char * label
 text to label tracing and error messages, close to addr More...
 
int bufsize
 SO_RCVBUF and SO_SNDBUF size. More...
 
int i_fd
 input to server More...
 
int i_events
 needed poll(2) events More...
 
int o_fd
 output from server More...
 
int o_events
 needed poll(2) events More...
 
char * cert_file
 TLS certificate file. More...
 
char * key_file
 TLS key file name. More...
 
SSL * ssl
 TLS OpenSSL ssl. More...
 
char * tls_info
 TLS cipher, compression, etc. More...
 
axa_p_user_t user
 TLS, TCP or UNIX domain socket. More...
 
axa_p_user_t apikey
 apikey More...
 
bool connected_tcp
 false if connect() in progress More...
 
bool connected
 TLS or other connection made. More...
 
int tun_fd
 In an AXA client using an ssh pipe and so type==CLIENT_TYPE_SSH_STR, this FD gets error messages from ssh. More...
 
pid_t tun_pid
 ssh PID More...
 
bool tun_debug
 enable tunnel debugging More...
 
char * tun_buf
 transport error or trace buffer More...
 
size_t tun_buf_size
 length of tun_buf More...
 
size_t tun_buf_len
 data data in tun_buf More...
 
size_t tun_buf_bol
 start of next line in tun_buf More...
 
axa_p_pvers_t pvers
 protocol version for this server More...
 
axa_p_hdr_t recv_hdr
 received header More...
 
axa_p_body_trecv_body
 received body More...
 
size_t recv_body_len
 sizeof(recv_hdr) + *recv_body More...
 
uint8_t * recv_buf
 unprocessed input data More...
 
ssize_t recv_buf_len
 size of recv_buf_data More...
 
uint8_t * recv_start
 start of unused in recv_buf_data More...
 
ssize_t recv_bytes
 length of unused data More...
 
uint8_t * send_buf
 non-blocking output buffer More...
 
size_t send_buf_len
 non-blocking output buffer size More...
 
uint8_t * send_start
 start of unsent output More...
 
size_t send_bytes
 number of unsent bytes More...
 
struct timeval alive
 AXA protocol keepalive timer. More...
 

Detailed Description

AXA I/O context.

Field Documentation

◆ type

axa_io_type_t axa_io::type

type

◆ is_rad

bool axa_io::is_rad

true=server is radd, not srad

◆ is_client

bool axa_io::is_client

true=client instead of server

◆ nonblock

bool axa_io::nonblock

non-blocking I/O

◆ su

axa_socku_t axa_io::su

peer IP or UDS address

◆ addr

char* axa_io::addr

[user@]sshhost, host,port, socket path, or whatever of peer

◆ label

char* axa_io::label

text to label tracing and error messages, close to addr

◆ bufsize

int axa_io::bufsize

SO_RCVBUF and SO_SNDBUF size.

◆ i_fd

int axa_io::i_fd

input to server

◆ i_events

int axa_io::i_events

needed poll(2) events

◆ o_fd

int axa_io::o_fd

output from server

◆ o_events

int axa_io::o_events

needed poll(2) events

◆ cert_file

char* axa_io::cert_file

TLS certificate file.

◆ key_file

char* axa_io::key_file

TLS key file name.

◆ ssl

SSL* axa_io::ssl

TLS OpenSSL ssl.

◆ tls_info

char* axa_io::tls_info

TLS cipher, compression, etc.

◆ user

axa_p_user_t axa_io::user

TLS, TCP or UNIX domain socket.

◆ apikey

axa_p_user_t axa_io::apikey

apikey

◆ connected_tcp

bool axa_io::connected_tcp

false if connect() in progress

◆ connected

bool axa_io::connected

TLS or other connection made.

◆ tun_fd

int axa_io::tun_fd

In an AXA client using an ssh pipe and so type==CLIENT_TYPE_SSH_STR, this FD gets error messages from ssh.

In a server, it keeps the sshd process from closing the sshd-ssh connection.

◆ tun_pid

pid_t axa_io::tun_pid

ssh PID

◆ tun_debug

bool axa_io::tun_debug

enable tunnel debugging

◆ tun_buf

char* axa_io::tun_buf

transport error or trace buffer

◆ tun_buf_size

size_t axa_io::tun_buf_size

length of tun_buf

◆ tun_buf_len

size_t axa_io::tun_buf_len

data data in tun_buf

◆ tun_buf_bol

size_t axa_io::tun_buf_bol

start of next line in tun_buf

◆ pvers

axa_p_pvers_t axa_io::pvers

protocol version for this server

◆ recv_hdr

axa_p_hdr_t axa_io::recv_hdr

received header

◆ recv_body

axa_p_body_t* axa_io::recv_body

received body

◆ recv_body_len

size_t axa_io::recv_body_len

sizeof(recv_hdr) + *recv_body

◆ recv_buf

uint8_t* axa_io::recv_buf

unprocessed input data

◆ recv_buf_len

ssize_t axa_io::recv_buf_len

size of recv_buf_data

◆ recv_start

uint8_t* axa_io::recv_start

start of unused in recv_buf_data

◆ recv_bytes

ssize_t axa_io::recv_bytes

length of unused data

◆ send_buf

uint8_t* axa_io::send_buf

non-blocking output buffer

◆ send_buf_len

size_t axa_io::send_buf_len

non-blocking output buffer size

◆ send_start

uint8_t* axa_io::send_start

start of unsent output

◆ send_bytes

size_t axa_io::send_bytes

number of unsent bytes

◆ alive

struct timeval axa_io::alive

AXA protocol keepalive timer.