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.
|
|
|
|
Used to manually implement tagged unions in Rust as well, but the C
representation of Rust enums with fields is supposed to match those.
|
|
Found a couple of issues with -fanalyzer, though
CWE-401 (analyzer-malloc-leak) appears to produce false positives
still.
|
|
File descriptors tend to be easier to handle with FFI.
|
|
|
|
It was broken by the XML handling changes.
|
|
|
|
|
|
|
|
|
|
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 used xmlFreeNode instead of rexmpp_xml_free.
|
|
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.
|
|
It doesn't seem to add much, but experimenting with different
approaches.
|
|
|
|
|
|
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.
|
|
|
|
Possibly other modules will follow. Aiming to provide memory-safe(r)
alternatives, while keeping the C versions as well.
|
|
|
|
|
|
|
|
|
|
|
|
They may not be if an IP address is used instead of a hostname.
|
|
|
|
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.
|
|
|
|
These are preferred in XEP-0414, providing both now.
|
|
|
|
Now the requests don't have to be queued, though xml_interface.c still
expects responses from xmpp.el in reverse order.
|