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.
|
|
|
|
A hash is composed more directly now: parts of the string are fed into
a hash function instead of being concatenated first.
|
|
|
|
Found a couple of issues with -fanalyzer, though
CWE-401 (analyzer-malloc-leak) appears to produce false positives
still.
|
|
|
|
|
|
|
|
|
|
|
|
Still depending on gcrypt for hashing, but this is a step towards
making that dependency optional.
|
|
|
|
|
|
Afterwards it is used for the input queue, too.
|
|
Continuing replacement of libxml2, planning to use libexpat or a Rust
XML parser as an alternative for XML parsing.
|
|
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.
|
|
Better to check those to not be NULL first.
|
|
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.
|
|
So that an application would wait instead of giving up; perhaps other
errors should be reserved for cases when a reconnect is undesirable
and user intervention is needed.
|
|
Only EXTERNAL and PLAIN mechanisms are supported without it for now.
|
|
Reducing dependency on gsasl.
|
|
Libgsasl will probably be made optional, so another source of random
is needed. Libgsasl uses libgcrypt underneath. Gcrypt, unlike nettle,
handles random seeding on its own, which would be annoying to
implement for different platforms otherwise.
|
|
|
|
Now the requests don't have to be queued, though xml_interface.c still
expects responses from xmpp.el in reverse order.
|
|
|
|
|
|
|
|
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.
|
|
The conversation buffers now follow the
<https://docs.modernxmpp.org/client/design/#names> recommendations for
names, and the rexmpp_get_name function is adjusted to match those
more closely.
|
|
Now it builds with newer compiler and library versions, the
ones from Debian 11 repositories.
|
|
|
|
|
|
It used to be handled in a callback, but now the callback is
simplified, only storing the received data. This should make the
control flow a bit easier to follow.
|
|
|
|
rexmpp_init may write logs itself, so a logging function should be set
for that.
|