IDA C++ SDK 9.2
Loading...
Searching...
No Matches
network.hpp File Reference

Go to the source code of this file.

Classes

struct  rpc_packet_t
struct  host_port_t
struct  endpoint_credentials_t
struct  irs_cancellable_op_t
struct  irs_cb_info_t< T >
struct  irs_client_opts_t
struct  irs_server_opts_t
struct  network_client_handler_t
struct  client_handlers_list_t
struct  mt_client_handlers_list_t
struct  base_dispatcher_t
struct  server_cmdline_cfg_t
struct  license_file_visitor_t
struct  server_dispatcher_t
struct  rpc_packet_data_t
struct  rpc_packet_type_desc_t
struct  rpc_pkt_timeout_t
class  rpc_engine_t
class  recording_rpc_engine_t
class  generic_client_t
struct  login_credentials_t
struct  credential_validator_t
struct  vault_credentials_t
struct  lumina_credentials_t
struct  dec_credentials_t
struct  tlm_credentials_t
struct  exit_handler_t

Namespaces

namespace  licsrv_rpc

Typedefs

typedef bool irs_cancel_connect_cb_t(void *)
typedef progress_loop_ctrl_t irs_progress_cb_t(bool receiving, size_t processed, size_t total, void *)
using progress_cb_info_t = irs_cb_info_t<irs_progress_cb_t>
using cancel_connect_cb_info_t = irs_cb_info_t<irs_cancel_connect_cb_t>
typedef qtime64_t utc_timestamp_t
typedef uint64 lofi_timestamp_t
typedef qvector< product_entry_t > prodvec_t
typedef int ioctl_handler_t(class rpc_engine_t *rpc, int fn, const void *buf, size_t size, void **poutbuf, ssize_t *poutsize)
typedef rpc_packet_data_trpc_packet_instantiator_t(const uchar *ptr, size_t len, int version)
typedef qvector< rpc_packet_type_desc_trpc_packet_type_desc_vec_t

Enumerations

enum  base_packet_id_t { RPC_OK = 0 , RPC_UNK , RPC_MEM , base_packet_id_last }
enum  rpc_notification_type_t { rnt_unknown = 0 , rnt_msg , rnt_warning , rnt_error }
enum  progress_loop_ctrl_t { plc_proceed , plc_skip_iter , plc_cancel }

Functions

 CASSERT (sizeof(rpc_packet_t)==5)
 AS_PRINTF (2, 0) ssize_t dvnotif_client(int code
idarpc_stream_t * irs_new (bool use_tls=false)
 DECLARE_TYPE_AS_MOVABLE (host_port_t)
 DECLARE_TYPE_AS_MOVABLE (endpoint_credentials_t)
void irs_set_progress_cb (idarpc_stream_t *irs, int ms, irs_progress_cb_t cb, void *ud=nullptr)
 DECLARE_TYPE_AS_MOVABLE (irs_client_opts_t)
 DECLARE_TYPE_AS_MOVABLE (irs_server_opts_t)
bool irs_init_client (idarpc_stream_t *irs, const irs_client_opts_t &options)
bool irs_init_server (idarpc_stream_t *irs, const irs_server_opts_t &options)
bool irs_accept (idarpc_stream_t *irs, idarpc_stream_t *listener)
bool irs_handshake (idarpc_stream_t *irs, int timeout_ms=-1)
int irs_ready (idarpc_stream_t *irs, int timeout_ms=-1)
ssize_t irs_recv (idarpc_stream_t *irs, void *buf, size_t n)
ssize_t irs_send (idarpc_stream_t *irs, const void *buf, size_t n)
void irs_term (idarpc_stream_t **pirs, int shutdown_flags=-1)
int irs_get_error (idarpc_stream_t *irs)
const char * irs_strerror (idarpc_stream_t *irs)
bool irs_peername (idarpc_stream_t *irs, qstring *out, bool lookupname=true)
bool irs_sockname (idarpc_stream_t *irs, qstring *out, bool lookupname=true)
bool irs_sockport (idarpc_stream_t *irs, int *out)
ssize_t irs_send_data (idarpc_stream_t *irs, const void *buf, size_t n)
ssize_t irs_recv_data (idarpc_stream_t *irs, void *buf, size_t n, int timeout_ms=-1)
bool irs_recv_str (idarpc_stream_t *irs, qstring *out, int timeout_ms=-1)
bool irs_send_str (idarpc_stream_t *irs, const qstring &str)
idaman THREAD_SAFE bool ida_export parse_timestamp (utc_timestamp_t *out, const char *in, uint32 flags=0)
idaman THREAD_SAFE bool ida_export format_timestamp (char *out, size_t out_size, utc_timestamp_t ts, uint32 flags=0)
THREAD_SAFE lofi_timestamp_t to_lofi_timestamp (qtime64_t ts)
THREAD_SAFE qtime64_t from_lofi_timestamp (lofi_timestamp_t lts)
void default_check_license_activation (qstring *out_matched_macaddr, const licsrv_rpc::license_t &lic)
void default_print_license_info (const licsrv_rpc::license_t &lic)
NORETURN AS_PRINTF (2, 3) void lerror(int code
NORETURN const char bytevec_t prepare_rpc_packet (uchar code)
void finalize_packet (bytevec_t &pkt)
 DECLARE_TYPE_AS_MOVABLE (rpc_packet_type_desc_t)
 AS_PRINTF (3, 0) ssize_t dvnotif_rpc(int code
 AS_PRINTF (1, 0) int vlprintf(const char *format
 AS_PRINTF (1, 2) int lprintf(const char *format
ssize_t lwrite (const void *data, size_t size)
void set_lprintf_output (FILE *out)
void format_hex_dump (qstrvec_t *out, const uchar *buf, size_t size, bool for_comments, size_t nhex_per_line=16)
bool license_server_enabled ()
void call_exit_handlers (int signum)
void call_exit_handlers ()
void install_signal_and_exit_handlers ()
kc_ctx_t * get_keychain_context ()
void ensure_one_server (const char *name)
void validate_path_argument (const char *path_identity, const char *path, uint32 flags)

Variables

const char * format
const char va_list va
constexpr uint32 TIMESTAMP_UTC = 0x01
constexpr uint32 TIMESTAMP_ISO8601 = 0x02
constexpr uint32 TIMESTAMP_WITH_MS = 0x04
constexpr size_t TIMESTAMP_BUFSZ = 25
rpc_engine_trpc

Typedef Documentation

◆ irs_cancel_connect_cb_t

typedef bool irs_cancel_connect_cb_t(void *)

◆ irs_progress_cb_t

typedef progress_loop_ctrl_t irs_progress_cb_t(bool receiving, size_t processed, size_t total, void *)

◆ progress_cb_info_t

◆ cancel_connect_cb_info_t

◆ utc_timestamp_t

◆ lofi_timestamp_t

◆ prodvec_t

typedef qvector<product_entry_t> prodvec_t

◆ ioctl_handler_t

typedef int ioctl_handler_t(class rpc_engine_t *rpc, int fn, const void *buf, size_t size, void **poutbuf, ssize_t *poutsize)

◆ rpc_packet_instantiator_t

typedef rpc_packet_data_t * rpc_packet_instantiator_t(const uchar *ptr, size_t len, int version)

◆ rpc_packet_type_desc_vec_t

Enumeration Type Documentation

◆ base_packet_id_t

Enumerator
RPC_OK 
RPC_UNK 
RPC_MEM 
base_packet_id_last 

◆ rpc_notification_type_t

Enumerator
rnt_unknown 
rnt_msg 
rnt_warning 
rnt_error 

◆ progress_loop_ctrl_t

Enumerator
plc_proceed 
plc_skip_iter 
plc_cancel 

Function Documentation

◆ CASSERT()

CASSERT ( sizeof(rpc_packet_t) = =5)

◆ AS_PRINTF() [1/5]

AS_PRINTF ( 2 ,
0  )

◆ irs_new()

idarpc_stream_t * irs_new ( bool use_tls = false)

◆ DECLARE_TYPE_AS_MOVABLE() [1/5]

DECLARE_TYPE_AS_MOVABLE ( host_port_t )

◆ DECLARE_TYPE_AS_MOVABLE() [2/5]

DECLARE_TYPE_AS_MOVABLE ( endpoint_credentials_t )

◆ irs_set_progress_cb()

void irs_set_progress_cb ( idarpc_stream_t * irs,
int ms,
irs_progress_cb_t cb,
void * ud = nullptr )

◆ DECLARE_TYPE_AS_MOVABLE() [3/5]

DECLARE_TYPE_AS_MOVABLE ( irs_client_opts_t )

◆ DECLARE_TYPE_AS_MOVABLE() [4/5]

DECLARE_TYPE_AS_MOVABLE ( irs_server_opts_t )

◆ irs_init_client()

bool irs_init_client ( idarpc_stream_t * irs,
const irs_client_opts_t & options )

◆ irs_init_server()

bool irs_init_server ( idarpc_stream_t * irs,
const irs_server_opts_t & options )

◆ irs_accept()

bool irs_accept ( idarpc_stream_t * irs,
idarpc_stream_t * listener )

◆ irs_handshake()

bool irs_handshake ( idarpc_stream_t * irs,
int timeout_ms = -1 )

◆ irs_ready()

int irs_ready ( idarpc_stream_t * irs,
int timeout_ms = -1 )

◆ irs_recv()

ssize_t irs_recv ( idarpc_stream_t * irs,
void * buf,
size_t n )

◆ irs_send()

ssize_t irs_send ( idarpc_stream_t * irs,
const void * buf,
size_t n )

◆ irs_term()

void irs_term ( idarpc_stream_t ** pirs,
int shutdown_flags = -1 )

◆ irs_get_error()

int irs_get_error ( idarpc_stream_t * irs)

◆ irs_strerror()

const char * irs_strerror ( idarpc_stream_t * irs)

◆ irs_peername()

bool irs_peername ( idarpc_stream_t * irs,
qstring * out,
bool lookupname = true )

◆ irs_sockname()

bool irs_sockname ( idarpc_stream_t * irs,
qstring * out,
bool lookupname = true )

◆ irs_sockport()

bool irs_sockport ( idarpc_stream_t * irs,
int * out )

◆ irs_send_data()

ssize_t irs_send_data ( idarpc_stream_t * irs,
const void * buf,
size_t n )

◆ irs_recv_data()

ssize_t irs_recv_data ( idarpc_stream_t * irs,
void * buf,
size_t n,
int timeout_ms = -1 )

◆ irs_recv_str()

bool irs_recv_str ( idarpc_stream_t * irs,
qstring * out,
int timeout_ms = -1 )

◆ irs_send_str()

bool irs_send_str ( idarpc_stream_t * irs,
const qstring & str )

◆ parse_timestamp()

idaman THREAD_SAFE bool ida_export parse_timestamp ( utc_timestamp_t * out,
const char * in,
uint32 flags = 0 )

◆ format_timestamp()

idaman THREAD_SAFE bool ida_export format_timestamp ( char * out,
size_t out_size,
utc_timestamp_t ts,
uint32 flags = 0 )

◆ to_lofi_timestamp()

THREAD_SAFE lofi_timestamp_t to_lofi_timestamp ( qtime64_t ts)
inline

◆ from_lofi_timestamp()

THREAD_SAFE qtime64_t from_lofi_timestamp ( lofi_timestamp_t lts)
inline

◆ default_check_license_activation()

void default_check_license_activation ( qstring * out_matched_macaddr,
const licsrv_rpc::license_t & lic )

◆ default_print_license_info()

void default_print_license_info ( const licsrv_rpc::license_t & lic)

◆ AS_PRINTF() [2/5]

NORETURN AS_PRINTF ( 2 ,
3  )

◆ prepare_rpc_packet()

NORETURN const char bytevec_t prepare_rpc_packet ( uchar code)

◆ finalize_packet()

void finalize_packet ( bytevec_t & pkt)

◆ DECLARE_TYPE_AS_MOVABLE() [5/5]

DECLARE_TYPE_AS_MOVABLE ( rpc_packet_type_desc_t )

◆ AS_PRINTF() [3/5]

AS_PRINTF ( 3 ,
0  )

◆ AS_PRINTF() [4/5]

AS_PRINTF ( 1 ,
0  ) const

◆ AS_PRINTF() [5/5]

AS_PRINTF ( 1 ,
2  ) const

◆ lwrite()

ssize_t lwrite ( const void * data,
size_t size )

◆ set_lprintf_output()

void set_lprintf_output ( FILE * out)

◆ format_hex_dump()

void format_hex_dump ( qstrvec_t * out,
const uchar * buf,
size_t size,
bool for_comments,
size_t nhex_per_line = 16 )

◆ license_server_enabled()

bool license_server_enabled ( )

◆ call_exit_handlers() [1/2]

void call_exit_handlers ( int signum)

◆ call_exit_handlers() [2/2]

void call_exit_handlers ( )

◆ install_signal_and_exit_handlers()

void install_signal_and_exit_handlers ( )

◆ get_keychain_context()

kc_ctx_t * get_keychain_context ( )

◆ ensure_one_server()

void ensure_one_server ( const char * name)

◆ validate_path_argument()

void validate_path_argument ( const char * path_identity,
const char * path,
uint32 flags )

Variable Documentation

◆ format

rpc_engine_t const char* format

◆ va

va_list va

◆ TIMESTAMP_UTC

uint32 TIMESTAMP_UTC = 0x01
constexpr

◆ TIMESTAMP_ISO8601

uint32 TIMESTAMP_ISO8601 = 0x02
constexpr

◆ TIMESTAMP_WITH_MS

uint32 TIMESTAMP_WITH_MS = 0x04
constexpr

◆ TIMESTAMP_BUFSZ

size_t TIMESTAMP_BUFSZ = 25
constexpr

◆ rpc