mirror of
https://github.com/frida/frida-core.git
synced 2026-11-10 01:51:27 -10:00
- Introduce PortalService API and daemon, a network service that orchestrates a cluster of remote processes instrumented by Frida. Implements both a frida-server compatible control interface, as well as a cluster interface that agents and gadgets in target processes can talk to. Connected controllers can enumerate processes as if they were local to the system where the portal is running, and are able to attach() and also enable spawn-gating to apply early instrumentation. - Add Session.join_portal(), making it easy to share control of a process with a remote PortalService, joining its cluster together with other nodes. - Add “connect” interaction to frida-gadget, so it can join a PortalService cluster as well. - Add PortalClient, used to implement Session.join_portal() and frida-gadget's “connect” interaction. Connects to the PortalService and joins its cluster. Implements automatic reconnect in case of transient failures. Also supports specifying an ACL, which is a list of tags that the PortalService must require connected controllers to possess at least one of. It's up to the application to implement tagging of controllers based on e.g. authentication. - Add Device.bus API to allow clients connected to a PortalService to exchange application-specific messages with it. Requires instantiating the service using the API in order to wire up message handlers and protocol logic. - Add Session persistence support, enabled by specifying a non-zero “persist_timeout” option when attach()ing to a process. When the server subsequently detects that the client owning the session got disconnected, it will allow scripts to stay loaded until the timeout (in seconds) is reached. Any script and debugger messages emitted in the meantime are queued, and may later be delivered if the client returns before the timeout is reached. - Add TLS support, enabled by specifying a certificate. On the server end this is a PEM with a public and private key, where the server will accept any certificate from the client's side. However for the client this is a PEM with the public key of a trusted CA, which the server's certificate must match or be derived from. - Add authentication support, enabled by specifying a token. The daemons allow specifying a static token through a CLI option, and the APIs allow plugging in a custom authentication backend -- which means the token can be interpreted as desired. - Add protocol-level keepalives. - Add WebGatewayService API and daemon, allowing browsers to talk to a control service such as frida-server. - Implement WebRTC Data Channel compatible peer-to-peer support, enabled by calling setup_peer_connection() on Session. This allows a direct connection to be established between the client and the remote process, which is useful when talking to it through e.g. a portal. - Optimize protocol by skipping the DBus authentication handshake and telling GDBus not to fetch properties, saving an additional roundtrip. - Drop deprecated protocol bits, such as Session.enable_jit(). - Bump protocol version to v15. Kudos to @dweinstein for suggesting and helping shape the portal feature, and @asabil, @meme, and @mrmacete, for reviewing and helping shape and name things.
457 lines
19 KiB
Vala
457 lines
19 KiB
Vala
/* nice.vapi generated by vapigen, do not modify. */
|
|
|
|
[CCode (cprefix = "Nice", gir_namespace = "Nice", gir_version = "0.1", lower_case_cprefix = "nice_")]
|
|
namespace Nice {
|
|
[CCode (cheader_filename = "nice.h", type_id = "nice_agent_get_type ()")]
|
|
public class Agent : GLib.Object {
|
|
[CCode (has_construct_function = false)]
|
|
public Agent (GLib.MainContext ctx, Nice.Compatibility compat);
|
|
public bool add_local_address (Nice.Address addr);
|
|
public uint add_stream (uint n_components);
|
|
public bool attach_recv (uint stream_id, uint component_id, GLib.MainContext ctx, Nice.AgentRecvFunc func);
|
|
[Version (since = "0.1.16")]
|
|
public async void close_async ();
|
|
[Version (since = "0.1.20")]
|
|
public bool consent_lost (uint stream_id, uint component_id);
|
|
[Version (since = "0.1.6")]
|
|
public bool forget_relays (uint stream_id, uint component_id);
|
|
[CCode (has_construct_function = false)]
|
|
[Version (since = "0.1.15")]
|
|
public Agent.full (GLib.MainContext ctx, Nice.Compatibility compat, Nice.AgentOption flags);
|
|
public bool gather_candidates (uint stream_id);
|
|
[Version (since = "0.1.4")]
|
|
public string generate_local_candidate_sdp (Nice.Candidate candidate);
|
|
[Version (since = "0.1.4")]
|
|
public string generate_local_sdp ();
|
|
[Version (since = "0.1.4")]
|
|
public string generate_local_stream_sdp (uint stream_id, bool include_non_ice);
|
|
[Version (since = "0.1.8")]
|
|
public Nice.ComponentState get_component_state (uint stream_id, uint component_id);
|
|
public Nice.Candidate get_default_local_candidate (uint stream_id, uint component_id);
|
|
[Version (since = "0.1.5")]
|
|
public GLib.IOStream get_io_stream (uint stream_id, uint component_id);
|
|
public GLib.SList<Nice.Candidate> get_local_candidates (uint stream_id, uint component_id);
|
|
public bool get_local_credentials (uint stream_id, out string ufrag, out string pwd);
|
|
public GLib.SList<Nice.Candidate> get_remote_candidates (uint stream_id, uint component_id);
|
|
public bool get_selected_pair (uint stream_id, uint component_id, Nice.Candidate local, Nice.Candidate remote);
|
|
[Version (since = "0.1.5")]
|
|
public GLib.Socket? get_selected_socket (uint stream_id, uint component_id);
|
|
[Version (since = "0.1.17")]
|
|
public GLib.GenericArray<GLib.Socket> get_sockets (uint stream_id, uint component_id);
|
|
[Version (since = "0.1.4")]
|
|
public unowned string get_stream_name (uint stream_id);
|
|
[CCode (cname = "nice_agent_new_reliable", has_construct_function = false)]
|
|
[Version (since = "0.0.11")]
|
|
public Agent.in_reliable_mode (GLib.MainContext ctx, Nice.Compatibility compat);
|
|
[Version (since = "0.1.4")]
|
|
public Nice.Candidate parse_remote_candidate_sdp (uint stream_id, string sdp);
|
|
[Version (since = "0.1.4")]
|
|
public int parse_remote_sdp (string sdp);
|
|
[Version (since = "0.1.4")]
|
|
public GLib.SList<Nice.Candidate> parse_remote_stream_sdp (uint stream_id, string sdp, string ufrag, string pwd);
|
|
[Version (since = "0.1.16")]
|
|
public bool peer_candidate_gathering_done (uint stream_id);
|
|
[Version (since = "0.1.5")]
|
|
public ssize_t recv (uint stream_id, uint component_id, [CCode (array_length_cname = "buf_len", array_length_pos = 3.5, array_length_type = "gsize")] out unowned uint8[] buf, GLib.Cancellable? cancellable = null) throws GLib.Error;
|
|
[Version (since = "0.1.5")]
|
|
public int recv_messages (uint stream_id, uint component_id, [CCode (array_length_cname = "n_messages", array_length_pos = 3.5, array_length_type = "guint")] out unowned Nice.InputMessage[] messages, GLib.Cancellable? cancellable = null) throws GLib.Error;
|
|
[Version (since = "0.1.5")]
|
|
public int recv_messages_nonblocking (uint stream_id, uint component_id, [CCode (array_length_cname = "n_messages", array_length_pos = 3.5, array_length_type = "guint")] out unowned Nice.InputMessage[] messages, GLib.Cancellable? cancellable = null) throws GLib.Error;
|
|
[Version (since = "0.1.5")]
|
|
public ssize_t recv_nonblocking (uint stream_id, uint component_id, [CCode (array_length_cname = "buf_len", array_length_pos = 3.5, array_length_type = "gsize")] out unowned uint8[] buf, GLib.Cancellable? cancellable = null) throws GLib.Error;
|
|
public void remove_stream (uint stream_id);
|
|
public bool restart ();
|
|
[Version (since = "0.1.6")]
|
|
public bool restart_stream (uint stream_id);
|
|
public int send (uint stream_id, uint component_id, uint len, string buf);
|
|
[Version (since = "0.1.5")]
|
|
public int send_messages_nonblocking (uint stream_id, uint component_id, [CCode (array_length_cname = "n_messages", array_length_pos = 3.5, array_length_type = "guint")] Nice.OutputMessage[] messages, GLib.Cancellable? cancellable = null) throws GLib.Error;
|
|
public bool set_local_credentials (uint stream_id, string ufrag, string pwd);
|
|
public void set_port_range (uint stream_id, uint component_id, uint min_port, uint max_port);
|
|
public bool set_relay_info (uint stream_id, uint component_id, string server_ip, uint server_port, string username, string password, Nice.RelayType type);
|
|
public int set_remote_candidates (uint stream_id, uint component_id, GLib.SList<Nice.Candidate> candidates);
|
|
public bool set_remote_credentials (uint stream_id, string ufrag, string pwd);
|
|
public bool set_selected_pair (uint stream_id, uint component_id, string lfoundation, string rfoundation);
|
|
public bool set_selected_remote_candidate (uint stream_id, uint component_id, Nice.Candidate candidate);
|
|
[Version (since = "0.0.10")]
|
|
public void set_software (string software);
|
|
[Version (since = "0.1.4")]
|
|
public bool set_stream_name (uint stream_id, string name);
|
|
[Version (since = "0.0.9")]
|
|
public void set_stream_tos (uint stream_id, int tos);
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.8")]
|
|
public bool bytestream_tcp { get; }
|
|
[NoAccessorMethod]
|
|
public uint compatibility { get; construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.20")]
|
|
public bool consent_freshness { get; construct; }
|
|
[NoAccessorMethod]
|
|
public bool controlling_mode { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.14")]
|
|
public bool force_relay { get; set; }
|
|
[NoAccessorMethod]
|
|
public bool full_mode { get; construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.8")]
|
|
public bool ice_tcp { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.16")]
|
|
public bool ice_trickle { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.8")]
|
|
public bool ice_udp { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.17")]
|
|
public uint idle_timeout { get; set construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.8")]
|
|
public bool keepalive_conncheck { get; set; }
|
|
[NoAccessorMethod]
|
|
public void* main_context { get; construct; }
|
|
[NoAccessorMethod]
|
|
public uint max_connectivity_checks { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.4")]
|
|
public string proxy_ip { owned get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.4")]
|
|
public string proxy_password { owned get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.4")]
|
|
public uint proxy_port { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.4")]
|
|
public uint proxy_type { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.4")]
|
|
public string proxy_username { owned get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.11")]
|
|
public bool reliable { get; construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.15")]
|
|
public uint stun_initial_timeout { get; set construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.15")]
|
|
public uint stun_max_retransmissions { get; set construct; }
|
|
[NoAccessorMethod]
|
|
public uint stun_pacing_timer { get; set construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.15")]
|
|
public uint stun_reliable_timeout { get; set construct; }
|
|
[NoAccessorMethod]
|
|
public string stun_server { owned get; set; }
|
|
[NoAccessorMethod]
|
|
public uint stun_server_port { get; set; }
|
|
[NoAccessorMethod]
|
|
public bool support_renomination { get; set; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.7")]
|
|
public bool upnp { get; set construct; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.0.7")]
|
|
public uint upnp_timeout { get; set construct; }
|
|
public signal void candidate_gathering_done (uint stream_id);
|
|
public signal void component_state_changed (uint stream_id, uint component_id, Nice.ComponentState state);
|
|
public signal void initial_binding_request_received (uint stream_id);
|
|
[Version (deprecated = true, deprecated_since = "0.1.8")]
|
|
public signal void new_candidate (uint stream_id, uint component_id, string foundation);
|
|
[Version (since = "0.1.8")]
|
|
public signal void new_candidate_full (Nice.Candidate candidate);
|
|
[Version (deprecated = true, deprecated_since = "0.1.8")]
|
|
public signal void new_remote_candidate (uint stream_id, uint component_id, string foundation);
|
|
[Version (since = "0.1.8")]
|
|
public signal void new_remote_candidate_full (Nice.Candidate candidate);
|
|
[Version (deprecated = true, deprecated_since = "0.1.8")]
|
|
public signal void new_selected_pair (uint stream_id, uint component_id, string lfoundation, string rfoundation);
|
|
[Version (since = "0.1.8")]
|
|
public signal void new_selected_pair_full (uint stream_id, uint component_id, Nice.Candidate lcandidate, Nice.Candidate rcandidate);
|
|
[Version (since = "0.0.11")]
|
|
public signal void reliable_transport_writable (uint stream_id, uint component_id);
|
|
[Version (since = "0.1.5")]
|
|
public signal void streams_removed ([CCode (array_length = false, array_null_terminated = true)] uint[] stream_ids);
|
|
}
|
|
[CCode (cheader_filename = "nice.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "nice_candidate_get_type ()")]
|
|
[Compact]
|
|
public class Candidate {
|
|
public Nice.Address addr;
|
|
public Nice.Address base_addr;
|
|
public uint component_id;
|
|
[CCode (array_length = false)]
|
|
public weak char foundation[33];
|
|
public weak string password;
|
|
public uint32 priority;
|
|
public uint stream_id;
|
|
public Nice.CandidateTransport transport;
|
|
public Nice.CandidateType type;
|
|
public weak string username;
|
|
[CCode (has_construct_function = false)]
|
|
public Candidate (Nice.CandidateType type);
|
|
public Nice.Candidate copy ();
|
|
[Version (since = "0.1.15")]
|
|
public bool equal_target (Nice.Candidate candidate2);
|
|
public void free ();
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cname = "PseudoTcpSocket", type_id = "pseudo_tcp_socket_get_type ()")]
|
|
[Version (since = "0.0.11")]
|
|
public class PseudoTcpSocket : GLib.Object {
|
|
[CCode (cname = "pseudo_tcp_socket_new", has_construct_function = false)]
|
|
public PseudoTcpSocket (uint32 conversation, Nice.PseudoTcpCallbacks callbacks);
|
|
[CCode (cname = "pseudo_tcp_socket_can_send")]
|
|
[Version (since = "0.1.5")]
|
|
public bool can_send ();
|
|
[CCode (cname = "pseudo_tcp_socket_close")]
|
|
public void close (bool force);
|
|
[CCode (cname = "pseudo_tcp_socket_connect")]
|
|
public bool connect ();
|
|
[CCode (cname = "pseudo_tcp_socket_get_available_bytes")]
|
|
[Version (since = "0.1.5")]
|
|
public int get_available_bytes ();
|
|
[CCode (cname = "pseudo_tcp_socket_get_available_send_space")]
|
|
[Version (since = "0.1.5")]
|
|
public size_t get_available_send_space ();
|
|
[CCode (cname = "pseudo_tcp_socket_get_error")]
|
|
public int get_error ();
|
|
[CCode (cname = "pseudo_tcp_socket_get_next_clock")]
|
|
public bool get_next_clock (uint64 timeout);
|
|
[CCode (cname = "pseudo_tcp_socket_is_closed")]
|
|
[Version (since = "0.1.8")]
|
|
public bool is_closed ();
|
|
[CCode (cname = "pseudo_tcp_socket_is_closed_remotely")]
|
|
[Version (since = "0.1.8")]
|
|
public bool is_closed_remotely ();
|
|
[CCode (cname = "pseudo_tcp_socket_notify_clock")]
|
|
public void notify_clock ();
|
|
[CCode (cname = "pseudo_tcp_socket_notify_message")]
|
|
[Version (since = "0.1.5")]
|
|
public bool notify_message (Nice.InputMessage message);
|
|
[CCode (cname = "pseudo_tcp_socket_notify_mtu")]
|
|
public void notify_mtu (uint16 mtu);
|
|
[CCode (cname = "pseudo_tcp_socket_notify_packet")]
|
|
public bool notify_packet (string buffer, uint32 len);
|
|
[CCode (cname = "pseudo_tcp_socket_recv")]
|
|
public int recv (string buffer, size_t len);
|
|
[CCode (cname = "pseudo_tcp_socket_send")]
|
|
public int send (string buffer, uint32 len);
|
|
[CCode (cname = "pseudo_tcp_socket_set_time")]
|
|
[Version (since = "0.1.8")]
|
|
public void set_time (uint32 current_time);
|
|
[CCode (cname = "pseudo_tcp_socket_shutdown")]
|
|
[Version (since = "0.1.8")]
|
|
public void shutdown (Nice.PseudoTcpShutdown how);
|
|
[NoAccessorMethod]
|
|
public uint ack_delay { get; set; }
|
|
[NoAccessorMethod]
|
|
public void* callbacks { get; set; }
|
|
[NoAccessorMethod]
|
|
public uint conversation { get; construct; }
|
|
[NoAccessorMethod]
|
|
public bool no_delay { get; set; }
|
|
[NoAccessorMethod]
|
|
public uint rcv_buf { get; set; }
|
|
[NoAccessorMethod]
|
|
public uint snd_buf { get; set; }
|
|
[NoAccessorMethod]
|
|
public uint state { get; }
|
|
[NoAccessorMethod]
|
|
[Version (since = "0.1.8")]
|
|
public bool support_fin_ack { get; construct; }
|
|
}
|
|
[CCode (cheader_filename = "nice.h", has_type_id = false)]
|
|
public struct Address {
|
|
[CCode (cname = "s.addr")]
|
|
public void* s_addr;
|
|
[CCode (cname = "s.ip4")]
|
|
public void* s_ip4;
|
|
[CCode (cname = "s.ip6")]
|
|
public void* s_ip6;
|
|
public void copy_to_sockaddr (void* sin);
|
|
public bool equal (Nice.Address b);
|
|
[Version (since = "0.1.8")]
|
|
public bool equal_no_port (Nice.Address b);
|
|
public void free ();
|
|
public uint get_port ();
|
|
public void init ();
|
|
public int ip_version ();
|
|
public bool is_private ();
|
|
public bool is_valid ();
|
|
public void set_from_sockaddr (void* sin);
|
|
public bool set_from_string (string str);
|
|
public void set_ipv4 (uint32 addr_ipv4);
|
|
public void set_ipv6 (uint8 addr_ipv6);
|
|
public void set_port (uint port);
|
|
public void to_string (string dst);
|
|
}
|
|
[CCode (cheader_filename = "nice.h", has_type_id = false)]
|
|
[Version (since = "0.1.5")]
|
|
public struct InputMessage {
|
|
[CCode (array_length_cname = "n_buffers")]
|
|
public weak GLib.InputVector[] buffers;
|
|
public int n_buffers;
|
|
public Nice.Address from;
|
|
public size_t length;
|
|
}
|
|
[CCode (cheader_filename = "nice.h", has_type_id = false)]
|
|
[Version (since = "0.1.5")]
|
|
public struct OutputMessage {
|
|
[CCode (array_length_cname = "n_buffers")]
|
|
public weak GLib.OutputVector[] buffers;
|
|
public int n_buffers;
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cname = "PseudoTcpCallbacks", has_type_id = false)]
|
|
[Version (since = "0.0.11")]
|
|
public struct PseudoTcpCallbacks {
|
|
public void* user_data;
|
|
public PseudoTcpOpenedFunc PseudoTcpOpened;
|
|
public PseudoTcpReadableFunc PseudoTcpReadable;
|
|
public PseudoTcpWritableFunc PseudoTcpWritable;
|
|
public PseudoTcpClosedFunc PseudoTcpClosed;
|
|
public WritePacketFunc WritePacket;
|
|
}
|
|
public delegate void PseudoTcpOpenedFunc (PseudoTcpSocket tcp, void* data);
|
|
public delegate void PseudoTcpReadableFunc (PseudoTcpSocket tcp, void* data);
|
|
public delegate void PseudoTcpWritableFunc (PseudoTcpSocket tcp, void* data);
|
|
public delegate void PseudoTcpClosedFunc (PseudoTcpSocket tcp, uint32 error, void* data);
|
|
public delegate void WritePacketFunc (PseudoTcpSocket tcp, uint8[] buffer, void* data);
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_AGENT_OPTION_", has_type_id = false)]
|
|
[Flags]
|
|
[Version (since = "0.1.15")]
|
|
public enum AgentOption {
|
|
REGULAR_NOMINATION,
|
|
RELIABLE,
|
|
LITE_MODE,
|
|
ICE_TRICKLE,
|
|
SUPPORT_RENOMINATION,
|
|
CONSENT_FRESHNESS,
|
|
BYTESTREAM_TCP
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_CANDIDATE_TRANSPORT_", has_type_id = false)]
|
|
public enum CandidateTransport {
|
|
UDP,
|
|
TCP_ACTIVE,
|
|
TCP_PASSIVE,
|
|
TCP_SO;
|
|
[Version (since = "0.1.18")]
|
|
public unowned string to_string ();
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_CANDIDATE_TYPE_", has_type_id = false)]
|
|
public enum CandidateType {
|
|
HOST,
|
|
SERVER_REFLEXIVE,
|
|
PEER_REFLEXIVE,
|
|
RELAYED;
|
|
[Version (since = "0.1.18")]
|
|
public unowned string to_string ();
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_COMPATIBILITY_", has_type_id = false)]
|
|
public enum Compatibility {
|
|
RFC5245,
|
|
DRAFT19,
|
|
GOOGLE,
|
|
MSN,
|
|
WLM2009,
|
|
OC2007,
|
|
OC2007R2,
|
|
LAST
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_COMPONENT_STATE_", has_type_id = false)]
|
|
public enum ComponentState {
|
|
DISCONNECTED,
|
|
GATHERING,
|
|
CONNECTING,
|
|
CONNECTED,
|
|
READY,
|
|
FAILED,
|
|
LAST;
|
|
[Version (since = "0.1.6")]
|
|
public unowned string to_string ();
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_COMPONENT_TYPE_", has_type_id = false)]
|
|
public enum ComponentType {
|
|
RTP,
|
|
RTCP
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_NOMINATION_MODE_", has_type_id = false)]
|
|
[Version (since = "0.1.15")]
|
|
public enum NominationMode {
|
|
REGULAR,
|
|
AGGRESSIVE
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_PROXY_TYPE_", has_type_id = false)]
|
|
[Version (since = "0.0.4")]
|
|
public enum ProxyType {
|
|
NONE,
|
|
SOCKS5,
|
|
HTTP,
|
|
LAST
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cname = "PseudoTcpDebugLevel", cprefix = "PSEUDO_TCP_DEBUG_", has_type_id = false)]
|
|
[Version (since = "0.0.11")]
|
|
public enum PseudoTcpDebugLevel {
|
|
NONE,
|
|
NORMAL,
|
|
VERBOSE
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cname = "PseudoTcpShutdown", cprefix = "PSEUDO_TCP_SHUTDOWN_", has_type_id = false)]
|
|
[Version (since = "0.1.8")]
|
|
public enum PseudoTcpShutdown {
|
|
RD,
|
|
WR,
|
|
RDWR
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cname = "PseudoTcpState", cprefix = "PSEUDO_TCP_", has_type_id = false)]
|
|
[Version (since = "0.0.11")]
|
|
public enum PseudoTcpState {
|
|
LISTEN,
|
|
SYN_SENT,
|
|
SYN_RECEIVED,
|
|
ESTABLISHED,
|
|
CLOSED,
|
|
FIN_WAIT_1,
|
|
FIN_WAIT_2,
|
|
CLOSING,
|
|
TIME_WAIT,
|
|
CLOSE_WAIT,
|
|
LAST_ACK
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cname = "PseudoTcpWriteResult", cprefix = "WR_", has_type_id = false)]
|
|
[Version (since = "0.0.11")]
|
|
public enum PseudoTcpWriteResult {
|
|
SUCCESS,
|
|
TOO_LARGE,
|
|
FAIL
|
|
}
|
|
[CCode (cheader_filename = "nice.h", cprefix = "NICE_RELAY_TYPE_", has_type_id = false)]
|
|
public enum RelayType {
|
|
TURN_UDP,
|
|
TURN_TCP,
|
|
TURN_TLS
|
|
}
|
|
[CCode (cheader_filename = "nice.h", instance_pos = 5.9)]
|
|
public delegate void AgentRecvFunc (Nice.Agent agent, uint stream_id, uint component_id, [CCode (array_length_pos = 3.1, array_length_type = "guint")] uint8[] data);
|
|
[CCode (cheader_filename = "nice.h", cname = "NICE_AGENT_MAX_REMOTE_CANDIDATES")]
|
|
public const int AGENT_MAX_REMOTE_CANDIDATES;
|
|
[CCode (cheader_filename = "nice.h", cname = "NICE_CANDIDATE_MAX_FOUNDATION")]
|
|
public const int CANDIDATE_MAX_FOUNDATION;
|
|
[CCode (cheader_filename = "nice.h", cname = "NICE_CANDIDATE_MAX_LOCAL_ADDRESSES")]
|
|
public const int CANDIDATE_MAX_LOCAL_ADDRESSES;
|
|
[CCode (cheader_filename = "nice.h", cname = "NICE_CANDIDATE_MAX_TURN_SERVERS")]
|
|
public const int CANDIDATE_MAX_TURN_SERVERS;
|
|
[CCode (cheader_filename = "nice.h")]
|
|
public static void debug_disable (bool with_stun);
|
|
[CCode (cheader_filename = "nice.h")]
|
|
public static void debug_enable (bool with_stun);
|
|
[CCode (cheader_filename = "nice.h")]
|
|
public static string? interfaces_get_ip_for_interface (string interface_name);
|
|
[CCode (cheader_filename = "nice.h")]
|
|
public static GLib.List<string> interfaces_get_local_interfaces ();
|
|
[CCode (cheader_filename = "nice.h")]
|
|
public static GLib.List<string> interfaces_get_local_ips (bool include_loopback);
|
|
[CCode (cheader_filename = "nice.h", cname = "pseudo_tcp_set_debug_level")]
|
|
[Version (since = "0.0.11")]
|
|
public static void pseudo_tcp_set_debug_level (Nice.PseudoTcpDebugLevel level);
|
|
}
|