Age | Commit message (Collapse) | Author |
|
The callback is provided to set socket options, instead of individual
options such as path_mtu_discovery (which is now removed).
Noticed that the Rust rexmpp structure's C representation does not
match that of C, since Rust's "bool" maps to C99's "_Bool", while I
thought that it maps to "int" (c_int). Adjusted C structures to use
"bool" from stdbool.h as well, since C99 (GNU99) is used already.
|
|
|
|
|
|
|
|
|
|
Afterwards it is used for the input queue, too.
|
|
It was broken since commit 938963c1d1c6a9b929d28a90030332d4f397ca61,
since seconds from monotonic clocks were compared to calendar
ones. Now last_network_activity is a timespec, using monotonic clocks
as well.
|
|
Instead of including them. Those structures can vary depending on
configuration options, while for bindings it is easier if they stay
the same, and are mere pointers. Besides, some of them may refer to
opaque Rust-only structures in the future.
|
|
The new structure (rexmpp_xml) is simpler, and should allow
manipulation from Rust without any dependency on libxml2 from the Rust
code (while Rust has its own parsers, such as rxml). Alternative XML
parsers (e.g., libexpat) now can be used from the C code.
The replacement/abstraction is not quite complete yet: the parsing
process itself (xmlParseChunk and friends) should be abstracted out.
|
|
|
|
|
|
Works with Dino and Conversations, but currently relying on external
players and streamers for actual audio playback and capture.
For now requiring GnuTLS and libnice for calls; OpenSSL should be
supported as an alternative to the former, and the latter should be
made optional, maybe with libjuice as an alternative.
|
|
Only EXTERNAL and PLAIN mechanisms are supported without it for now.
|
|
|
|
|
|
|
|
|
|
Aiming its usage for service discovery, and possibly similar
information retrieval activities.
|
|
|
|
|
|
|
|
Just use gethostbyname when it's disabled. Possibly will add c-ares,
getaddrinfo_a, and other options in the future.
|
|
As well as the ability to set a trusted server certificate.
|
|
|
|
Also an option to require TLS is added.
There's no DANE TLSA checks with OpenSSL yet, TLS session resumptions
and ALPN aren't used with it; just basic connections with certificate
verification are added. And now SASL EXTERNAL authentication isn't
quite usable.
|
|
rexmpp_init may write logs itself, so a logging function should be set
for that.
|
|
|
|
|
|
|
|
Still not certain whether rexmpp_run should return anything other than
REXMPP_E_AGAIN and REXMPP_E_SUCCESS, since the library handles
reconnects, but perhaps some errors could be critical. It should be
sorted out in the future.
|
|
|
|
|
|
This is intended mostly for language bindings, which may prefer to
avoid libxml2, and to rely on serialized XML for bridging.
|
|
Various checks and utility functions should still be added, and it
currently relies on gpg(1) for key generation and validation, but
PEP-based key distribution and basic OpenPGP functionality are
there.
|
|
|
|
|
|
Forgot to remove <ares.h>.
|
|
|
|
libunbound supports DNSSEC, which is needed for DANE TLSA: GnuTLS
verifies a certificate for the final host, but SRV and A/AAAA records
leading to it should be verified as well.
c-ares is still used to parse domain names in SRV records, but should
be replaced soon.
|
|
Instead of processing XML elements from parser callbacks, they are now
queued to be processed after parsing. This allows to explicitly return
error codes from processing functions, as well as to reset the parser
without relying on an additional stream state (REXMPP_STREAM_RESTART,
which is removed).
|
|
|
|
Presence of roster contacts is tracked by rexmpp now (optionally, by
default), and the weechat plugin marks online contacts with the "+"
prefix.
|
|
The server buffer's nicklist is filled with roster items, and MUC
buffers' nicklists are filled with active MUC participants. No MUC
role indications, groups, or contact presence tracking yet.
|
|
|
|
Only usable as an XML console and for basic one-to-one chats, and
quite messy, but probably will be extended and refactored later.
|
|
Leaving required parameters only (i.e., just an initial JID).
|
|
So that a library user's SASL property callback gets a pointer to the
whole rexmpp structure at once, similarly to other callbacks.
|
|
Only announcing our own capabilities in the initial <presence>.
|
|
|
|
|