This module defines the xmpp_socket behaviour.
Required callback functions: send_xml/2, get_owner/1, get_transport/1, change_shaper/2, controlling_process/2, close/1, sockname/1, peername/1, setopts/2.
Optional callback functions: get_peer_certificate/2.
cert() = #'Certificate'{} | #'OTPCertificate'{}
endpoint() = {inet:ip_address(), inet:port_number()}
ext_mod() = module()
ext_socket() = any()
socket() = inet:socket() | fast_tls:tls_socket() | ezlib:zlib_socket() | ext_socket()
socket_state() = #socket_state{sockmod = sockmod(), socket = socket(), max_stanza_size = timeout(), xml_stream = undefined | fxml_stream:xml_stream_state(), shaper = none | p1_shaper:state(), sock_peer_name = none | {endpoint(), endpoint()}, tls_certfile = none | binary()}
sockmod() = gen_tcp | fast_tls | ezlib | ext_mod()
stream_element() = {xmlstreamelement, fxml:xmlel()} | {xmlstreamstart, binary(), [{binary(), binary()}]} | {xmlstreamend, binary()} | {xmlstreamraw, iodata()}
activate(Socket_state) -> any()
change_shaper(Socket_state::socket_state(), Shaper::none | p1_shaper:state()) -> socket_state()
close(Socket_state) -> any()
compress(SocketData) -> any()
compress(Socket_state, Data) -> any()
connect(Addr, Port, Opts) -> any()
connect(Addr, Port, Opts, Timeout) -> any()
connect(Addr, Port, Opts, Timeout, Owner) -> any()
finish_tls_handshake(Socket_state::socket_state()) -> {ok, socket_state()} | {error, inet:posix() | atom() | binary()}
get_negotiated_cipher(Socket_state::socket_state()) -> {ok, binary()} | error
get_peer_certificate(Socket_state::socket_state(), Type::plain | otp) -> {ok, cert()} | error
get_peer_certificate(Socket_state::socket_state(), Type::der) -> {ok, binary()} | error
get_sockmod(SocketData) -> any()
get_tls_cb_exporter(Socket_state::socket_state()) -> {ok, binary()} | {error, term()}
get_tls_cert_hash(Socket_state::socket_state()) -> {ok, binary()} | error
get_tls_last_message(Socket_state::socket_state(), Type::peer | self) -> {ok, binary()} | {error, term()}
get_transport(Socket_state) -> any()
get_verify_result(SocketData) -> any()
monitor(Socket_state) -> any()
new(SockMod::sockmod(), Socket::socket(), Opts::[proplists:property()]) -> socket_state()
peername(Socket_state::socket_state()) -> {ok, endpoint()} | {error, inet:posix()}
pp(Socket_state) -> any()
recv(Socket_state, Data) -> any()
release(Socket_state) -> any()
reset_stream(Socket_state) -> any()
send(Socket_state::socket_state(), Data::iodata()) -> ok | {error, closed | inet:posix()}
send_element(Socket_state::socket_state(), El::fxml:xmlel()) -> ok | {error, inet:posix()}
send_header(Socket_state::socket_state(), El::fxml:xmlel()) -> ok | {error, inet:posix()}
send_trailer(Socket_state::socket_state()) -> ok | {error, inet:posix()}
send_ws_ping(Socket_state::socket_state()) -> ok | {error, inet:posix()}
send_xml(Socket_state::socket_state(), El::stream_element()) -> ok | {error, any()}
sockname(Socket_state::socket_state()) -> {ok, endpoint()} | {error, inet:posix()}
starttls(Socket_state::socket_state(), TLSOpts::[proplists:property()]) -> {ok, socket_state()} | {error, inet:posix() | atom() | binary()}
Generated by EDoc