IDA C++ SDK 9.2
Loading...
Searching...
No Matches
recording_rpc_engine_t Class Reference

#include <network.hpp>

Inheritance diagram for recording_rpc_engine_t:
rpc_engine_t

Public Member Functions

 recording_rpc_engine_t (const rpc_packet_type_desc_t *descs, size_t cnt, idarpc_stream_t *_irs, bool _our_irs, bool _is_client, const rpc_pkt_timeout_t *_pkt_timeouts=nullptr, size_t _n_pkt_timeouts=0, int _protocol_version=0)
virtual ~recording_rpc_engine_t ()
bool start_recording (const qstring &convs_dir)
void stop_recording ()
bool is_recording () const
virtual rpc_packet_data_trequest_and_response (const rpc_packet_data_t &request) new api
virtual rpc_packet_tsend_request_and_receive_reply (uchar pkt_code, bytevec_t &pkt) override
rpc_packet_data_tpacket_data_from_raw (const rpc_packet_t *rp)
virtual idarpc_stream_t * get_irs () const override
bool is_our_irs () const
void cancel_irs ()
int get_protocol_version () const
void set_protocol_version (int _protocol_version)
Public Member Functions inherited from rpc_engine_t
 rpc_engine_t (bool _is_client, const rpc_pkt_timeout_t *_pkt_timeouts=nullptr, size_t _n_pkt_timeouts=0)
virtual ~rpc_engine_t ()
int handle_ioctl_packet (bytevec_t &pkt, const uchar *ptr, const uchar *end)
int send_data (bytevec_t &data)
rpc_packet_trecv_packet (uchar pkt_code)
 AS_PRINTF (3, 0) virtual ssize_t send_notif(int code
virtual bool get_broken_connection (void)
virtual void set_broken_connection (void)
int send_ioctl (int fn, const void *buf, size_t size, void **poutbuf, ssize_t *poutsize)
void set_ioctl_handler (ioctl_handler_t *h)
void set_pkt_timeouts (const rpc_pkt_timeout_t *_pkt_timeouts, size_t _n_pkt_timeouts)
 DEFINE_ALL_NOTIFICATION_FUNCTIONS (this)

Protected Member Functions

void record (const rpc_packet_data_t &data, const uchar *bytes, size_t len, bool as_input) const
void record_input (const rpc_packet_data_t &data, const rpc_packet_t *rp) const
void record_output (const rpc_packet_data_t &data, const bytevec_t &bytes) const
virtual bool get_conversation_name (qstring *) const newapi
virtual void format_packet_data (qstring *out, const struct rpc_packet_data_t &data, const char *line_prefix=nullptr) const newapi
virtual void get_packet_name (qstring *out, const struct rpc_packet_data_t &data) const newapi
bool reinit_irs (qstring *errbuf, bool use_tls, const char *server_host, int port)
Protected Member Functions inherited from rpc_engine_t
void register_packet_type_descs (const rpc_packet_type_desc_t *ptypes, size_t cnt)
const rpc_packet_type_desc_tfind_packet_type_desc (int code) const
const rpc_packet_type_desc_tfind_packet_type_desc (const char *name) const
int get_timeout_for_request (uchar pkt_code) const

Additional Inherited Members

Public Attributes inherited from rpc_engine_t
bool network_error = false
qstring last_errstr
ioctl_handler_tioctl_handler = nullptr
const rpc_pkt_timeout_tpkt_timeouts = nullptr
size_t n_pkt_timeouts = 0
int recv_timeout
bool is_client
bool logged_in = false
const char * format
const char va_list va

Constructor & Destructor Documentation

◆ recording_rpc_engine_t()

recording_rpc_engine_t::recording_rpc_engine_t ( const rpc_packet_type_desc_t * descs,
size_t cnt,
idarpc_stream_t * _irs,
bool _our_irs,
bool _is_client,
const rpc_pkt_timeout_t * _pkt_timeouts = nullptr,
size_t _n_pkt_timeouts = 0,
int _protocol_version = 0 )
inline

◆ ~recording_rpc_engine_t()

virtual recording_rpc_engine_t::~recording_rpc_engine_t ( )
virtual

Member Function Documentation

◆ record()

void recording_rpc_engine_t::record ( const rpc_packet_data_t & data,
const uchar * bytes,
size_t len,
bool as_input ) const
protected

◆ record_input()

void recording_rpc_engine_t::record_input ( const rpc_packet_data_t & data,
const rpc_packet_t * rp ) const
protected

◆ record_output()

void recording_rpc_engine_t::record_output ( const rpc_packet_data_t & data,
const bytevec_t & bytes ) const
protected

◆ get_conversation_name()

virtual bool recording_rpc_engine_t::get_conversation_name ( qstring * ) const
inlineprotectedvirtual

◆ format_packet_data()

virtual void recording_rpc_engine_t::format_packet_data ( qstring * out,
const struct rpc_packet_data_t & data,
const char * line_prefix = nullptr ) const
protectedvirtual

◆ get_packet_name()

virtual void recording_rpc_engine_t::get_packet_name ( qstring * out,
const struct rpc_packet_data_t & data ) const
protectedvirtual

◆ reinit_irs()

bool recording_rpc_engine_t::reinit_irs ( qstring * errbuf,
bool use_tls,
const char * server_host,
int port )
protected

◆ start_recording()

bool recording_rpc_engine_t::start_recording ( const qstring & convs_dir)

◆ stop_recording()

void recording_rpc_engine_t::stop_recording ( )

◆ is_recording()

bool recording_rpc_engine_t::is_recording ( ) const

◆ request_and_response()

virtual rpc_packet_data_t * recording_rpc_engine_t::request_and_response ( const rpc_packet_data_t & request)
newvirtual

◆ send_request_and_receive_reply()

virtual rpc_packet_t * recording_rpc_engine_t::send_request_and_receive_reply ( uchar pkt_code,
bytevec_t & pkt )
overridevirtual

Implements rpc_engine_t.

◆ packet_data_from_raw()

rpc_packet_data_t * recording_rpc_engine_t::packet_data_from_raw ( const rpc_packet_t * rp)

◆ get_irs()

virtual idarpc_stream_t * recording_rpc_engine_t::get_irs ( ) const
inlineoverridevirtual

Implements rpc_engine_t.

◆ is_our_irs()

bool recording_rpc_engine_t::is_our_irs ( ) const
inline

◆ cancel_irs()

void recording_rpc_engine_t::cancel_irs ( )

◆ get_protocol_version()

int recording_rpc_engine_t::get_protocol_version ( ) const
inline

◆ set_protocol_version()

void recording_rpc_engine_t::set_protocol_version ( int _protocol_version)
inline

Member Data Documentation

◆ fp

FILE* recording_rpc_engine_t::fp = nullptr

◆ dumps_dir_path

qstring recording_rpc_engine_t::dumps_dir_path

◆ packet_nr

uint64 recording_rpc_engine_t::packet_nr = 0
mutable

The documentation for this class was generated from the following file: